我正在尝试设置远程数据库,但遇到了一个无法解决的问题。也就是说,当我编辑/etc/mysql/mysql.conf.d/mysqld.cnf
并将bind-address设置为www.example.com时0.0.0.0,重新启动mysql
服务后没有任何React。在此过程中,我甚至多次尝试重新启动计算机。
当我以root身份进入mysql并执行show variables
命令时,它仍然在bind-address
上显示127.0.0.1
。但是,当我执行mysql --help
时,它显示(no default value)
作为bind-address变量。我尝试了mysql --bind-address=0.0.0.0
,但它需要访问权限。如果我提供了它,它只会进入mysql shell,而不会更改bind-address。
如果我尝试telnet MACHINE_IP_ADDRESS 3306
,它会显示telnet: Unable to connect to remote host: Connection refused
。因此,我通过执行sudo netstat -ltup
检查监听服务,它会显示localhost:mysql和 : 分别表示本地地址和外部地址。最后,如果我执行lsof -Pni :3306
,我会得到127.0.0.1:3306 (LISTEN)
。
知道发生什么事了吗?
1条答案
按热度按时间ccrfmcuu1#
在我的例子中,我不得不杀死进程(
ps -ef | grep mysql
找到pid,然后kill -9 <pid i found>
),并重新启动它。由于某种原因,
service mysqld restart
没有做任何事情,但我认为它做了-我一直在更改配置,而服务器让我相信它正在重新启动(service mysqld stop
也没有做任何事情)一旦我手动关闭它并启动它-
my.cnf
开始工作。在每个命令后,我运行netstat -l
,并观察以下行:然后我就能从外面联系上