Fork me on GitHub

本地连接腾讯云MySQL

在腾讯云的MySQL中先新建一个用户,用于远程登录账号。
环境是centos7
登录MySQL

mysql -u root -p 回车后输入密码

创建用户

允许本地IP访问localhost

1
create user 'style'@'localhost' identified by '123456';

用户名是style,密码是123456;

允许外网IP访问

1
create user 'style'@'%' identified by '123456';

刷新授权

1
flush privileges;

为用户创建数据库

数据库名是student

1
create database student DEFAULT CHARSET utf8 COLLATE utf8_general_ci;

为新用户分配权限

授予用户通过外网IP对于该数据库的全部权限

1
grant all privileges on student.* to 'style'@'%' identified by '1234';

授予用户在本地服务器对该数据库的全部权限

1
grant all privileges on student.* to 'style'@'localhost' identified by '1234';

刷新权限

1
flush privileges;

退出root重新登录

1
exit

用新账号style重新登录,由于使用的是 % 任意IP连接, 所以需要指定外部访问IP

1
mysql -h 腾讯云的公网IP -u用户名 -p密码

登录成功!

查询用户权限

1
show grants for style

赋予权限

1
grant all privileges on *.* to 'style'@'%' identified by '1234';

授予style用户在所有数据库上的所有权限

如果此时发现刚刚给的权限太大了,如果我们只想授予它在某个数据库上的权限,那么需要切换到root用户撤销刚才的权限,重新授权

1
2
revoke all privileges on *.* from 'style'@'%';
grant all privileges on student.* to 'style`@'%' identified by '1234';

甚至还可以指定该用户只能执行select和update命令

1
grant select, update on student.* to 'style'@'%' identified by '1234';

这样一来,再次以style用户登录MySQL,只有student数据库是对其可见的,并且如果你只授权它select权限,那么它就不能执行delete语句

每当调整权限后,通常需要执行以下语句来刷新权限

1
flush privileges;

删除创建的用户

1
drop user style@'%';

可用如下命令查看相应用户及对应的host

1
select host, user from user;

MarkSown语法用的不是很好,有些符号没有显示,以下图为准
MySQL用户
MySQL用户
MySQL用户

Your support will encourage me to continue to create!