14

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

下一步是通过 sequel pro 创建我的数据库,我不知道该怎么做,文档也不是很清楚……这就是我要说的: 在此处输入图像描述

我试图连接:

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

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

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

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

MySQL 说:Can't connect to MySQL server on 'domainename.com' (61)' (2)

知道我该怎么做吗?

4

6 回答 6

23

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

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

在那里,找到说

[mysqld]

在那里,你必须确保

  • 该行skip-networking被注释(注释以“#”开头)或不存在,并且
  • 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

于 2014-01-19T19:25:58.023 回答
9

这是对我有用的解决方案:在 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.1mysql 服务器的 IP 地址,你想连接还是0.0.0.0没有限制。

于 2014-10-02T13:09:10.317 回答
1

我试图找到 .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)

并将绑定地址更改为我的本地 IP 地址。

于 2016-09-17T08:06:22.870 回答
0
  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

现在可以走了...

于 2018-09-27T04:31:49.243 回答
0

须藤 vim /etc/ssh/sshd_config

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

服务器名称本地主机

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

于 2016-02-23T08:15:51.960 回答
0

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

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

your_user = root为我
your_password = something选择你想要的

于 2018-09-05T00:31:32.897 回答