Доработка вновь созданной базы данных MySQL 8.0 на Vesta

Использую панель управления 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

[1] https://stackoverflow.com/a/50197630

Отправить ответ

avatar
  Subscribe  
Сообщать по почте