我正在尝试配置网络服务器(Debian 7)。我遵循了这个教程。 感谢 gandi.net 服务,我正在租用我的服务器。我现在已经启动并运行了 apache2、mysql、php5。 我在终端上使用以下命令连接到它:
ssh [email protected]
下一步是通过sequel pro 创建我的数据库,我不知道该怎么做,文档也不太清楚...... 这就是我要说的:
我已尝试连接:
对于其余的,我照原样离开,并收到此错误消息:
无法连接主机domainname.com,或请求超时。
确保地址正确并且您拥有必要的权限,或者尝试增加连接超时(当前为 10 秒)。
MySQL 说:无法连接到 'domainename.com' (61)' (2) 上的 MySQL 服务器
知道我该怎么做吗?
如果您在 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
这是对我有用的解决方案:在 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
不受限制。
我试图找到 .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 地址。
sudo vim /etc/ssh/sshd_config
在文件httpd.conf中设置localhost如下
服务器名称本地主机
否则端口不会接受你的服务器请求,并且会显示cant 连接到服务器 ip_address
我只需在终端上运行此行即可解决问题
ALTER USER 'your_user'@'localhost' IDENTIFIED WITH mysql_native_password BY 'your_password';
your_user = root
对我来说your_password = something
选择你想要的
locate my.cnf
vi /usr/local/etc/my.cnf
# 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
现在可以出发了...
如果所有方法都不起作用,可能来自 nftables 停止该命令并重试
sudo systemctl stop nftables