我有2个ubuntu服务器让我们说X和Y.我的sql服务器在X上。我希望能够在本地(X)和远程(Y)连接和使用我的数据库。我在这里阅读了大量的教程和问题,并在my.cf中注释掉了这些行:
#Bind-address 127.0.0.1
#skip-networking
然后做了这个:
GRANT ALL PRIVILEGES ON *.* TO 'USERNAME'@'IP of Y' IDENTIFIED BY 'PASSWORD' WITH GRANT OPTION;
但是当我这样做时,我想在本地连接时出现此错误。
ERROR 2002(HY000):无法通过socket' /var/run/mysqld/mysql.sock'连接到本地MySQL服务器;
答案 0 :(得分:0)
如果要同时使用同一用户连接本地和远程,则需要创建同一用户两次,一次使用本地主机,另一份使用%通配符 https://dev.mysql.com/doc/refman/5.6/en/adding-users.html
CREATE USER 'USER'@'localhost' IDENTIFIED BY 'some_pass';
CREATE USER 'USER'@'%' IDENTIFIED BY 'some_pass';
然后两个选项的GRANT权利
答案 1 :(得分:0)
让mysqld监听所有接口:-D
在my.cnf:
Bind-address 0.0.0.0
和
socket = /var/run/mysqld/mysqld.sock (access local)
port = 3306
答案 2 :(得分:0)
似乎我只需要重新启动mysql服务,它运行正常。