站长篇----远程连接数据库失败的解决方法

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/guzhenping/article/details/51671364

前言


远程连接数据出错,报:

  • host “XXXXXXXXXXXX” is not allowed to connect to this MySql server
  • unable to authentic
  • SSH tunnel: Invalid username or password

    这三个错误一个来自常规连接(general),两个来自ssh连接。

ssh连接出现的错误,我试着修改过ubuntu的iptables,把3306数据库端口开放出来。但是没有用。

转而跳过ssh连接,并没有尝试公钥私钥的方法。花了点时间解决常规连接的bug。

出错环境


我是连远程数据库,本非本地。本地的话,也不会有这么多问题。因为数据库中默认有localhost这个用户。但是远程,就需要把需要接入数据库的电脑IP放在数据库的用户表中。

远程数据库:mysql 5.x
远程系统:Ubuntu 14.04

本地系统:mac os x/window
本地数据库管理工具:navicat/sqlYog

远程和本地在同一子网下,相互能够ping通。

解决办法


先把自己的本机IP加入到远程数据库的USER表中.
在远程主机上,打开mysql的客户端。执行的命令可以先参考下方截图:
谷震平的blog

先:
select host,user from user;

结果便是该数据中的user信息了,可以看到我的本地IP(是类似于192.168.1.x的)还不知道里面。

如果你想myuser使用mypassword从任何主机连接到mysql服务器的话。

GRANT ALL PRIVILEGES ON *.* TO 'myuser'@'%' IDENTIFIED BY
 'mypassword' WITH GRANT OPTION; 

FLUSH   PRIVILEGES;

例如,如果你想允许用户myuser从ip为192.168.1.6的主机连接到mysql服务器,并使用mypassword作为密码

GRANT ALL PRIVILEGES ON *.* TO 'myuser'@'192.168.1.3' IDENTIFIED BY 'mypassword' WITH GRANT OPTION;

FLUSH   PRIVILEGES;

一定不要忘记输入flush privileges;

添加完后,即可远程连接成功。

参考blog:http://www.cnblogs.com/iscodercn/p/5488633.html [ 这篇blog还不错,在ubuntu 16.04上安装mysql及添加权限]

猜你喜欢

转载自blog.csdn.net/guzhenping/article/details/51671364