先使用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