由于公司业务需要需要远程访问数据,网上的方法还是蛮多的,但是找了很多都不好用,下面我整理了几个比较靠谱的几个答案下面一起来看看.
例子一,代码如下:
grant all privileges on wxtest.* to root175@111.34.73.175 identified by '11111'
增加一个root175用户,密码为11111,只能在111.34.73.175上登录,并对数据库wxtest有查询,增加,修改和删除的功能,需要在mysql的root用户下进行执行,这个如果以这个用户登录的话是只能看到wxtest这个表的,代码如下:
flush privileges;
刷新权限操作
格式:grant 权限 on 数据库.* to 用户名@登录主机 identified by “密码”;
增加一个test1用户,密码为123456,可以在任何主机上登录,并对所有数据库有查询,增加,修改和删除的功能,需要在mysql的root用户下进行,代码如下:
mysql>grant select,insert,update,delete on *.* to test1@”%” identified by '123456';
mysql>flush privileges;
取消授权,当然,有授权,就一定有取消授权,Sql代码如下:
REVOKE ALL ON *.* FROM admin@X.Y.Z.W;
FLUSH PRIVILEGES;
这里需要主要的是一定要在你的防火墙中加上通过3306端口,如过通过的3306端口,试试telnet ip 3306 看看可不可以访问了,如果你的你的防火墙关闭了还没有telnet上去,那你就应该问问空间商了,他们有可能在他们的硬件防火墙上开启了3306,别问我怎么知道,我先哭会去.
Mysql无法远程连接的问题
1、Mysql的端口是否正确
通过netstat -ntlp 查看端口占用情况,一般情况下端口是3306。在用工具连接MySQl是要用到端口。例如My AdminMy Query BrowserMySQl Front等。
2、检查用户权限是否正确
mysql库的user表里有两条记录:host分别为localhost和%(为了安全,%可以换成你需要外部连接的IP)。
3、查看/etc/mysql/my.cnf中,skip-networking 是否已被注掉
需要注掉,报错:ERROR 2003 (HY000): Can't connect to MySQL server on '192.168.51.112' (111),代码如下:
- sudo gedit /etc/mysql/my.cnf
- #skip-external-locking
-
- #bind-address = 127.0.0.1
-
- skip-name-resolve //phpfensi.com
4、查看iptables是否停掉,没关的情况下,无法连接
通过:service iptables stop临时关闭。
报错:ERROR 2003 (HY000): Can't connect to MySQL server on '192.168.51.112' (113) |