Назад | Перейти на главную страницу

Ошибка пароля базы данных в Owncloud при переходе с SQLite на MySQL / MariaDB

В системе Fedora мне нужно преобразовать базу данных SQLite из Owncloud в базу данных MySQL / MariaDB. Я начал установку MySQL:

# systemctl enable mysqld
# systemctl start mysqld
$ mysql_secure_installation

затем

$ mysql -u root -p
  CREATE USER 'owncloud_user'@'localhost' IDENTIFIED BY '12345';
  CREATE DATABASE IF NOT EXISTS owncloud;
  GRANT ALL PRIVILEGES ON owncloud.* TO 'owncloud_user'@'localhost' IDENTIFIED BY '12345';

и предположим, что пароль owncloud_user 12345 Теперь из Owncloud 7.0 руководство администратора, вход

# php occ db:convert-type --all-apps mysql owncloud_user 127.0.0.1 owncloud

Меня попросили:

What is the database password?

Пароль базы данных? Я создал пароль только для пользователя owncloud_user, поэтому ввел пароль 12345 но я получаю ошибку

[PDOException]                                                                                   
SQLSTATE[HY000] [1045] Access denied for user 'owncloud_user'@'localhost' (using password: YES)

Дополнительная информация:

на машине включен IPv6

MariaDB [(none)]> SELECT user, host FROM mysql.user;
+---------------+-----------+                                                                                                                                                             
| user          | host      |                                                                                                                                                             
+---------------+-----------+
| root          | 127.0.0.1 |
| root          | ::1       |
| owncloud_user | localhost |
| root          | localhost |
+---------------+-----------+

Можете ли вы попробовать указать 127.0.0.1 и / или :: 1, как это

$ mysql -u root -p
  CREATE USER 'owncloud_user'@'127.0.0.1' IDENTIFIED BY '12345';
  CREATE USER 'owncloud_user'@'::1' IDENTIFIED BY '12345';
  CREATE DATABASE IF NOT EXISTS owncloud;
  GRANT ALL PRIVILEGES ON owncloud.* TO 'owncloud_user'@'127.0.0.1';
  GRANT ALL PRIVILEGES ON owncloud.* TO 'owncloud_user'@'::1';

Причина в следующем: http://dev.mysql.com/doc/refman/5.0/en/connecting.html

В Unix программы MySQL обрабатывают имя хоста localhost особым образом, что, вероятно, отличается от ожидаемого по сравнению с другими сетевыми программами. Для подключений к localhost программы MySQL пытаются подключиться к локальному серверу с помощью файла сокета Unix.

Вам необходимо перезагрузить привилегии из таблиц привилегий в базе данных mysql. Вы можете сделать это с помощью:

$ mysql -u root -p
  FLUSH PRIVILEGES;
  EXIT;