Я пытаюсь соединиться со своей mysql базой данных по удаленному серверу (через ssh) посредством команды:
mysql -u me -h mydomain.com -p
Но это перестало работать с ОШИБКОЙ 1045 (28000): Доступ запрещен для пользователя.. ошибка
В то время как
mysql -u me -h localhost -p
Работы
Теперь это не просто, потому что у меня нет полномочий установки, потому что полномочия к этой базе данных установлены для % или любого хоста ко мне пользователь.
Это доказано тем, что я могу соединиться правильно с моей локальной машины на сервер, с помощью того же пользователя. т.е. выполнение следующей команды от моих локальных работ машины:
mysql -u me -h mydomain.com -p
Так мой вопрос, почему это происходит и как я могу зафиксировать его? Почему я не могу соединиться со своим mysql сервером с моего сервера, когда я использую доменное имя вместо localhost, даже при том, что полномочия являются установкой для принятия соединений от какого-либо хоста.
Это происходит из-за того, как MySQL обрабатывает предоставление разрешений.
Когда вы подключаетесь с удаленного хоста (или с локального хоста через внешний IP-адрес), он будет соответствовать записи me @%
(, если нет специального разрешения для конкретный хост, который вы используете!). Но когда вы подключаетесь через интерфейс обратной петли (IP-адрес localhost) или сокет, он будет использовать грант me @ localhost
. Итак, у вас должно быть две ПРИВИЛЕГИИ ГРАНТА
; один для me @ localhost
и один для me @%
.