mysql –h hostname|hostIP –P port –u username –p DatabaseName –e "SQL语句"
-h参数 后面接主机名或者主机IP,hostname为主机,hostIP为主机IP
-P参数 后面接MySQL服务的端口,通过该参数连接到指定的端口。MySQL服务的默认端口是3306,不使用该参数时自动连接到3306端口,port为连接的端口号
-u参数 后面接用户名,username为用户名
-p参数 会提示输入密码
DatabaseName参数 指明登录到哪一个数据库中。如果没有该参数,就会直接登录到MySQL数据库中,然后可以使用USE命令来选择数据库
-e参数 后面可以直接加SQL语句。登录MySQL服务器以后即可执行这个SQL语句,然后退出MySQL服务器
CREATE USER 用户名 [IDENTIFIED BY '密码'][,用户名 [IDENTIFIED BY '密码']];
1、用户名参数表示新建用户的账户,由 用户(User) 和 主机名(Host) 构成
2、“[ ]”表示可选,也就是说,可以指定用户登录时需要密码验证,也可以不指定密码验证,这样用户可以直接登录。
不过,不指定密码的方式不安全,不推荐使用。如果指定密码值,这里需要使用IDENTIFIED BY指定明文密码值
3、CREATE USER语句可以同时创建多个用户
CREATE USER zhang3 IDENTIFIED BY '123123'; # 默认host是 %
CREATE USER 'kangshifu'@'localhost' IDENTIFIED BY '123456';
# 修改mysql库的user表
UPDATE mysql.user SET USER='li4' WHERE USER='wang5';
# 刷新
FLUSH PRIVILEGES;
DROP USER user[,user]…;
DROP USER li4 ; # 默认删除host为%的用户
# 案例2
DROP USER 'kangshifu'@'localhost';
DELETE FROM mysql.user WHERE Host=’hostname’ AND User=’username’;
FLUSH PRIVILEGES;
DELETE FROM mysql.user WHERE Host='localhost' AND User='Emily';
FLUSH PRIVILEGES;
ALTER USER USER() IDENTIFIED BY 'new_password';
# 方式2
SET PASSWORD='new_password';
# 方式1
ALTER USER user [IDENTIFIED BY '新密码']
[,user[IDENTIFIED BY '新密码']]…;
# 方式2
SET PASSWORD FOR 'username'@'hostname'='new_password';
# 方式3,不推荐使用
UPDATE MySQL.user SET authentication_string=PASSWORD("123456")
WHERE User = "username" AND Host = "hostname";
1、在MySQL中,数据库管理员可以 手动设置 账号密码过期,也可以建立一个 自动 密码过期策略。
2、过期策略可以是 全局的 ,也可以为 每个账号 设置单独的过期策略
ALTER USER user PASSWORD EXPIRE;
# 案例
ALTER USER 'kangshifu'@'localhost' PASSWORD EXPIRE;
# 建立全局策略,设置密码每隔180天过期
SET PERSIST default_password_lifetime = 180;
[mysqld]
default_password_lifetime=180 # 建立全局策略,设置密码每隔180天过期
# 设置kangshifu账号密码每90天过期:
CREATE USER 'kangshifu'@'localhost' PASSWORD EXPIRE INTERVAL 90 DAY;
ALTER USER 'kangshifu'@'localhost' PASSWORD EXPIRE INTERVAL 90 DAY;
# 设置密码永不过期:
CREATE USER 'kangshifu'@'localhost' PASSWORD EXPIRE NEVER;
ALTER USER 'kangshifu'@'localhost' PASSWORD EXPIRE NEVER;
# 延用全局密码过期策略:
CREATE USER 'kangshifu'@'localhost' PASSWORD EXPIRE DEFAULT;
ALTER USER 'kangshifu'@'localhost' PASSWORD EXPIRE DEFAULT;
SET PERSIST password_history = 6; # 设置不能选择最近使用过的6个密码
SET PERSIST password_reuse_interval = 365; # 设置不能选择最近一年内的密码
[mysqld]
password_history=6
password_reuse_interval=365
# 不能使用最近5个密码:
CREATE USER 'kangshifu'@'localhost' PASSWORD HISTORY 5; # 创建用户时指定
ALTER USER 'kangshifu'@'localhost' PASSWORD HISTORY 5; # 创建用户后设置
# 不能使用最近365天内的密码:
CREATE USER 'kangshifu'@'localhost' PASSWORD REUSE INTERVAL 365 DAY;
ALTER USER 'kangshifu'@'localhost' PASSWORD REUSE INTERVAL 365 DAY;
# 既不能使用最近5个密码,也不能使用365天内的密码
CREATE USER 'kangshifu'@'localhost'
PASSWORD HISTORY 5
PASSWORD REUSE INTERVAL 365 DAY;
ALTER USER 'kangshifu'@'localhost'
PASSWORD HISTORY 5
PASSWORD REUSE INTERVAL 365 DAY;