【问题标题】:Mysql: Connection refused ERROR: 111Mysql:连接被拒绝错误:111
【发布时间】:2017-09-08 08:41:38
【问题描述】:

当我使用远程 IP 地址时,我无法连接到我的服务器。

本地主机工作正常。

一些信息:

操作系统:Ubuntu 16.04

数据库:MariaDB

3306 端口已打开

用户拥有远程 (%) 访问权限。

我已将 50-server.conf 中的 bind-address 更改为 bind-address = 0.0.0.0 并尝试将其注释掉。他们都没有工作。还尝试将 bind-address = 0.0.0.0in my.conf 放在 [mysqld] grouptag 下。每次更改后,我都重新启动了 Mysql 并尝试使用此命令进行连接 mrsql -u root -h xxx.xxx.xxx.xxx -p。它适用于本地主机,但当我尝试我的服务器 IP 时不起作用。

我该如何解决这个问题?

【问题讨论】:

  • 什么是“50-server.conf”?
  • 您在每种情况下得到的具体错误信息是什么? (这可能是GRANT 问题。)
  • 当我查看my.conf 时,我只看到了一些包含在内的东西。在该文件夹中包括50-server.conf,我找到了bind-address 行。我改变了那个。但它没有用。但我现在在一段时间后让它工作了。

标签: mysql ubuntu mariadb


【解决方案1】:

经过几天的冲浪和尝试 stackoverflow 中给出的所有解决方案,我终于设法建立了与 mysql 或 Mariadb 的远程连接。

这里是从远程机器访问mysql db的解决方案:

首先,在您的 /etc/my.cnf 或 my.cnf 在您机器中的任何位置:

bind-address= THE_HOST_IP_ON_WHICH_MYSQLDB_IS_INSTALLED
# skip-networking ( This will allow TCP/IP connection)

其次,确保 /etc/hosts.deny 中没有 ip(这在许多情况下可能是连接的根本原因)

> Important:
> 1. restart mysqld = systemctl restart mysqld ( Ubuntu might have diff cmd)
> 2. check status = systemctl status mysqld ( Ubuntu might have diff cmd)
> 3. check port and ip on which mysqld is running = netstat -tlnp  It should be running on THE_HOST_IP_ON_WHICH_MYSQLDB_IS_INSTALLED: 3306  ( Ubuntu might have diff cmd)

第三,创建一个具有所有权限的用户,例如:

> GRANT ALL ON db_name.* TO username@THE_HOST_IP_ON_WHICH_MYSQLDB_IS_INSTALLED IDENTIFIED BY 'password';
> FLUSH PRIVILEGES;

最后,如果使用工作台或任何其他客户端建立连接。输入值:

> HOSTNAME= THE_HOST_IP_ON_WHICH_MYSQLDB_IS_INSTALLED 
>username=username

我希望这可以帮助我的任何其他用户!

【讨论】:

    猜你喜欢
    • 2021-06-08
    • 2017-07-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-12-13
    • 2012-06-07
    • 2018-04-02
    • 1970-01-01
    相关资源
    最近更新 更多