Mysql

從 SQLite 遷移到 MySQL/MariaDB 的 Owncloud 中的數據庫密碼錯誤

  • November 17, 2014

在 Fedora 系統中,我需要將 Owncloud 的 SQLite 數據庫轉換為 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 Now,從Owncloud 7.0 admin manual輸入

# 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 |
+---------------+-----------+

您需要從 mysql 數據庫中的授權表中重新載入權限。你可以這樣做:

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

你可以嘗試指定 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 套接字文件連接到本地伺服器。

引用自:https://serverfault.com/questions/643766