Bootstrap

Mysql快速创建账号并给账号授权指定的权限,以及mysql5.7修改密码的方式;查看当前用户权限;配置白名单访问

登录远程数据库:

mysql -h192.168.56.101 -uroot -p123

登录本地mysql,可以省去host的输入

mysql  -uroot -p123

创建账号

#指定账号在某个host才可以登录 
#CREATE USER 'username'@'host' IDENTIFIED BY 'password';
create user 'username'@'%' identified by 'password';
flush privileges;
  • username :用户名;
  • host :指定在哪个主机上可以登录,本机可用localhost;
  • % : 通配所有远程主机;
  • password :用户登录密码;

账号授权database_name数据库所有权限

#授权
#GRANT ALL PRIVILEGES ON  *.* TO ‘username’@‘%’ IDENTIFIED BY 'password’;

grant all privileges on `database_name`.* to 'username'@'%' identified by 'password';
flush privileges;
  • 格式grant 权限 on 数据库名.表名 to 用户@登录主机 identified by "用户密码";*.*代表所有权;
    @ 后面是访问MySQL的客户端IP地址(或是 主机名) % 代表任意的客户端,如果填写 localhost 为本地访问(那此用户就不能远程访问该mysql数据库了)。

只读权限

grant select on database1.* to 'username'@'%' identified by 'password'; 
grant select on database2.* to 'username'@'%' identified by 'password';
flush privileges; 

关于其他权限的说明:

  • select 查询权限,all privileges 所有权限或指定select,delete,update,create,drop权限
  • database1 数据库
  • username 用户账号
  • password 密码
  • % 所有电脑可访问

修改密码

方法一:
使用root登录mysql

mysql -uroot -p
update mysql.user set authentication_string=password('newPassword') where user='userName';

最后刷新权限:

flush privileges;

方法二:
可以用navicat连接上数据库
@后面的localhost是指当初创建账号的时候有没有指定host才能登录mysql.
如果没有指定host的话就写%

指定了host

alter user 'userName'@'localhost' identified by 'newPassword';

没有指定host

alter user 'userName'@'%' identified by 'newPassword';

最后刷新权限:

flush privileges;

mysql查看当前用户权限

SHOW GRANTS FOR CURRENT_USER();

在这里插入图片描述

SHOW GRANTS FOR 'root';

在这里插入图片描述

mysql配置白名单访问

切换至mysql库

use mysql;

查看有白名单权限的用户

select Host,User from user;

指定ip有权限访问mysql

GRANT ALL ON *.* to root@'192.168.1.4' IDENTIFIED BY 'your-root-password';

如果没有密码则不用填,@后面的是指定白名单的ip

GRANT ALL ON *.* to root@'192.168.110.20' ;

如果想让改用户在任意ip下都能连接的话就填%

GRANT ALL ON *.* to your_user_name@'%' ;

最后记得刷新权限

flush privileges;
;