Mysql

MySQL:從舊版本導入數據庫

  • March 15, 2020

我正在將所有內容從非常舊的生產伺服器轉移到新伺服器。我現在正在嘗試將 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 的建議:

  1. 編輯您的 MariaDB 伺服器選項文件,我認為它在/etc/mysql/my.cnfDebian 上。在該[mysqld]部分中,添加以下行:secure_auth=OFF
  2. 重啟 MariaDB 伺服器:(systemctl restart mariadb假設你有 systemd)
  3. 您現在應該能夠使用mysql客戶端登錄並執行以下內容:SET PASSWORD = password('your_new_password');或者,從命令行執行mysql_secure_installation
  4. 再次編輯 MariaDB 伺服器選項文件並刪除之前插入的行,然後重新啟動 MariaDB 伺服器,希望一切正常。

引用自:https://dba.stackexchange.com/questions/261968