Mysql5.7创建用户开启远程连接访问

先使用root进入mysql

mysql -u root -p

use mysql

注意:MySQL5.7 mysql.user表没有password字段改 authentication_string;

一. 创建用户:

命令:CREATE USER ‘username’@’host’ IDENTIFIED BY ‘password’; 

username – 你将创建的用户名

host – 指定该用户在哪个主机上可以登陆(localhost表示本地登入不能远程登入,需要远程登入将host替换成制定机器ip即可,或者允许所有ip连接则使用 %)

CREATE USER 'testAccount'@'localhost' IDENTIFIED BY 'AA42a32332’; --创建本地访问用户
CREATE USER 'testAccount'@'%' IDENTIFIED BY 'AA42a32332’; --创建外网可以访问用户
CREATE USER 'testAccount'@'192.168.19.20' IDENTIFIED BY 'AA42a32332’; --创建制定IP可访问用户

二.授权:

命令:GRANT privileges ON databasename.tablename TO ‘username’@’host’

PS: privileges – 用户的操作权限,如SELECT , INSERT , UPDATE 等(详细列表见该文最后面).如果要授予所的权限则使用ALL.;databasename – 数据库名,tablename-表名,如果要授予该用户对所有数据库和表的相应操作权限则可用*表示, 如*.*.

授予选择和插入权限: GRANT SELECT, INSERT ON mq.* TO 'testAccount'@'localhost'; --- dog:用户名

所有权限授予:grant all privileges on *.* to 'testAccount'@'%' identified by 'xxxxxx’;

刷新权限:flush privileges;

注意授权完成后 刷新下权限 flush privileges;

三.设置与更改用户密码

命令:SET PASSWORD FOR ‘username’@’host’ = PASSWORD(‘newpassword’);

SET PASSWORD FOR 'testAccount'@'localhost' = PASSWORD("update18362!”);

四.撤销用户权限

      命令: REVOKE privilege ON databasename.tablename FROM ‘username’@’host’;

     说明: privilege, databasename, tablename – 同授权部分.

--- 撤销用户的查询数据权限 
REVOKE SELECT ON mq.* FROM 'testAccount'@'localhost';

PS: 假如你在给用户’testAccount’@’localhost”授权的时候是这样的(或类似的):
GRANT SELECT ON test.user TO ‘testAccount’@’localhost’,
则在使用REVOKE SELECT ON *.* FROM ‘testAccount’@’localhost’;命令并不能撤销该用户对test数据库中user表的SELECT 操作.

相反,如果授权使用的是GRANT SELECT ON *.* TO ‘testAccount’@’localhost’;
则REVOKE SELECT ON test.user FROM ‘testAccount’@’localhost’;命令也不能撤销该用户对test数据库中user表的Select 权限.

五.删除用户

      命令: DROP USER ‘username’@’host’;

五.开启远程连接

编辑配置文件 vim /etc/mysql/mysql.conf.d/mysqld.cnf

把 bind-address = 127.0.0.1注释或者更换成服务器ip(这里最好修改成bind-address=0.0.0.0)

修改后重启下数据库服务即可

service mysql start
service mysql stop
service mysql restart

ps:修改后查看下3306端口信息 netstat -an|grep 3306