MySQL服务器无法从远程计算机访问
我在我的本地Ubuntu服务器(11.10)中安装了MySQL服务器。 我无法从远程计算机连接到服务器。
当我尝试: – nmap localhost
,它显示以下内容
港口国服务 22 / tcp打开ssh 80 / tcp打开http 139 / tcp open netbios-ssn 445 / tcp open microsoft-ds 631 / tcp open ipp 3306 / tcp打开mysql
这意味着3306
,MySQL端口是开放的,对吗? 但是,当我尝试nmap 192.168.0.50
,这是服务器IP时,我得到以下内容: –
港口国服务 22 / tcp打开ssh 80 / tcp打开http 139 / tcp open netbios-ssn 445 / tcp open microsoft-ds
这是否意味着使用IP访问时端口未打开? 如果是这样,我该如何打开端口?
我曾尝试过以下代码,但看起来它不起作用。
sudo iptables -A INPUT -p tcp --dport 3306 -j ACCEPT
这有什么不对?
您的MySQL服务仅限于提供localhost(接口绑定)。 出于安全原因,这是默认设置。 如果你真的需要直接从其他主机访问它,有一个很好的如何在Ubuntu上启用MySQL的远程访问 ,你可以遵循:
- 以root身份,使用您喜欢的编辑器打开
/etc/mysql/my.cnf
- 查找
[mysqld]
部分,并在那里找到bind-address
关键字。 这通常设置为127.0.0.1
– 更改它以匹配您的“正常”IP地址 - 保存文件,然后重新加载服务(例如使用
service mysql restart
)
请记住,您必须通过设置适当的GRANT来使您的远程用户能够从远程访问他们的数据库 – 例如
GRANT ALL ON mydb.* TO remoteuser@'%' IDENTIFIED BY 'SomePASSWORD';
请注意@'%'
,表示“来自任何主机”。