Я установил MySQL Community Edition 5.5 на свой локальный компьютер, и я хочу разрешить удаленные подключения, чтобы я мог подключаться из внешнего источника.
Как я могу это сделать?
Я установил MySQL Community Edition 5.5 на свой локальный компьютер, и я хочу разрешить удаленные подключения, чтобы я мог подключаться из внешнего источника.
Как я могу это сделать?
Это разрешено по умолчанию в 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), чтобы изменения вступили в силу.
После выполнения всего выше, я все еще не мог войти в систему как root удаленно, но Telnetting to port 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, что заставило меня понять, что порт 3306 mysql не принимает соединения.
Вот небольшая заметка о том, как я проверил и разрешил эту проблему.
telnet (mysql server ip) [portNo]
iptables -A INPUT -i eth0 -p tcp -m tcp --dport 3306 -j ACCEPT
service iptables stop
Надеюсь, что это поможет.
Пожалуйста, следуйте приведенным ниже инструкциям, чтобы установить удаленный доступ с подстановочными символами для MySQL User.
(1) Открыть cmd.
(2) перейдите к пути C:\Program Files\MySQL\MySQL Server 5.X\bin и выполните эту команду.
mysql -u root -p
(3) Введите пароль пользователя root.
(4) Выполните следующую команду, чтобы предоставить разрешение.
ПРЕДОСТАВЛЯЙТЕ ВСЕ ПРИВИЛЕГИИ НА *. * ИМЯ "ИМЯ ПОЛЬЗОВАТЕЛЯ" @"IP", ОПРЕДЕЛЯЕМЫМ ПАРОЛЕМ;
USERNAME: имя пользователя, которое вы хотите подключить к серверу MySQL.
IP: публичный IP-адрес, с которого вы хотите разрешить доступ к серверу MySQL.
ПАРОЛЬ: пароль от имени пользователя.
IP можно заменить на%, чтобы позволить пользователю подключаться с любого IP-адреса.
(5) Сбросьте предпочтения с помощью следующей команды и выйдите.
ПРИВИЛЕГИИ ПРОМЫВКИ;
выход; или \ q
Если вы установили MySQL из brew, он действительно выполняет только прослушивание по локальному интерфейсу по умолчанию. Чтобы исправить это, вам нужно отредактировать /usr/local/etc/my.cnf и изменить bind-address с 127.0.0.1 на *.
Затем запустите brew services restart mysql.
Если ваш серверный процесс MySQL прослушивает 127.0.0.1 или:: 1, то вы не сможете подключиться удаленно. Если у вас есть параметр bind-address в /etc/my.cnf, это может быть источником проблемы.
Вам также придется добавлять привилегии для пользователя не localhost.
Для кого это необходимо, проверьте, что порт Firewall 3306 также открыт, если служба брандмауэра запущена.
Просто F.Y.I Я вытаскивал волосы с этой проблемой часами. Наконец, я позвонил своему провайдеру хостинга и обнаружил, что в моем случае с использованием облачного сервера, который в панели управления для 1 и 1 у них есть дополнительный брандмауэр, который вы должны клонировать и добавить порт 3306. После добавления я получил прямо в.
Этот блог Как настроить сервер MySQL в локальной сети будет полезен при настройке MySQL с нуля
А для пользователей OS X следует знать, что параметр bind-address обычно задается в плагине запуска, а не в файле my.ini. Поэтому в моем случае я удалил <string>--bind-address=127.0.0.1</string> из /Library/LaunchDaemons/homebrew.mxcl.mariadb.plist.
Если mysqld имеет адрес привязки, установленный на петлевой/локальный адрес (например, 127.0.0.1), сервер не будет доступен с удаленных хостов, потому что петлевой интерфейс не может быть достигнут с любого удаленного хоста.
Задайте для этого параметра значение 0.0.0.0 (:: для IPv4 + 6), чтобы принимать подключения от любого хоста, или к другому внешне достижимому адресу, если вы хотите разрешить подключения только на одном интерфейсе.
иногда нужно использовать имя компьютера на Windows
первый шаг) поместите в конфигурационный файл mysql:
mysqld.cnf SET bind-address = 0.0.0.0
(чтобы позволить recibe соединения через TCP/IP)
второй шаг) сделать пользователя в mysql, таблицах пользователей, с именем компьютера в Windows, не IP