很多人在本地开发习惯了之后,会发现有一天用本地的navicat链接远程服务器数据库连不上了,抓耳挠腮,下面我说说这个方法,我也是踩了坑才发现这个方法我试过,后来可能是人品问题,没通过,再试的时候发现通过了。这里以CentOS7.4(版本其实没多大差别我觉得)为例介绍。
首先在服务器上:mysql -uroot -p 连接数据库,
第一种:use mysql; //切换数据库
mysql> use mysql; //切换数据库
mysql> select host,user,password from user; //查看远程用户及权限
或者用 :
SELECT DISTINCT CONCAT('User: ''',user,'''@''',host,''';') AS query FROM mysql.user;
这一步直接查看你mysql数据库用户表中的数据库用户有哪些用户和权限,我这里还未创建测试用户,
接下来创建一个 测试用户 用于远程登录管理数据库,
可以用这个用户名密码直接用来在navicat上登录管理远程数据库,
mysql> create user test identified by '123456'; //test用户名123456密码
mysql> grant all privileges on *.* to 'test'@'%'identified by '123456' with grant option;
mysql>flush privileges;
至此mysql远程访问数据库的用户新建完成,
最后重启服务器就可以用navicat连接远程数据库了(用自己创建的用户名密码)!
如果还是没有解决,就是3306端口的问题了,看看开了没(我表示这是我的坑,我出来了)
这里说一下我用的是阿里云,需要单独的开启每个自己需要的端口(设置安全组)!