MySql 远程权限的控制简单配置

远程链接数据库: 

登录远程的mysql命令:

/*

* 用root用户链接172.20.60.2端口为3306下面的mysql的spectergk数据库

*/

mysql -h 172.20.60.2 -P 3306  -u  root -p spectergk
输入密码后报下面的错误:
ERROR 1130 (HY000): Host '10.18.21.143' is not allowed to connect to this MySQL server
从错误中可以看出10.18.21.43 没有权限链接数据库spectergk,所以我们要在自己的mysql中设置mysql的的权限,具体步骤如下:
首先登录自己的mysql:
mysql -u root -p  mysql
方法一(练习的就可以,项目推荐方法二):
1、产看下自己的user表下面的数据:
 select  user,host from user;
结果:

可以看到root对应的host是127.0.0.1这个时候我们可以直接对127.0.0.1进行修改为自己的IP地址

如:

update user set host = '10.18.21.143' where user = 'root';

FLUSH PRIVILEGES;

在查看的话如下:

 这样远程的可以登录了  但是发现自己登录不上了,这时候我们把
update user set host = '%' where user = 'root';
FLUSH PRIVILEGES;
% 代表所有的host可以登录,这样的只是做练习可以,项目的话是不可能的了。
现在mysql中的sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES,这样的话限制了用insert的来插入用户,这里就不在具体的来介绍了。
 
方法二:(建议使用)
我们使用:
GRANT ALL PRIVILEGES ON *.* TO 'myuser'@'%'IDENTIFIED BY 'mypassword' WITH GRANT OPTION; 来完成对于用户对数据库权限的设置
ALL PRIVILEGES   是所有的权限,也可以是insert,select,delete的
*.*              所授权的数据库,也可以是数据库的一张表
'myuser'@'%'     用户名@host   这里的% 代表所有的host
IDENTIFIED BY    让用户登录的密码
GRANT OPTION     将这些权限 grant 给其他用户,不一定是root
例子:
GRANT ALL PRIVILEGES ON spectergk.* TO 'test'@'%'IDENTIFIED BY '111111' WITH GRANT OPTION;
用test登录spectergk 被授予了所有的权限。
如果在实际开发中,没有权限的话,可以直接联系DBA统一管理。

 
 
 

posted on 2017-11-21 11:44  smartly  阅读(286)  评论(0)    收藏  举报

导航

版权所有 © Yun2014