我无法从外部访问 mysql。我认为这是 mysql 或防火墙的东西或 mysql 中的某些特权。
我已经尝试过执行互联网上的步骤。我将逐步介绍该过程以举例说明我在做什么,并为遇到同样问题的其他人提供教程:
我正在使用:
-ubuntu server 12.04
-mysql-server5.5
-there is NO hardware firewall just software one
1-首先我安装了mysql:
sudo apt-get install mysql-server
2-我通过以下方式更改了root密码:
sudo /etc/init.d/mysql stop
sudo mysqld --skip-grant-tables &
mysql -u root mysql
UPDATE user SET Password=PASSWORD('MYPASSWORD') WHERE User='root'; FLUSH PRIVILEGES; exit;
3-我将所有特权授予root到任何ip:
mysql> GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'password' WITH GRANT OPTION;
mysql> FLUSH PRIVILEGES;
4-在我编辑了 my.cnf 之后
sudo nano /etc/mysql/my.cnf
我评论了这些行,如下所示:
#skip-external-locking
#bind-address = 127.0.0.1
5-我编辑了 iptables 以允许 MySql 3306:
iptables -A INPUT -i eth0 -p tcp -m tcp --dport 3306 -j ACCEPT
现在输入 netstat -ant:
Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address Foreign Address State
tcp 0 0 127.0.0.1:3306 0.0.0.0:* LISTEN
tcp 0 0 0.0.0.0:110 0.0.0.0:* LISTEN
tcp 0 0 0.0.0.0:143 0.0.0.0:* LISTEN
tcp 0 0 0.0.0.0:10000 0.0.0.0:* LISTEN
tcp 0 0 66.123.173.170:53 0.0.0.0:* LISTEN
tcp 0 0 127.0.0.1:53 0.0.0.0:* LISTEN
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN
tcp 0 0 127.0.0.1:953 0.0.0.0:* LISTEN
tcp 0 0 0.0.0.0:25 0.0.0.0:* LISTEN
tcp 0 0 0.0.0.0:993 0.0.0.0:* LISTEN
tcp 0 0 0.0.0.0:995 0.0.0.0:* LISTEN
tcp 0 0 66.123.173.170:22 189.32.2.232:49167 ESTABLISHED
tcp 0 336 66.123.173.170:22 189.32.2.232:49654 ESTABLISHED
tcp6 0 0 :::110 :::* LISTEN
tcp6 0 0 :::143 :::* LISTEN
tcp6 0 0 :::8080 :::* LISTEN
tcp6 0 0 :::21 :::* LISTEN
tcp6 0 0 :::53 :::* LISTEN
tcp6 0 0 :::22 :::* LISTEN
tcp6 0 0 ::1:953 :::* LISTEN
tcp6 0 0 :::25 :::* LISTEN
tcp6 0 0 :::993 :::* LISTEN
tcp6 0 0 :::995 :::* LISTEN
tcp6 0 0 127.0.0.1:8005 :::* LISTEN
看到 3306 端口是打开的!我对吗?
6-我重新启动了mysql:
sudo service mysql start
我输入:
service mysql status
结果:
mysql start/running, process 20757
7-我尝试连接到服务器:
mysql -h 66.123.173.170 -u root -p
我收到了这个错误:
错误 2003 (HY000): 无法连接到“66.123.173.170”上的 MySQL 服务器 (111)
当我做:
mysql -h 127.0.0.1 -u root -p
它可以打开 MySQL> 终端
8- 疑问:你觉得这个过程有什么问题吗?
OBS:在第4步,我也尝试将绑定地址设置为bid-address = 0.0.0.0,但没有解决问题。
9- 疑问:如果我用以下命令关闭 MySQL:service mysql stop
那么,我可以用 mysql -h 127.0.0.1 -u root -p 在本地访问防火墙吗?
我做到了,即使 mysql 停止/等待,我也可以连接(这是停止和检索 MySQL 状态后给出的状态)。