Я установил сервер MySQL на свой локальный сервер Ubuntu (11.10). Я не могу подключиться к серверу с удаленного компьютера.
Когда я попытался: - nmap localhost
, он показывает следующее
PORT STATE SERVICE 22/tcp open ssh 80/tcp open http 139/tcp open netbios-ssn 445/tcp open microsoft-ds 631/tcp open ipp 3306/tcp open mysql
Это означает, что 3306
, порт MySQL открыт, верно? Но когда я попробовал nmap 192.168.0.50
, который является IP-адресом сервера, я получил следующее: -
PORT STATE SERVICE 22/tcp open ssh 80/tcp open http 139/tcp open netbios-ssn 445/tcp open microsoft-ds
Означает ли это, что порт не открыт при доступе по IP? Если да, то как мне открыть порт?
Я пробовал следующий код, но, похоже, он не работал.
sudo iptables -A INPUT -p tcp --dport 3306 -j ACCEPT
Что здесь не так?
Ваш сервис MySQL обязан обслуживать localhost только (привязка интерфейса). Это - значение по умолчанию из соображений безопасности. Если действительно необходимо получить доступ к нему непосредственно от других хостов, существует хорошее, Как включить удаленный доступ к MySQL на Ubuntu, за которой Вы могли следовать:
/etc/mysql/my.cnf
или /etc/mysql/mysql.conf.d/mysqld.cnf
с Вашим любимым редактором как в различных системах это, как находят, отличается.[mysqld]
раздел, и там для bind-address
ключевое слово. Это обычно устанавливается на 127.0.0.1
- изменение, что для соответствия "нормальному" IP-адресуservice mysql restart
)Помните, что необходимо позволить удаленным пользователям получить доступ к своей базе (базам) данных от удаленного путем установки соответствующих ПРЕДОСТАВЛЕНИЙ - например.
GRANT ALL ON mydb.* TO remoteuser@'%' IDENTIFIED BY 'SomePASSWORD';
Отметьте @'%'
, что означает "от любого хоста".