MySQL设置远程访问权限


最近SA给帮忙升级了开发机系统版本,所以数据库的好多配置丢失了。测试同学发现从内服数据中心访问不到我开发机上的数据库了,经过一番查证,发现是我这边开发机上MySQL没有给数据中心那台机器开访问权限。

首先,连接上数据库之后,切换到mysql库,并查询user表:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
mysql> use mysql;
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A

Database changed
mysql> select host, user, password from user;
+------------------+------------------+-------------------------------------------+
| host | user | password |
+------------------+------------------+-------------------------------------------+
| localhost | root | |
| dev-34c75bd1 | root | |
| 127.0.0.1 | root | |
| ::1 | root | |
| localhost | debian-sys-maint | *1C9569D5EC1A****5223EE6B5948C04532BE94E8 |
| ip.of.my.host | myaccount | *6A68F394D993****BAC48935EEFC20F2CB85AB50 |
+------------------+------------------+-------------------------------------------+

可以看到,这里只有对ip.of.my.host进行了myaccount和访问密码的授权,并没有针对数据中心的授权,所以数据中心无法访问我机器上的MySQL数据库。

通过下面的处理,可以使得数据中心可以通过myaccount及相应的密码,访问我机器上的数据库。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
mysql> grant all privileges on *.* to 'myaccount'@'ip.to.d.c' identified by 'mypassword' with grant option;
mysql> flush privileges;
mysql> select host, user, password from user;
+------------------+------------------+-------------------------------------------+
| host | user | password |
+------------------+------------------+-------------------------------------------+
| localhost | root | |
| dev-34c75bd1 | root | |
| 127.0.0.1 | root | |
| ::1 | root | |
| localhost | debian-sys-maint | *1C9569D5EC1A****5223EE6B5948C04532BE94E8 |
| ip.of.my.host | myaccount | *6A68F394D993****BAC48935EEFC20F2CB85AB50 |
| ip.of.d.c | myaccount | *6A68F394D993****BAC48935EEFC20F2CB85AB50 |
+------------------+------------------+-------------------------------------------+

这样,从数据中心(ip.of.d.c)就可以通过myaccount和对应密码访问我机器上的数据库了。

转载请注明出处: http://blog.guoyb.com/2016/02/19/mysql-remote-connect/

欢迎使用微信扫描下方二维码,关注我的微信公众号TechTalking,技术·生活·思考:
后端技术小黑屋

Comments