我设法允许远程访问Mysql。这是我的conf文件/etc/my.conf
cat /etc/my.cnf
[mysqld]
local-infile=0
user = mysql
pid-file = /var/run/mysqld/mysqld.pid
socket = /var/run/mysqld/mysqld.sock
port = 3306
basedir = /usr
datadir = /var/lib/mysql
tmpdir = /tmp
bind-address = IP_OF_SERVER
#skip-networking问题是,我能够远程连接到DB,但是如果像这样启用conf文件,与我使用mysql不同的内部应用程序将无法连接到本地主机。
我不知道如何妥善解决这个问题。还有什么额外的步骤需要做吗?
我查过这篇文章了,https://stackoverflow.com/a/13811362/5000868,但我不太清楚。
这就是我的user表的样子(我没有故意包含密码字段)
-----------------------+----------------+-------------------------------------------+-------------
| Host | User | Password | Select_priv
+-----------------------+----------------+-------------------------------------------+-------------
| localhost | root | * | Y
| localhost.localdomain | root | * | Y
| 127.0.0.1 | root | * | Y
| localhost | | * | N
| localhost.localdomain | | * | N
| localhost | 9r9v17559f9tew | * | Y
| % | 9r9v17559f9tew | * 总之,我希望能够远程和局部地使用用户名MySQL访问9r9v17559f9tew。
谢谢!EDIT
我又添加了一个带有主机名9r9v17559f9tew的用户127.0.0.1。此外,当我尝试像这样在服务器上本地访问DB时,我会得到以下错误:
mysql -u 9r9v17559f9tew -p
输入密码: ERROR 2002 (HY000):无法通过套接字'/var/lib/ MySQL /mysql.sock‘连接到本地mysql服务器(2)
如果我尝试像这样在本地或远程连接,我就可以连接:
# mysql -u 9r9v17559f9tew -p -h IP_OF_SERVER
Enter password:
Welcome to the MySQL monitor. Commands end with ; or \g.发布于 2016-09-26 14:14:15
只需删除绑定地址声明。
然后重新启动服务。
据我所知,默认情况下,MySQL将绑定到0.0.0.0。这允许本地和远程访问。通过指定服务器的IP,它将只接受来自IP分配给的eth接口的连接。
https://stackoverflow.com/questions/39703774
复制相似问题