无法连接到MySQL服务器(ip或域名)

时间:2014-01-19 19:04:07

标签: mysql sequelpro

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

下一步是通过续集专家创建我的数据库,我不知道该怎么做,文档不是那么清楚...... 这就是我在说的: enter image description here

我试图连接:

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

其余的,我离开了,我收到了这条错误消息:

  

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

     

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

     

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

知道我该怎么做吗?

6 个答案:

答案 0 :(得分:22)

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

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

在那里,找到说

的部分
[mysqld]

在那里,你必须确保

  • skip-networking已注释(评论以'#'开头)或不在那里,
  • 绑定地址设置为0.0.0.0(如果没有行绑定地址,则为),或者设置为服务器的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

答案 1 :(得分:8)

这是对我有用的解决方案:在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没有限制。

答案 2 :(得分: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)

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

答案 3 :(得分:0)

  

sudo vim / etc / ssh / sshd_config

     

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

     

ServerName localhost

     

或者该端口不接受您的服务器请求,并且将显示不能   连接到服务器ip_address

答案 4 :(得分:0)

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

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

your_user = root为我
your_password = something选择您想要的东西

答案 5 :(得分: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

现在好了...