12 ответов:
это разрешено по умолчанию на MySQL.
то, что отключено по умолчанию, является удаленным
rootоткрыть. Если вы хотите, чтобы это, запустите эту команду SQL локально:GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'password' WITH GRANT OPTION; FLUSH PRIVILEGES;а затем найти следующую строку и закомментировать в своем
my.cnfфайл, который обычно живет на/etc/mysql/my.cnfв системах Unix / OSX. В некоторых случаях расположение файла - /etc/mysql / mysql.конф.d / mysqld.cnf).если это система Windows, вы можете найти его в Каталог установки MySQL, обычно что-то вроде
C:\Program Files\MySQL\MySQL Server 5.5\и имя файла будутmy.ini.изменить строку
bind-address = 127.0.0.1до
#bind-address = 127.0.0.1и перезапустить сервер MySQL ( Unix / OSX и Windows), чтобы изменения вступили в силу.
после выполнения всего выше я все еще не мог войти в систему как
rootудаленно, но работы с telnet к порту3306подтвердил, чтоMySQLпринимал соединения.Я начал смотреть на пользователей в MySQL и заметил, что были несколько пользователей root С разными паролями.
select user, host, password from mysql.user;так
MySQLЯ установите все пароли для root снова и я мог наконец войти в систему удаленно какroot.use mysql; update user set password=PASSWORD("NEWPASSWORD") where User='root'; flush privileges;
просто заметка из моего опыта, вы можете найти файл конфигурации по этому пути
/etc/mysql/mysql.conf.d/mysqld.cnf.(Я некоторое время боролся, чтобы найти этот путь)
в моем случае я пытался подключиться к удаленному серверу mysql на cent OS. Пройдя через множество решений (предоставление всех привилегий, удаление Привязок ip,включение сети) проблема все еще не была решена.
как оказалось, при просмотре различных решений я наткнулся на iptables, что заставило меня понять, что порт mysql 3306 не принимает соединения.
вот небольшая заметка о том, как я проверил и разрешил это вопрос.
- проверка, принимает ли порт соединения:
telnet (mysql server ip) [portNo]
- добавление правила таблицы ip для разрешения соединений на порту:
iptables -A INPUT -i eth0 -p tcp -m tcp --dport 3306 -j ACCEPT
- не рекомендовал бы это для производственной среды, но если ваши iptables не настроены должным образом, добавление правил все еще не может решить проблему. В этом случае следует сделать следующее:
service iptables stopнадеюсь, что это помогает.
Если ваш серверный процесс MySQL прослушивает 127.0.0.1 или:: 1 только тогда вы не сможете подключиться удаленно. Если у вас есть
bind-addressнастройка в/etc/my.cnfэто может быть источником проблемы.вам также придется добавить привилегии для не -
localhostпользователей, а также.
пожалуйста, выполните указанные ниже шаги для того, чтобы установить подстановочный знак удаленного доступа для пользователя MySQL.
(1) Откройте cmd.
(2) Перейдите к пути C:\Program Files\MySQL\MySQL Server 5.X\bin и выполнить следующую команду.
mysql-u root-p
(3) Введите пароль root.
(4) выполните следующую команду для предоставления разрешения.
ПРЕДОСТАВИТЬ ВСЕ ПРИВИЛЕГИИ НА . К 'USERNAME' @ ' IP ' ИДЕНТИФИЦИРОВАН 'Пароль';
имя пользователя: имя пользователя, которое вы хотите подключить к серверу MySQL.
IP: публичный IP-адрес, с которого вы хотите разрешить доступ к MySQL сервер.
пароль: пароль используемого имени пользователя.
IP можно заменить на%, чтобы разрешить пользователю подключаться с любого IP адрес.
(5) Очистите previleges, выполнив команду и выход.
FLUSH ПРИВИЛЕГИИ;
выход;
если вы установили MySQL из
brewОн действительно слушает только на локальном интерфейсе по умолчанию. Чтобы исправить это, вам нужно отредактировать/usr/local/etc/my.cnf, иbind-addressС127.0.0.1до*.затем запустите
brew services restart mysql.
для кого это нужно, проверьте брандмауэр порт 3306 открыт тоже, если ваша служба брандмауэра работает.
Просто F. Y. I Я вытащил мои волосы с этой проблемой в течение нескольких часов.. наконец я позвонил своему хостинг-провайдеру и обнаружил, что в моем случае с помощью облачного сервера, который в панели управления для 1and1 у них есть вторичный брандмауэр, который вы должны клонировать и добавить порт 3306. После того, как добавил Я получил прямо в..
и для людей OS X там имейте в виду, что параметр bind-address обычно устанавливается в списке launchd plist, а не в my.ini-файл. Так что в моем случае, я убрал
<string>--bind-address=127.0.0.1</string>с/Library/LaunchDaemons/homebrew.mxcl.mariadb.plist.
этот блог Как настроить сервер MySQL в локальной сети будет полезно при настройке
MySQLс нуля
если
mysqldесть персонализация адрес установить петлевой / локальный адрес (например127.0.0.1), сервер не будет доступен с удаленных хостов, потому что интерфейс обратной связи не может быть достигнут с любого удаленного хоста.установите этот параметр в
0.0.0.0(::для IPv4+6) принимать соединения с любого хоста или с другим внешним доступным адресом, если вы хотите разрешить соединения только на одном интерфейсе.

Comments