【问题标题】:Can't connect to MySQL server on (ip or domain name)无法连接到(IP 或域名)上的 MySQL 服务器
【发布时间】:2014-02-08 20:50:30
【问题描述】:

我正在尝试配置 Web 服务器 (Debian 7)。我关注了这个tutorial。 感谢 gandi.net 服务,我正在租用我的服务器。我现在已经启动并运行了 apache2、mysql、php5。 我在终端上使用以下命令连接到它:ssh username@domainname.com

下一步是通过sequel pro创建我的数据库,我不知道该怎么做,文档也不是很清楚...... 这就是我所说的:

我已尝试连接:

  • Nom:某个名字,我发现很清楚。 (我想我可以在这里放任何东西,对吧?)
  • 主机:ip 或域名
  • 用户:我在 ssh 连接中使用的用户名(参见上文)
  • 密码:我用于 ssh 连接(参见上文)和 mysql 连接的密码

剩下的,我就这样离开了,我收到了这个错误信息:

无法连接到主机 domainname.com,或者请求超时。

确保地址正确且您拥有必要的权限,或尝试增加连接超时时间(当前为 10 秒)。

MySQL 说:无法连接到 'domainename.com' (61)' (2) 上的 MySQL 服务器

知道我该怎么做吗?

【问题讨论】:

    标签: mysql sequelpro


    【解决方案1】:

    如果您在 Debian 上正常安装 MySQL,它将被配置为阻止与数据库的外部连接。

    这意味着你仍然需要告诉 MySQL 外部访问是可以的。为此,您需要更新 MySQL 的绑定地址。这是在my.cnf 中配置的,在基于Debian 的系统上,它位于/etc/mysql/my.cnf

    在那里,找到写着的部分

    [mysqld]
    

    在那里,你必须确保

    • skip-networking 行已被注释(cmets 以“#”开头)或不存在,并且
    • Bind-address 设置为0.0.0.0(如果没有行 bind-address 则为)或您的服务器的 IP 地址。

    完成此操作后,您应该重新启动 MySQL 服务。然后您需要创建一个允许远程访问的用户。这可以通过 SQL 查询来完成:

    GRANT ALL ON yourdatabase.* TO youruser@'*' IDENTIFIED BY 'yourpassword';
    

    如果每次都相同,您可以将要连接的 IP 地址的星号换掉。

    最后,您需要在防火墙上打开端口 3306(MySQL 使用的端口)。这通常不是必需的,因为它已经在大多数系统上打开,但可以使用以下 iptables 命令完成。

    /sbin/iptables -A INPUT -i eth0 -p tcp --destination-port 3306 -j ACCEPT
    service iptables save
    

    来源:1

    【讨论】:

    • 请让您的答案自成一体,以便在链接网站出现故障时也能正常工作。
    • @1010 用这种方式做了尝试。这种格式有效吗?
    • 以防万一,最近一个 raspbian 上的相关配置文件被发现是/etc/mysql/mariadb.conf.d/50-server.cnf
    【解决方案2】:

    这是对我有用的解决方案:在 Debian 7 中查看 /etc/mysql/my.cnf 下的 my.cnf 并找到以下行:

    # Instead of skip-networking the default is now to listen only on
    # localhost which is more compatible and is not less secure.
    bind-address        = 127.0.0.1
    

    现在把127.0.0.1改成你想连接的mysql服务器的IP地址或者0.0.0.0就没有限制了。

    【讨论】:

      【解决方案3】:

      我试图找到 .cnf 文件,因此我做了以下操作:

      sudo find / -name "*.cnf"
      
      /etc/mysql/mysql.conf.d/mysqld.cnf
      /etc/mysql/my.cnf
      /etc/mysql/mysql.cnf
      /etc/mysql/conf.d/mysqldump.cnf
      /etc/mysql/conf.d/mysql.cnf
      

      我根据

      编辑了/etc/mysql/mysql.conf.d/mysqld.cnf
      strace mysql ";" 2>&1  | grep cnf
      
      stat("/etc/my.cnf", 0x7ffda9472660)     = -1 ENOENT (No such file or directory)
      stat("/etc/mysql/my.cnf", {st_mode=S_IFREG|0644, st_size=683, ...}) = 0
      open("/etc/mysql/my.cnf", O_RDONLY)     = 3
      stat("/etc/mysql/conf.d/mysql.cnf", {st_mode=S_IFREG|0644, st_size=8, ...}) = 0
      open("/etc/mysql/conf.d/mysql.cnf", O_RDONLY) = 4
      stat("/etc/mysql/conf.d/mysqldump.cnf", {st_mode=S_IFREG|0644, st_size=55, ...}) = 0
      open("/etc/mysql/conf.d/mysqldump.cnf", O_RDONLY) = 4
      stat("/etc/mysql/mysql.conf.d/mysqld.cnf", {st_mode=S_IFREG|0644, st_size=3034, ...}) = 0
      open("/etc/mysql/mysql.conf.d/mysqld.cnf", O_RDONLY) = 4
      stat("/etc/mysql/mysql.conf.d/mysqld_safe_syslog.cnf", {st_mode=S_IFREG|0644, st_size=21, ...}) = 0
      open("/etc/mysql/mysql.conf.d/mysqld_safe_syslog.cnf", O_RDONLY) = 4
      stat("/root/.my.cnf", 0x7ffda9472660)   = -1 ENOENT (No such file or directory)
      stat("/root/.mylogin.cnf", 0x7ffda9472660) = -1 ENOENT (No such file or directory)
      

      并将 bind-address 更改为我的本地 IP 地址。

      【讨论】:

        【解决方案4】:

        sudo vim /etc/ssh/sshd_config

        在httpd.conf文件中设置localhost如下

        服务器名称本地主机

        否则端口将不接受您的服务器请求,并显示无法 连接服务器ip_address

        【讨论】:

          【解决方案5】:

          我只需在终端上运行此行即可解决此问题

          ALTER USER 'your_user'@'localhost' IDENTIFIED WITH mysql_native_password BY 'your_password';
          

          your_user = root 给我
          your_password = something 选择你想要的任何东西

          【讨论】:

            【解决方案6】:
            1. locate my.cnf
            2. vi
              例如==> vi /usr/local/etc/my.cnf
            3. 现在您在下面查看并比较,如果您发现差异然后更新
            # Default Homebrew MySQL server config  
            [mysqld]
            # Only allow connections from localhost  
            bind-address = 0.0.0.0
            

            现在按下按钮 => esc 和 :wq(vi 命令)

            重启 MySQL =>

            sudo /usr/local/mysql/support-files/mysql.server stop
            sudo /usr/local/mysql/support-files/mysql.server start
            

            现在可以开始了...

            【讨论】:

              猜你喜欢
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 2012-11-30
              • 2014-05-10
              • 1970-01-01
              • 2012-02-08
              • 2020-12-03
              • 2021-02-17
              相关资源
              最近更新 更多