我有 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