无法设置远程连接MYSQL Ubuntu

时间:2014-01-31 22:46:47

标签: mysql ubuntu remote-access remote-server

我无法打开我的MYSQL服务器到所有远程连接。我跟随了很多在线指南,看起来有些不对劲。也许SO可以提供指导?我的服务器详细信息如下:

  • Ubuntu 12.04服务器,
  • MYSQL Ver 14.14使用readline 6.2分发5.5.34,debian-linux-gnu(x86_64)

/etc/mysql/my.cnf:其他的东西,但重要的是绑定地址......

  

bind-address = 0.0.0.0

my.conf具有以下权限: -rw-r--r-- 1 root root 3516 Jan 31 17:12 my.cnf

服务器未被阻止,因为: telnet myDomain.com 3306  提示输入我的原生mysql密码。

MYSQL查询

  

通过'myPASSWORD'创建用户'myUser'@'%';

     

GRANT INSERT    ON db.table_v   到'myUser'@'%'   由'myPASSWORD'标识;

     

FLUSH PRIVILEGES;

来自 show grants for 'myUser'@'%';的权限

  

上授予使用权。以''''''''''''''''''''''''''''''''''''''''''''''      

授予db table_v来{'1'}'''''''''%'

我还重启了我的服务器

问题:

  

mysql -h myDomain.com -u myUser -p

     

输入密码:

     

ERROR 1045(28000):用户“myDomain”的访问被拒绝@“*** MYIPADDRESS ***”(使用密码:是)

我也无法在本地登录主机不是特定本地的任何用户,例如'%'或我的家庭IP。

5 个答案:

答案 0 :(得分:1)

如果不是拼写错误,这很有趣:

Access denied for user 'myDomain' 

您是否尝试将您的域名用作用户名?应该有myUser而不是myDomain,因为你只为myUser提供远程权限。

也在:

mysql -h myDomain.com -u myUser -p

-h表示mysql服务器所在的主机,而不是用户当前的主机。所以当你在本地尝试连接数据库时,尝试“localhost”以外的其他任何东西肯定会出错,因为你试图连接一个你不想要的数据库。假设您在本地连接到mysql服务器并输入上面的行;此命令将尝试将myDomain.com上的服务器与您提供的用户myUser和密码连接。如果您定义的权限是您运行此命令的位置,那么您将获得访问被拒绝错误,因为您正在连接到其他服务器。

答案 1 :(得分:1)

我认为问题是指定bind-address属性的.cnf文件的位置。 大多数指南和教程都说这个文件是/etc/mysql/my.cnf,但经过多次尝试后我意识到正确的位置是在mysqld profile下的mysqld.cnf文件中。

尝试在那里包含bind-address属性。 要检查这是否适用于您输入" netstat -lt"并查找mysql进程的本地地址是否为0.0.0.0:3306。

然后再次检查连接

答案 2 :(得分:0)

您还需要创建本地用户帐户

CREATE USER 'myUser'@'localhost' IDENTIFIED BY 'myPASSWORD';

MySQL Manual | Adding users

建议使用诸如

之类的不安全声明
GRANT ALL ON *.* TO 'myuser'@'%';

它会创建超级用户,例如为所有操作授予所有数据库的权限。

答案 3 :(得分:0)

请问您为什么需要直接访问MySQL? MySQL应该只听本地主机,但你可以使用SSH轻松访问。

如果使用Windows,Putty允许您建立与主机的SSH连接,然后将3306 localhost流量转发到您自己的计算机。

更好的是,像SQLyog这样的程序允许SSH隧道连接到MySQL,这是我通常连接的方式(除非服务器在VPN上)。

您是使用此服务器进行开发还是拥有公共IP地址?

答案 4 :(得分:0)

请发布

的结果
nmap ***MYIPADDRESS***

nmap localhost

nmap MyDomain

如果您没有从apt安装nmap,那么我可以为您提供更多帮助。