无法远程连接到 MySQL

无法远程连接到 MySQL

我有 3 台服务器和 1 台在局域网中运行的 Windows 机器

HTTP server (Apache2, PHP5 & phpmyadmin) - 10.0.0.10
DNS - 10.0.0.1
MySQL - 10.0.0.40
Windows - 10.0.0.157

我刚刚在 mysql 服务器上安装了一份全新的 mysql。我首先注释掉了 bind-address。我通过执行以下操作授予了权限。

CREATE USER 'https'@'localuser' IDENTIFIED BY 'password';
CREATE USER 'https'@'10.0.0.10' IDENTIFIED BY 'password';
GRANT ALL PRIVILEGES ON *.* TO 'https'@'localhost';
GRANT ALL PRIVILEGES ON *.* TO 'https'@'10.0.0.10';

但是每次我尝试通过 http 服务器连接到 mysql 时都会发生以下情况

mysql -u https -p
enter password:
ERROR 2002 (HY000): Can't connect to local MySQL server through socket 'var/run/mysqld/mysqld.sock'(2)

当我尝试

mysql -h 10.0.0.40 -P 3306 -u https -p

我收到了另一个错误

ERROR 1045 (28000): Access denied for user 'https'@'10.0.0.10' (Using password: Yes)`

据我所知,我不确定为什么会发生这种情况,我已经完成了所有需要配置的事情?:(

在我的 mysql 用户表中,我有以下内容

user  | host  
https  %
https   10.0.0.10
sqlserver   127.0.0.1
sqlserver ::1
debian-sys-maint  localhost
https    localhost
sqlserver    localhost
sqlserver    raspberrypi

有人能给我指出正确的方向吗?我搜索了一番,发现所有信息都指向注释掉绑定地址行。

编辑我甚至无法使用任何用户(除了sqlserver已重命名的 root 帐户)在本地登录。我尝试添加新帐户并在本地以新帐户身份登录,问题仍然存在!

答案1

回答我自己的问题,乔斯已经部分回答了。

您不应注释掉绑定地址行(在 中/etc/my.cnf)。相反,您应该将其指向服务器的 IP 地址,即10.0.0.40,然后重新启动 MySQL。

结合

GRANT ALL PRIVILEGES ON *.* TO ‘https’@’localhost’ IDENTIFIED BY ‘password’ WITH GRANT OPTION;
而不是
GRANT ALL PRIVILEGES ON *.* TO 'https'@'10.0.0.10';
已经修复了这个问题。希望这能帮助其他有同样问题的人。

谢谢大家的帮助!

答案2

如果你执行

netstat -an | grep 3306

您是否看到一个针对端口 3306 进行监听的条目?

答案3

服务是否已启动?如果没有(或者您不确定),请运行:

sudo service mysql start

相关内容