前几天连接还正常,但不知何故却不行了。MySQL 在 Ubuntu Server 12.04 中运行,我正尝试使用 Windows 7 中的 ODBC Connector 5.1 连接到数据库。
我尝试过注释掉文件并保留绑定地址cnf
。我尝试过授予所有访问权限。我阅读了无数教程并发帖试图弄清楚。我无法弄清楚发生了什么,而且我对这一切都是新手,我注意到大多数帖子都遗漏了一些其他人可能注意到的小事情。
帮忙!提前致谢。
服务正在运行,我从 netstat -tlpen | grep mysql 获得以下内容:
tcp 0 0.0.0.0.0:3306 0.0.0.0:* LISTEN 106 15172 3565/mysqld
我从 netstat -tlpen 获得以下信息:
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address Foreign Address State User Inode PID/Program name
tcp 0 0 0.0.0.0:3306 0.0.0.0:* LISTEN 106 15172 3565/mysqld
tcp 0 0 0.0.0.0:139 0.0.0.0:* LISTEN 0 7092 776/smbd
tcp 0 0 0.0.0.0:111 0.0.0.0:* LISTEN 0 8325 784/rpcbind
tcp 0 0 0.0.0.0:10000 0.0.0.0:* LISTEN 0 9759 1325/perl
tcp 0 0 0.0.0.0:44819 0.0.0.0:* LISTEN 0 9584 -
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 0 8809 947/sshd
tcp 0 0 0.0.0.0:445 0.0.0.0:* LISTEN 0 7090 776/smbd
tcp 0 0 0.0.0.0:2049 0.0.0.0:* LISTEN 0 9000 -
tcp6 0 0 :::139 :::* LISTEN 0 7088 776/smbd
tcp6 0 0 :::111 :::* LISTEN 0 8328 784/rpcbind
tcp6 0 0 :::22 :::* LISTEN 0 8811 947/sshd
tcp6 0 0 :::445 :::* LISTEN 0 7085 776/smbd
tcp6 0 0 :::2049 :::* LISTEN 0 9003 -
tcp6 0 0 :::47906 :::* LISTEN 0 9586 -
iptable -L
Chain INPUT (policy ACCEPT)
target prot opt source destination
Chain FORWARD (policy ACCEPT)
target prot opt source destination
Chain OUTPUT (policy ACCEPT)
target prot opt source destination
答案1
听起来你已经检查了 MySQL 可能出现的所有问题。接下来我要检查的是 MySQL 是否仍在运行并在正确的端口上监听。
service mysql status
如果没有运行,请启动它:
service mysql start
之后,我将通过运行以下命令确保它仍在监听默认端口
netstat -tlpen | grep mysql
MySQL 的默认端口是 3306,因此它应该返回如下内容:
tcp 0 0 127.0.0.1:3306 0.0.0.0:* LISTEN 107 8073 790/mysqld
答案2
我终于搞清楚了到底发生了什么。原来,我为服务器设置的静态 IP 并未完全建立,重新启动后,LAN 上的另一台计算机获取了我为服务器指定的 IP 地址。
sudo nano /etc/network/interfaces
并改变了类似于此的信息教程,使用与我的 LAN 相关的信息。
我没有按照教程所述更改 resolv.conf 文件,而是添加了:
dns-nameserver XX.XX.XX.XX
dns-nameserver XX.XX.XX.XX
作为接口文件底部的两行附加内容。XX.XX.XX.XX 被替换为我从路由器识别的 dns-nameservers。我读到的其他信息表明您可以使用其他服务器,即 Google 或 OpenDNS。完成此操作并重新启动网络后,我必须从服务器中删除 dhcp-client。如果不这样做,重新启动服务器后静态 ip 地址将不会保留。