В системе 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;