Mysql
從 SQLite 遷移到 MySQL/MariaDB 的 Owncloud 中的數據庫密碼錯誤
在 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 套接字文件連接到本地伺服器。