【问题标题】:Unable to setup remote connections MYSQL Ubuntu无法设置远程连接 MYSQL Ubuntu
【发布时间】:2014-01-31 22:46:46
【问题描述】:

我无法为所有远程连接打开我的 MYSQL 服务器。我遵循了许多在线指南,似乎有问题。也许SO可以提供指导?我的服务器详情如下:

  • Ubuntu 12.04 服务器,
  • MYSQL Ver 14.14 Distrib 5.5.34,适用于使用 readline 6.2 的 debian-linux-gnu (x86_64)

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

绑定地址 = 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”@“%”;

授予插入 ON db.table_v TO '我的用户'@'%' 由“我的密码”识别;

冲洗特权;

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

在 上授予使用权限。 由密码 '****************' 识别的 'myUser'@'%'

在db.table_v 上授予插入到'myUser'@'%'

我也重启了服务器

问题:

mysql -h myDomain.com -u myUser -p

输入密码:

错误 1045 (28000): 用户 'myDomain'@'***MYIPADDRESS***' 的访问被拒绝(使用密码:YES)

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

【问题讨论】:

  • 您可以在本地使用相同的凭据登录吗?在尝试其他事情之前,了解凭证的工作原理对我们来说很重要
  • 确保变量 skip-networking 在您的 my.cnf 文件中被注释
  • Remote Connections Mysql Ubuntu 的可能重复项。

标签: mysql ubuntu remote-access remote-server


【解决方案1】:

如果不是错字,这很有趣:

Access denied for user 'myDomain' 

您是否尝试使用您的域名作为用户名?应该有 myUser 而不是 myDomain 因为您只向 myUser 授予远程权限。

也在:

mysql -h myDomain.com -u myUser -p

-h 表示mysql服务器所在的主机,不是你用户当前的主机。因此,当您在本地尝试连接数据库时尝试除“localhost”之外的任何其他内容肯定会导致错误,因为您尝试连接您不打算连接的数据库。假设您在本地连接到 mysql 服务器并输入上述行;此命令将尝试使用您提供的用户 myUser 和密码连接 myDomain.com 上的服务器。如果您定义的权限是您运行此命令的位置,您将收到拒绝访问错误,因为您正在连接到不同的服务器。

【讨论】:

    【解决方案2】:

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

    尝试在其中包含绑定地址属性。 要检查这是否适合您,请键入“netstat -lt”并查找 mysql 进程的本地地址是否为 0.0.0.0:3306。

    然后再次检查你的连接

    【讨论】:

      【解决方案3】:

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

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

      MySQL Manual | Adding users

      我不建议使用诸如

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

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

      【讨论】:

        【解决方案4】:

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

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

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

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

        【讨论】:

          【解决方案5】:

          请公布结果

          nmap ***MYIPADDRESS***
          

          和

          nmap localhost
          

          和

          nmap MyDomain
          

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

          【讨论】:

            猜你喜欢
            • 2013-03-17
            • 2011-10-28
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2017-11-03
            • 1970-01-01
            相关资源
            最近更新 更多