
Я новичок в MySQL и хочу использовать удаленный вход. Я следовал этомукучапроцесс, но команда не выводит на экран ничего из того, что указано по этой ссылке
$ lsof -i -P | grep :3306
$
это выход.
Что я уже сделал: Я отредактировал файл./etc/mysql/my.cnfчтобы внести изменения и выглядит так
skip-external-locking
#
# Instead of skip-networking the default is now to listen only on
# localhost which is more compatible and is not less secure.
bind-address = 0.0.0.0
Что я хочу в основном, я хочу удаленный вход. Но я не могу этого сделать. Я запускаю следующую команду на своем терминале
$ mysql -h 127.6.110.2 -u adminTwz5PWn -p
$ enter password:
ERROR 1045 (28000): Access denied for user 'adminTwz5PWn'@'localhost' (using password: YES)
Для получения необходимой информации я взял это имя пользователя и пароль от Openshift Меня беспокоит, как @'localhost' вписывается в общую картину, если я указываю IP-адрес хоста в команде
У меня есть пользователь, который входит в MySQL следующим образом
+------------------+---------------+
| user | host |
+------------------+---------------+
| root | % |
| root | 127.0.0.1 |
| adminvKbP1kf | 127.3.138.130 |
| adminTwz5PWn | 127.6.110.2 |
| root | ::1 |
| user | hostname |
| debian-sys-maint | localhost |
| phpmyadmin | localhost |
| phpmyadmin_suraj | localhost |
| root | localhost |
| suraj | localhost |
+------------------+---------------+
Пожалуйста, поправьте меня, если я где-то ошибаюсь. И какие шаги нужно предпринять, чтобы это удалось.
решение1
Весь диапазон IP 127.0.0.0/8
зарезервирован для loopback. Хотя люди обычно используют только 127.0.0.1
, IP 127.6.110.2
также является loopback и, таким образом, вы получаете свою "ошибку localhost".
На вашем сервере MySQL запустите ip a
или , ifconfig
чтобы узнать ваш публичный IP-адрес, а затем подключитесь к этому адресу.
Вам также понадобится пользователь mysql, которому разрешено подключаться с удаленной машины. Запустите mysql
на своем сервере, чтобы открыть консоль mysql, и выполните один из этих запросов (измените USERNAME и PASSWORD на свои учетные данные):
Чтобы разрешить удаленному пользователю подключаться только с определенного IP-адреса xxxx:
GRANT ALL PRIVILEGES ON *.* TO 'USERNAME'@'x.x.x.x' IDENTIFIED BY 'PASSWORD' WITH GRANT OPTION;
Чтобы разрешить удаленному пользователю подключаться из любой точки мира:
GRANT ALL PRIVILEGES ON *.* TO 'USERNAME'@'%' IDENTIFIED BY 'PASSWORD' WITH GRANT OPTION;
Чтобы убедиться, что эти запросы вступили в силу, запустите FLUSH PRIVILEGES;
then.