Navicat 远程连接linux mariadb(mysql)解决方案
连接前环境:1.Navicat位于Windows下,ip:10.10.11.322.远程mariadb(mysql)在一台linux server服务器中,服务器ip:10.10.11.130,局域网互通。3.mariadb数据库使用默认设置(端口3306,用户名:root,无密码)首先在linux 下mariadb安装后目录结构可能和mysql不太一样,具体如下图所示:
连接前环境:
1.Navicat位于Windows下,ip:10.10.11.32
2.远程mariadb(mysql)在一台linux server服务器中,服务器ip:10.10.11.130,局域网互通。
3.mariadb数据库使用默认设置(端口3306,用户名:root,无密码)
首先在linux 下mariadb安装后目录结构可能和mysql不太一样,具体如下图所示:
在连接过程中一共依次遇到以下几个报错:
1. 首先,按照下图直接进行连接时,遇到“2013 - lost connection to mysql server at 'reading initial communication packet',system error:0 ........."错误
解决方法:在/etc/mysql/my.cnf中的[mysqld]下添加skip-name-resolve
service mysql restart重启mysql.
2.然后Navicat连接时,遇到“2003 - cant connect ro mysql server on * (10061 “Unknown error”)“错误,如下图所示:
解决方法:打开文件/etc/mysql/mariadb.conf.d/50-server.cnf,修改
bind-address = 127.0.0.1
为
bind-address = 10.10.11.130(mysql所在主机对外ip,我的环境中就是局域网ip)
3.接着,遇到了“1130-host ... is not allowed to connect to this MySql server”不允许远程访问mysql的错误
解决方法:
mysql>use mysql;
mysql>update user set host = '%' where user ='root';
mysql>select host, user from user;
mysql>GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' WITH GRANT OPTION //赋予任何主机访问数据的权限
mysql>FLUSH PRIVILEGES //修改生效
mysql>EXIT //退出MySQL
service mysql restart 重启mysql
4.最后,又遇到“1698 Access denied for user *@*”错误
解决方法:
$ sudo mysql
mysql> USE mysql;
mysql> UPDATE user SET plugin='' WHERE User='root';
mysql> FLUSH PRIVILEGES;
mysql> exit;
$ service mysql restart
最终,Navicat成功连接远程mysql服务。
PS:CSDN改版后的编辑器还是一大堆bug,非常不好用!
参考资料:
window下利用navicat访问Linux下的mariadb数据库
解决Navicat 报错:1130-host is not allowed MySQL不允许从远程访问的方法
ERROR 1698 (28000): Access denied for user ‘root’@’localhost’
欢迎大家扫描关注公众号:编程真相,获取更多精彩的编程技术文章!
更多推荐
所有评论(0)