
我不得不將我的 Linode 重建為 Debian 9,因為我無法從我之前的問題中獲取原始程式碼來工作。
我用了本設定指南重新配置並重新安裝所有內容到新的 Debian 發行版。
但是,在執行此操作之前,我使用以下命令進行了備份
$ mysqldump --add-drop-table -h vps.sensation-experience.com -u wordpress -p wordpressDB > backup.sql
並將其保存到我的外部硬碟上。
設定 MariaDB 並執行安全腳本來建立 root 密碼、更改主機名稱和主機檔案、拒絕來自本機主機的存取後,我嘗試執行此行:
mysql --user wordpress --password < backup.sql
請注意,我已經位於備份所在的目錄中。我得到的錯誤是
ERROR 1698 (28000): Access denied for user 'wordpress'@'localhost'
有沒有辦法解決這個問題,或者我應該建立一個新資料庫並只使用我之前匯出並匯入的 XML?
答案1
授予備份使用者存取權限,如下所示,
MariaDB [(none)]> GRANT LOCK TABLES, SELECT ON *.* TO 'wordpress'@'localhost' IDENTIFIED BY 'your-password';
MariaDB [(none)]> flush privileges;
然後再試一次。
答案2
wordpress
您可能在 MariaDB 中還沒有使用者。您可能需要比您的wordpress
使用者恢復備份更廣泛的權限。我建議以資料庫使用者身分恢復root
。在 Debian 系統上,登入 MariaDB 最簡單的方法是以使用者身分登入系統時不帶任何參數來root
執行:mysql
root
root@tux:~$ echo "CREATE DATABASE wordpressDB;" | mysql
root@tux:~$ mysql < backup.sql
注意:做不是指定localhost
您想要透過 Debian 系統上預設設定的 unix 網域套接字進行連線。無需指定使用者名稱/密碼,因為有權存取 unix 網域套接字的每個人(預設應該只有系統使用者root
)自動擁有root
MariaDB 中的權限。