Mysql
MySQL:從舊版本導入數據庫
我正在將所有內容從非常舊的生產伺服器轉移到新伺服器。我現在正在嘗試將 MySQL 數據庫複製到新系統。順便說一句,我對 MySQL 的了解非常有限。首先是一些版本資訊:
老伺服器:
$ mysql -V mysql Ver 14.12 Distrib 5.0.32, for pc-linux-gnu (i486) using readline 5.2
新伺服器:
$ mysql -V mysql Ver 15.1 Distrib 10.3.22-MariaDB, for debian-linux-gnu (x86_64) using readline 5.2
在舊伺服器上,我首先轉儲了所有數據庫:
mysqldump -u root -p --all-databases > all_databases.sql
然後在新伺服器上,我導入了數據庫:
mysql -u root -p < all_databases.sql
但是現在,當我嘗試執行 mysql 時,出現錯誤:
$ mysql ERROR 1275 (HY000): Server is running in --secure-auth mode, but 'root'@'localhost' has a password in the old format; please change the password to the new format
所以顯然它也覆蓋了使用者數據庫(我真的不知道會發生這種情況,但是,你知道,MySQL 知識有限……)。
那麼我該如何解決這個問題呢?
寫出@Akina 的建議:
- 編輯您的 MariaDB 伺服器選項文件,我認為它在
/etc/mysql/my.cnf
Debian 上。在該[mysqld]
部分中,添加以下行:secure_auth=OFF
- 重啟 MariaDB 伺服器:(
systemctl restart mariadb
假設你有 systemd)- 您現在應該能夠使用
mysql
客戶端登錄並執行以下內容:SET PASSWORD = password('your_new_password');
或者,從命令行執行mysql_secure_installation
。- 再次編輯 MariaDB 伺服器選項文件並刪除之前插入的行,然後重新啟動 MariaDB 伺服器,希望一切正常。