进入mysql控制台,找到名为mysql数据库的数据库,选择User表。
select User,authentication_string,host from user; //查看原来的Host字段是否改为%
set sql_safe_updates = 0;
update user set host = '%' where user = 'root'; //修改host字段的值为%
set sql_safe_updates = 1;
flush privileges; //刷新权限
在阿里云中,设置防火墙的规则,添加一个mysql就行了。
最好是在内部创建一个与root相同的权限的用户登录。
create user ‘test’@’%’ identified by ‘test’(这个是密码);
flush privileges; 在创建之后,需要刷新权限。
如果需要修改密码的话
SET PASSWORD FOR 'username'@'host' = PASSWORD('newpassword')
有些版本修改密码语句
SET PASSWORD FOR 'username'@'host' = newpassword'
普及一下mysql内部的权限表,以及内部字段的作用。
1、user表:权限生效于全部数据库
1) 验证信息: user host password/authentication_string
2) 权限信息:
1.库表权限:数据库操作类的权限,select,update...
2.全库权限:数据库管理类的权限,grant,shutdown...
3.系统权限:查询次、更新次、连接次、并发连接次
2、db表:权限生效于某个数据库
1)验证信息:user,host,db
2)权限信息:create/update/alter
3、tables_priv表:select insert
1) 验证信息:user,host,db,table_name
2) 权限信息:select insert
4、columns_priv表:权限生产与某个列
5、proces_priv表:权限可以生效于全部数据库/某个数据库
利用图形化远程登录以后,可以更好,更直观的修改用户权限了。