The mysql_upgrade client is now deprecated(mysql_upgrade客戶機現在已經棄用)


  • 登錄數據庫后執行以下命令
    mysql> show databases;

  • 報錯
    ERROR 1449 (HY000): The user specified as a definer ('mysql.infoschema'@'localhost') does not exist

  • 在網上找到的解決辦法
    mysql_upgrade -u root -p

  • 輸入后,顯示如下信息:

The mysql_upgrade client is now deprecated. The actions executed by the upgrade client are now done by the server.

To upgrade, please start the new MySQL binary with the older data directory. Repairing user tables is done automatically. Restart is not required after upgrade.

The upgrade process automatically starts on running a new MySQL binary with an older data directory. To avoid accidental upgrades, please use the --upgrade=NONE option with the MySQL binary. The option --upgrade=FORCE is also provided to run the server upgrade sequence on demand.

It may be possible that the server upgrade fails due to a number of reasons. In that case, the upgrade sequence will run again during the next MySQL server start. If the server upgrade fails repeatedly, the server can be started with the --upgrade=MINIMAL option to start the server without executing the upgrade sequence, thus allowing users to manually rectify the problem.

-----------------------------------------

mysql_upgrade客戶機現在已經棄用。升級客戶端現在執行的操作由服務器完成。
  
升級,請啟動新的MySQL二進制舊數據目錄。修復用戶表是自動完成的。升級后不需要重啟。
  
升級過程將自動啟動運行一個新的MySQL二進制和另外一個年紀大的數據目錄。為了避免意外升級,請使用MySQL二進制——升級=沒有選項。還提供了選項,升級=力運行服務器升級需求序列。
  
有可能服務器升級失敗由於很多原因。在這種情況下,升級序列將再次在接下來的MySQL服務器開始運行。如果服務器升級失敗多次,服務器可以啟動——升級=最小選項啟動服務器沒有執行升級順序,從而允許用戶手動糾正這個問題。

沒辦法,繼續查

得知

  • MySQL 8.0.16開始 mysql_upgrade 升級程序已經廢棄
一、官方為什么變更升級方式?

1. 升級速度更快

2. 升級更簡單

3. 安全性更好

4. 減少升級步驟,方便自動化

5. 不需要重啟 MySQL 6. 即插即用

 
二、新舊方式升級流程對比
在 MySQL 8.0.16 之前:



1. 關閉 MySQL,替換新的二進制 MySQL

2. 啟動 MySQL,讓服務器升級 DD(數據字典)表

3. 運行 mysql_upgrade,更新系統表和用戶表

4. 加載新的幫助表

5. 重啟 MySQL

從 MySQL 8.0.16 開始:



1. 關閉 MySQL,替換新的二進制 MySQL

2. 啟動 MySQL,升級 DD(數據字典)表和系統表、用戶表和幫助表

升級的時間和操作都會大幅度縮短,操作步驟也減少了很多,更方便了用戶。

 
三、關於 MySQL 8.0.16 的新的升級方式
看看該如何使用新的升級姿勢?

在 mysqld 額外添加了一個新的選項 --upgrade。可選值為 NONE,AUTO,MINIMAL,FORCE。

姿勢是這樣的:

/usr/local/mysql/bin/mysqld --upgrade=NONE

新的選項都代表什么?

**NONE:**不嘗試進行升級

**AUTO:**默認選項,MySQL 進行數據字典升級和服務升級

**MINIMAL:**僅升級數據字典

**FORCE:**強制升級,類似舊的 mysql_upgrade –force

 

MySQL 8.0.16 新的升級方式,總體來說分為2個步驟。

1. 升級數據字典(DD)

2. 服務器升級:升級 MySQL 系統表、升級用戶表、升級 sys 表、升級幫助更新表

可能出現的問題:

1. 升級數據字典:原子性操作。如果操作失敗,則根據目錄可以回滾回來。

2.升級系統表、用戶表:可以從備份還原中恢復。

個人建議,針對升級:

1. 使用新的版本,尤其是 MySQL 8.0 系列。每個版本都有新特性,還有bug的修復,定期小版本升級會使你的 MySQL 更加穩定。

2. 閱讀新版本的Release。 

3.最后,升級之前要做好備份,以便升級失敗回滾使用。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM