Mysql
將舊 mysql 數據庫轉儲導入 MariaDB docker 容器失敗:表“使用者”已存在
我正在嘗試將較舊的(〜版本 5)伺服器導入 MariaDB docker 容器。
我使用 mysqldump 命令(使用 –all-databases)創建了一個轉儲,當我嘗試導入它時,我收到以下錯誤:
ERROR 1050 (42S01) at line 2071: Table 'user' already exists
我正在嘗試使用標準命令導入一個全新的容器:
mysql -uroot -p < [sqldump].sql
當談到 SQL 時,我是一個新手,我想知道我是否遺漏了一些明顯的東西,或者是否存在一些真正的不兼容。
我非常感謝您的建議。
謝謝!
聽起來您的轉儲腳本想要覆蓋包含使用者和權限資訊的系統“mysql”數據庫。如果這確實是您想要做的,您可以使用該選項
mysqldump
再次執行,然後在導入之後執行。不過我不建議這樣做,尤其是在數據庫執行不同版本的情況下。--add-drop-database``FLUSH PRIVILEGES
更好的選擇是通過將名稱傳遞給參數來明確選擇要導出的數據庫
--databases
,不包括“mysql”、“information_schema”和“performance_schema”等數據庫。然後,您將根據需要向新導入的數據庫授予權限。另一個快速的選擇是在文本編輯器中編輯現有的轉儲文件,然後取出想要創建“mysql”表的部分(包括“user”和其他)。