【问题标题】:Can't connect to Remote MySQL Server (10061)无法连接到远程 MySQL 服务器 (10061)
【发布时间】:2016-10-21 09:06:47
【问题描述】:

在 MySQL 中启用了本地主机连接。

但远程(我的笔记本电脑)访问被禁用

Can't connect to MySQL server on "host" (10061)`.

我的端口始终打开 3306。

这是我的配置文件 (/etc/mysql/my.cnf):

#bind-address 0.0.0.0
!includedir /etc/mysql/conf.d/
!includedir /etc/mysql/mysql.conf.d/

而 MySQL 的状态是:

mysql start/running, process 15204

【问题讨论】:

  • 你是在远程连接mysql服务器吗?
  • 这是我的错误信息。这里Can't connect to MySQL server on "host" (10061)。是的,我正在远程连接 mysql 服务器。
  • 允许你的用户获取你的ip。看看http://*.com/questions/8348506/grant-remote-access-of-mysql-database-from-any-ip-address

标签: mysql ubuntu


【解决方案1】:

对于在 Raspberry Pi 3 上托管 MySQL 的其他任何人,您要查找的文件位于

etc/mysql/mariadb.conf.d/50-server.cnf

您仍然需要按照上面提到的 Nesan Mano 等前面的步骤进行注释

bind-address = 127.0.0.1

希望这可以帮助其他人避免像我一样花费大量时间来处理看似缺失的线路。

【讨论】:

    【解决方案2】:

    那个 bind-address = 127.0.0.1 配置选项意味着你的 mysql 服务器只接受来自 localhost 的连接,这是你真正的 CentOS 机器。确保设置 bind-address = 0.0.0.0

    【讨论】:

      【解决方案3】:

      以下内容对我有用。

         SELECT User, Host FROM mysql.user;
         UPDATE mysql.user SET HOST='%' WHERE User='root';
         UPDATE mysql.user SET HOST='%' WHERE User='administrator';
         FLUSH PRIVILEGES;
      

      那么,

      sudo gedit /etc/mysql/mysql.conf.d/mysqld.cnf
      

      改变

      bind-address = 127.0.0.1 to: #bind-address = 127.0.0.1
      

      保存文件。 重启服务器/重启 MySQL

      【讨论】:

        【解决方案4】:

        就我而言,在 Ubuntu 18.04 的 Oracle VM 上安装了 LAMP 堆栈

        这是我对 mysql 配置文件的更新:/etc/mysql/mysql.conf.d/mysqld.cnf

        之前:

        bind-address          = 127.0.0.1
        

        之后:

        # bind-address          = 127.0.0.1
        # comment out bind-address to test remote access
        

        确保您的用户可以从远程主机访问 sudo mysql -u root -p 输入密码,然后发出命令

        mysql> SELECT user,authentication_string,plugin,host FROM mysql.user;
        

        +------------------+--------------- ----------------+------------------------+--------- -----+ |用户 |身份验证字符串 |插件 |主持人 | +------------------+------------------ -------------+------------------------+------------ --+

        |新用户 | *9ACA980716AE084BCA56C59D19F3CEB7BB87B139 | mysql_native_password | 192.168.x.x | |新用户 | *9ACA980716AE084BCA56C59D19F3CEB7BB87B139 | mysql_native_password |本地主机 |

        这对我有用,祝你好运。

        【讨论】:

          【解决方案5】:

          要允许远程访问安装在 Ubuntu 上的 MySQL,您必须访问此位置的文件:

          /etc/mysql/mysql.conf.d/mysqld.cnf
          

          在那里,您注释掉以下行:bind-address = 127.0.0.1

          基本上要改变:bind-address = 127.0.0.1 到:#bind-address = 127.0.0.1

          现在您要么重新启动计算机,要么只使用以下命令重新启动 mySQL 服务: sudo /etc/init.d/mysql 重启

          【讨论】:

            【解决方案6】:

            要允许远程访问 MySQL,你必须在配置文件中注释掉 bind-address(你做了)和 skip-networking。

            接下来,您必须确保允许用户进行远程访问。用这个检查你的用户:

            SELECT User, Host FROM mysql.user;
            

            如果您的用户在此处将“127.0.0.1”或“localhost”列为主机,则您没有远程访问权限。

            更改为:

            UPDATE mysql.user SET HOST='%' WHERE User='__here_your_username';
            

            刷新权限:

            FLUSH PRIVILEGES;
            

            “%”是“所有主机”的通配符。

            【讨论】:

            • 我将 'localhost' 更新为 %.. 和刷新权限。但仍然无法访问
            • 你注释掉了 bind-address 和 skip-networking 吗?当您尝试从终端(远程)连接 MySQL 服务器时,您返回了什么错误? mysql -h 主机 -u 用户名 -p
            • 那么你的3306端口被防火墙屏蔽了。 :)
            • 我自己只使用 Fedora 和 CentOS,所以我帮不了你,但这里有一个有用的链接:digitalocean.com/community/tutorials/…
            • 哦,顺便说一句..如果您使用的是 AWS,您还需要在安全组中打开端口。可能就是这样:docs.aws.amazon.com/AWSEC2/latest/UserGuide/…