【转】 远程连接mysql
转自:http://www.linuxidc.com/Linux/2013-05/84813.htm
1.确认能ping通
2.确认端口能telnet通。如果user表的host值是localhost,也会远程telnet3306失败,需要先修改。
3.【错误2003】:
该错误是由于MySQL的配置中打开了IP绑定,只允许本机(127.0.0.1)访问,所以需要修改配置。
sudo vi /etc/mysql/my.cnf (该文件可能引入了其他文件,因此bind-address也可能在其他文件下的配置文件内)
找到bind-address = 127.0.0.1这一行,将其注释
保存退出,重启MySQL服务
4.【错误1130】:
该错误是由于远程登陆时所使用的账号没有授权在当前IP登陆,说白了就是每个账号都有一个或者多个允许登陆的IP,例如root账号默认就有localhost和127.0.0.1,但是远
程机器的IP没有被允许,所以这里要给使用的账号添加该IP登陆的权限
首先看看这个账号有哪些IP登陆的权限
终端下登陆mysql 输入mysql -u root -p 输入密码
登陆成功后输入命令:
use mysql; select Host from user where user='root';
查询结果将列出用户root允许登陆的IP,当前远程机报错1130,就是因为其IP不被允许。所以为了远程登陆,有两种选择,第一种选择是将远程机的IP加入,第二种选择是直接加入一个任意IP(%号),任何远程地址都可以访问,看需求而定
加入方法:
因为复制一整条记录的语句太长,很麻烦,所以干脆把localhost和127.0.0.1其中一个改为需要放行的地址
例如:
update user set Host='%' where Host='127.0.01';
这样就将host=127.0.0.1的这条记录的host改为%(代表任意ip)
flush privileges; #刷新权限
重启MYSQL服务