У меня есть проект Laravel, который отлично работает на моей локальной машине, но не может подключиться к базе данных на другом сервере Linux.
Ошибка, которую я получаю:
SQLSTATE[HY000] [1045] Access denied for user 'cpanel1_thewatcher'@'localhost' (using password: YES)
Это настройки, которые я использую:
DB_CONNECTION=mysql
DB_HOST=localhost
DB_PORT=3306
DB_DATABASE=dbnamehere
DB_USERNAME=cpanel1_thewatcher
DB_PASSWORD=passwordhere
Я проверил, чтобы cpanel1_thewatcher
имел ALL PRIVILEGES
в этой базе данных и что пароль правильный.
Это на VPS, где у меня есть root-доступ, и у него есть два IP-адреса, посвященных этому. Главный IP-адрес мы будем называть xxx.xxx.xx.165, а второй - xxx.xxx.xx.166. Если я изменил настройки выше, чтобы установить DB_HOST
на xxx.xxx.xx.166, я получаю другую ошибку:
SQLSTATE[HY000] [1130] Host 'xxx.xxx.xx.166' is not allowed to connect to this MariaDB server
Если я установил DB_HOST
в xxx.xxx.xx.165, то я получу еще одну ошибку:
SQLSTATE[HY000] [1045] Access denied for user 'cpanel1_thewatcher'@'server1.domain.com'
Если я установил DB_HOST
на DB_HOST
(основной домен на сервере), я получаю ту же ошибку, которую я получаю с DB_HOST = xxx.xxx.xx.166.
Я изучил таблицу mysql.user
на сервере и нашел следующее:
+-------------------+----------------------+
| User | Host |
+-------------------+----------------------+
| root | 127.0.0.1 |
| cpanel1 | xxx.xxx.xx.165 |
| cpanel1_thewatcher | xxx.xxx.xx.165 |
| root | ::1 |
| cpanel1 | localhost |
| cpanel1_thewatcher | localhost |
| nagios | localhost |
| root | localhost |
| cpanel1 | server1.domain.com |
| cpanel1_thewatcher | server1.domain.com |
| root | server1.domain.com |
+-------------------+----------------------+
cpanel1
является именем пользователя единственной учетной записи cPanel на сервере. Я попытался создать запись в таблице выше, где пользователь cpanel1_thewatcher
а хост - %
но никакого эффекта. Я также попытался установить DB_USERNAME
только на thewatcher
но ничего не изменилось в сообщениях об ошибках.
Я видел некоторые вопросы о SO, ссылаясь на второе сообщение об ошибке, указанное мной, но мне не удалось найти файл конфигурации MariaDB где-нибудь на моем сервере, как это было предложено некоторыми ответами.
Выполнение GRANT ALL PRIVILEGES ON dbnamehere.* TO 'cpanel1_thewatcher'@'localhost';
дает
Query OK, 0 rows affected (0.00 sec)
Может ли кто-нибудь сказать мне, что делать, меня путают с двумя IP-адресами и тремя различными сообщениями об ошибках здесь, и не уверен, что еще попробовать. Я хотел бы устранить любые проблемы на моем конце, прежде чем прибегать к контакту с хостинговой компанией и ждать недели, чтобы они ее разрешили.
Для подключения к удаленной базе данных необходимо выполнить следующие действия:
На сервере базы данных выполните следующую команду на консоли
mariadb
:
CREATE USER 'cpanel1_thewatcher'@'xxx.xxx.xx.166';
С последующим:
GRANT ALL PRIVILEGES ON dbnamehere.* TO 'cpanel1_thewatcher'@'xxx.xxx.xx.166';
FLUSH PRIVILEGES;
Где
xxx.xxx.xx.166
- этоip
машины, которую вы пытаетесь подключить (где живет ваш проектlaravel
)