Использую панель управления Vesta вместе с MySQL 8.0 вместо 5.х. В Vesta создаю базу данных, но потом с ней не невозможно работать. Нужно:
1) вручную создать пользователя
2) дать ему права на базу данных
Попадаем в шелл mysql:
mysql -u root -p mysql
Пароль в файле /root/.my.cnf
Обратите внимание, что имя_БД
нужно заменить на имя базы данных, например, admin_default
, пароль
на пароль от пользователя базы данных, указанный при ее создании в Vesta. имя_Пользователя
заменить на имя пользователя, указанного при создании БД (часто совпадает с именем базы данных).
mysql> CREATE USER 'имя_БД'@'localhost' IDENTIFIED WITH mysql_native_password BY 'пароль'; ERROR 2006 (HY000): MySQL server has gone away No connection. Trying to reconnect... Connection id: 507 Current database: mysql Query OK, 0 rows affected (0,42 sec)
mysql> GRANT ALL PRIVILEGES ON имя_ДБ.* TO 'имя_Пользователя'@'localhost'; Query OK, 0 rows affected (0,18 sec)
Необходимость такого ручного вмешательства обусловлена изменениями в MySQL 8.0, к котором еще не адаптированы скрипты Vesta: GRANT ALL PRIVILEGE
в 5.х создавало пользователя, а теперь нет. Пример ошибки:
mysql> GRANT ALL PRIVILEGES ON имя_БД.* TO 'имя_Пользователя'@'localhost' identified by 'пароль'; ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'identified by 'b40ZnAnvTl'' at line 1
Сообщено разработчикам Vesta: https://bugs.vestacp.com/issues/701
Отправить ответ