mysql版本使用的是5.7,5.7版本的用户密码和以前的版本略有不同。5.7版本的用户表是Mysql库中user表,5.7版本user表中已经没有password字段,密码是将加密后的用户密码存储于authentication_string字段。
一、创建用户:
命令:CREATE USER'username'@'localhost' IDENTIFIED BY 'password';
注:“username”是用户名;“localhost”本机登陆,如需要远程登陆需要修改为“%”,“password”为密码;
例子:CREATE USER 'root'@'localhost' IDENTIFIED BY '123'; //本机登陆用户
CREATE USER 'root'@'%' IDENTIFIED BY '123';//远程登录用户
二、授权:
命令:GRANT privileges ON databasename.tablename TO 'username'@'host' WITH GRANT OPTION;
注:“privileges” 给这个用户操作的权限,包括增删改查等权限,如果为ALL就是所有的操作权限;“databasename.tablename”允许这个用户操作那个库那个表,如果需要所有表,值为*.*;“hos”ip地址,如果为“%”则所有的主机都可以访问,也可以规定访问的主机ip;“WITH GRANT OPTION”授权,具体为当前操作用户给 username 用户授权。
例子:GRANT ALL PRIVILEGES ON *.* TO 'test'@'%' IDENTIFIED BY '密码' WITH GRANT OPTION; flush privileges;
//修改权限为所有主机都可以使用test用户登陆mysql 并且可以对当前mysql的所有表进行所有的操作。这个语句可以创建用户。flush privileges 语句是刷新。
三、修改用户密码:
命令:SET PASSWORD FOR'username'@'host'= PASSWORD('newpassword');
UPDATE USER SET authentication_string = PASSWORD('newpassword') WHERE user="username";
注:两条语句都可以
四、删除用户:
命令:DROP USER 'username'@'host';
五、查看权限:
命令:show grants for username@host;
还有就是远程链接mysql需要关闭防火墙,授权需要在语句结束后执行flush privileges;如果不执行会报错。