最近SA给帮忙升级了开发机系统版本,所以数据库的好多配置丢失了。测试同学发现从内服数据中心访问不到我开发机上的数据库了,经过一番查证,发现是我这边开发机上MySQL没有给数据中心那台机器开访问权限。
首先,连接上数据库之后,切换到mysql库,并查询user表:
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及相应的密码,访问我机器上的数据库。
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,技术·生活·思考: