navicat无法链接远程linux(ubuntu)上的Mysql
如题,在ubuntu上安装了Mysql,为了方便数据库的管理,需要在本地(windows+navicat)链接到远程数据库上。然后发生一系列问题,特此记录解决过程如下:
一、本地navicat新建链接出现2003错误:
需要修改远程服务器上数据库的两个地方,一个是增加访问IP,一个是增加账户权限。
1、增加访问IP
如图,打开Mysql的配置文件
把红框中的bind-address注释,或者改为本地的IP(如果是公网固定IP),保存退出
2、增加账户权限
本质上就是要修改mysql数据库中user的账户权限,或者添加一个新的账户也可以。我这里是直接修改一个账户的权限,让它能够运行外部的数据库访问。
使用正在使用的账户密码登录mysql,发现里面只有两个数据库表,并没有看到Mysql数据库表的存在。
服务器上的mysql能够正常使用,说明不是数据库有问题,因该是当前账户的权限导致无法显示的问题。但是由于该数据库年久失修,早已忘记root账户的配置。因此先绕过权限,修改mysql中的user数据表。操作如下:
先停止mysql服务,让后同通过 "--skip-grant-tables &"指令绕过权限模式,在后台启动。但是出现如下问题:
既然不存在,那就给它创建一个新目录:
然后再执行skip指令,出现以下提示表示启动成功。特别要注意这里的sock文件很容易丢失,切记不要误删。
另开一个xshell链接端口,并重新进入Mysql操作界面:
此时mysql数据库出现了,现在可以开始更新mysql-user数据库库表:
然后退出即可。
此时navicat就链接成功了!
备注:如果用的是云服务器,还需要在管理后台添加服务器端口的安全组策略,否则是无法链上去的。