今天在连数据库的时候厌倦了PhpMyAdmin了,因为有时候太卡了。所以打算用NaviCat去连。用Navicat直接连呢就会出问题,因为Mysql默认是不支持远程连接的,只支持localhost连接,因此我们需要稍微折腾一下。但这个稍微折腾的过程我感觉踩了所有的坑= =所以决定出来写一下
环境:
Ubuntu 16.04.1
Mysql 5.7.20
执行如下命令打开mysql配置文件
sudo vim /etc/mysql/mysql.conf.d/mysqld.cnf
在网上查的时候非常坑爹,很多都让改mysql.cnf文件,改完以后重启就会出错:(应该是因为版本的问题,老版本应该需要改mysql.cnf。
找到
bind-address = 127.0.0.1
改为
bind-address = 0.0.0.0
注意网上还有要注释掉的,但亲测注释不行,必须改为0.0.0.0:)
在Ubuntu本地(数据库所在的服务器)使用Mysql指令以root身份连接mysql
mysql -u root -p
之后输入密码,登录。
执行如下指令
GRANT ALL PRIVILEGES ON *.* TO root@"%" IDENTIFIED BY '填写root密码';
flush privileges;
注意不要直接复制粘贴!!!!!
注意不要直接复制粘贴!!!!!
注意不要直接复制粘贴!!!!!
要把语句中 填写root密码 改成 自己的密码!!!!!
如果远程以其他用户身份访问,就把语句中的root改为所需用户名。
最后重启Mysql服务
sudo /etc/init.d/mysql restart
好了,现在就能从远程通过Mysql指令连接数据库了,Navicat也可以顺利连接了。
ps:
按照以上步骤你将会避免以下错误
ERROR 2003 (HY000): Can't connect to MySQL server on '114.67.233.110' (60)
没改mysql配置文件时会碰到上边这个错误
ERROR 1045 (28000): Access denied for user 'root'@'218.106.182.23' (using password: YES)
改完配置文件但不通过sql改权限的话会碰到上边这个错误
pps
Navicat就是好看啊