我设法允许远程访问我们的Mysql DB。这是我的conf文件 /etc/my.conf
[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
问题是,我能够远程连接到数据库,但是如果我启用这样的conf文件,那与使用mysql不同的内部应用程序无法连接到localhost。
我不确定如何妥善解决这个问题。是否还需要执行其他步骤?
我已查看此帖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 | *
总而言之,我希望能够远程访问带有9r9v17559f9tew
用户名的MySQL。 localy。
谢谢!
EDIT
我添加了一个主机名为9r9v17559f9tew
的用户127.0.0.1
。
此外,当我尝试在服务器上访问数据库localy时,我收到以下错误:
输入密码: ERROR 2002(HY000):无法通过套接字'/var/lib/mysql/mysql.sock'连接到本地MySQL服务器(2)
如果我尝试连接这样的localy或遥控器,我可以连接:
# mysql -u 9r9v17559f9tew -p -h IP_OF_SERVER
Enter password:
Welcome to the MySQL monitor. Commands end with ; or \g.
答案 0 :(得分:1)
只需删除bind-address声明。
然后重启服务。
据我所知,默认情况下MySQL将绑定到0.0.0.0。这允许本地和远程访问。通过指定服务器的IP,它只接受来自分配了IP的eth接口的连接。