Я установил MySQL Community Edition 5.5 на свой локальный компьютер, и я хочу разрешить удаленные подключения, чтобы я мог подключаться из внешнего источника.Как разрешить удаленное подключение к mysql
Как я могу это сделать?
Я установил MySQL Community Edition 5.5 на свой локальный компьютер, и я хочу разрешить удаленные подключения, чтобы я мог подключаться из внешнего источника.Как разрешить удаленное подключение к mysql
Как я могу это сделать?
Это разрешено по умолчанию для 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.conf.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) для того, чтобы изменения вступили в силу.
Я сделал это (предоставил привилегии), но до сих пор не могу подключиться. и я использую windows os Я не могу найти my.cnf – Leo
Обновлен ответ, чтобы отразить расположение файла my.cnf в Windows. – mjuarez
Итак, я добавил binnd-address = 127.0.0.1 в конце файла, и я попытался подключиться с помощью navicat от внешнего хоста, и я получаю ошибку 10060. – Leo
Если ваш серверный процесс MySQL прослушивает 127.0.0.1 или :: 1, то вы не сможете подключиться удаленно. Если у вас есть bind-address
в /etc/my.cnf
, это может быть источником проблемы.
Вам также нужно будет добавить привилегии для пользователя не localhost
.
Странно, как ваш сервер мог «прослушивать» другой IP-адрес помимо «127.0.0.1'? – Pacerier
@Pacerier 127.0.0.1 привязан только к интерфейсу loopback. Внешние соединения не будут работать. Система часто будет иметь несколько сетевых интерфейсов, каждая из которых должна быть привязана к определенному адресу, или вы можете использовать адрес 0.0.0.0 для привязки. – tadman
В моем случае я пытался подключиться к удаленному серверу mysql на основе ОС. После прохождения большого количества решений (предоставление всех привилегий, удаление привязок ip, создание сетей) проблема все еще не решена.
Как оказалось, при просмотре различных решений я столкнулся с iptables, что заставило меня понять, что порт 3306 mysql не принимает соединения.
Вот небольшая заметка о том, как я проверил и разрешил эту проблему.
telnet (mysql server ip) [portNo]
iptables -A INPUT -i eth0 -p tcp -m tcp --dport 3306 -j ACCEPT
service iptables stop
Надеется, что это помогает.
, вы только что сохранили мою задницу – JafarAlali92
После выполнения всех вышеперечисленных я до сих пор не смог войти в систему как root
удаленно, но Telnetting в порт 3306
подтвердил, что MySQL
принимает соединения.
Я начал смотреть на пользователей в MySQL и заметил, что есть multiple root users с разными паролями.
select user, host, password from mysql.user;
Так MySQL
я set all the passwords for root снова, и я мог наконец войти удаленно root
.
use mysql;
update user set password=PASSWORD("NEWPASSWORD") where User='root';
flush privileges;
Это верно. Выполняя следующие шаги в других ответах, создается учетная запись пользователя с пустым паролем. Поэтому вам нужно добавить пароли для них. – chhantyal
Я провел пару часов после всех других советов, но только этот, наконец, работал. – luizs81
Удивительный ответ! простой для выполнения и исправления моей проблемы – RLaaa
Для кого это необходимо, проверьте, что порт 3306 межсетевого экрана также открыт, если служба брандмауэра запущена.
Just FYI Я вытащил волосы с этой проблемой часами. Наконец, я позвонил своему провайдеру хостинга и обнаружил, что в моем случае с использованием облачного сервера, который на панели управления для 1 и 1 у них есть дополнительный брандмауэр, который у вас есть клонировать и добавлять порт 3306. После добавления я получил прямо в.
Это звучит очень специфично для вашей ситуации. Я не бесконечный источник знаний о сети, но уверены ли вы, что это решение хорошо подходит к этой проблеме? –
У меня тоже была эта проблема. Общее с облачными серверами, –
И для людей OS X следует знать, что параметр bind-address обычно задается в плагине запуска, а не в файле my.ini. Поэтому в моем случае я удалил <string>--bind-address=127.0.0.1</string>
с /Library/LaunchDaemons/homebrew.mxcl.mariadb.plist
.
Альтернативное расположение файла plist: '~/Library/LaunchAgents' –
Если вы установили MySQL с brew
, он действительно выполняет только прослушивание по локальному интерфейсу по умолчанию. Чтобы исправить это, вам нужно отредактировать /usr/local/etc/my.cnf
и сменить команду bind-address
с 127.0.0.1
на номер *
.
Затем запустить brew services restart mysql
.
Просто замечание из моего опыта, вы можете найти файл конфигурации по этому пути /etc/mysql/mysql.conf.d/mysqld.cnf
.
(я борюсь за некоторое время, чтобы найти этот путь)
Этот блог How to setup a MySQL server on Local Area Network будет полезен в создании MySQL
с нуля
Пожалуйста, следуйте нижеуказанным шаги Симметричного для установки подстановочному удаленного доступа Пользователь MySQL.
(1) Открыть cmd.
(2) перейти к пути C: \ Program Files \ MySQL \ MySQL Server 5.X \ bin и выполнить эту команду.
MySQL -u -p корень
(3) Введите пароль суперпользователя.
(4) Для предоставления разрешения выполните следующую команду.
ГРАНТ ВСЕ ПРИВИЛЕГИИ НА . TO 'USERNAME' @ 'IP' ИДЕНТИФИЦИРОВАНО 'PASSWORD';
USERNAME: Имя пользователя, которое вы хотите подключиться к серверу MySQL.
IP: общедоступный IP-адрес, откуда вы хотите разрешить доступ к MySQL серверу.
PASSWORD: Пароль пользователя.
IP может быть заменен на%, чтобы пользователь мог подключиться с любого IP-адреса .
(5) Промыть прелюдии следующей командой и выходом.
FLUSH PRIVILEGES;
выход;
После этого у моего корня все еще есть доступ. Что я пропустил? – teapeng
возможно дубликат [Включить удаленное подключение к MySQL] (http://stackoverflow.com/questions/8380797/enable-remote-mysql-connection) – user
Не используйте форматирование кода для текста, который не является кодом. Не по теме. – EJP