连接前环境:

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’

 欢迎大家扫描关注公众号:编程真相,获取更多精彩的编程技术文章!

Logo

更多推荐