MySQL 升級方法指南大全
更新時間:2008年01月26日 18:58:58 作者:
通常,從一個發(fā)布版本升級到另一個版本時,我們建議按照順序來升級版本。例如,想要升級 MySQL 3.23 時,先升級到 MySQL 4.0,而不是直接升級到 MySQL 4.1 或 MySQL 5.0。
升級授權表之前一定要備份好 mysql 數據庫,以備升級失敗時使用舊的授權表。
在unix或類unix系統(tǒng)中,運行 mysql_fix_privilege_tables 腳本來升級授權表:
shell> mysql_fix_privilege_tables 必須在 mysqld 運行著的時候執(zhí)行這個腳本,它嘗試使用 root 帳號來連接服務器;因此,當 root 需要密碼時,用如下方式來指定密碼:
shell> mysql_fix_privilege_tables --password=root_password 在 MySQL 4.1之前,則是用如下形式來指定密碼:
shell> mysql_fix_privilege_tables root_password
接下來 mysql_fix_privilege_tables 腳本會升級授權表,在這個過程中可能會有一些 Duplicate column name 警告信息,無需理會它們。待它運行完之后,重啟一下服務器即可。
在windows平臺上,授權表想要升級到4.0.15并不容易。從4.0.15開始,發(fā)行版中包含一個sql腳本:mysql_fix_privilege_tables.sql,用 mysql 客戶端運行它來升級授權表,運行類似如下命令:
C:\> C:\mysql\bin\mysql -u root -p mysql
mysql> SOURCE C:/mysql/scripts/mysql_fix_privilege_tables.sql
把上面提到的目錄改成真實的目錄。
3、) 升級同步
請查看我翻譯的文檔"6.6 升級同步"
4、) mysql_update MySQL升級時檢查數據表
每次升級的時候都必須運行 mysql_upgrade 腳本。它檢查了當前版本的MySQL下的所有數據庫表的不兼容性,就會檢查這些表;并且發(fā)現有問題時,也會修復這些表。mysql_update 同時升級了系統(tǒng)表,因此可以兼容新的權限機制并且使用新增的權限。
由于 mysql_update 會把檢查過和修復過的表都標記上當前的MySQL版本號,因而保證了下一次在同一個MySQL版本下運行這個腳本時,都會再次報告哪些表需要修復或檢查。
它還會把MySQL的版本號記錄在數據文件目錄下的一個文件中:mysql_upgrade.info。這個文件用于標識當前發(fā)布版本檢查表時哪些表可以略過,檢查時想要忽略這個文件,只需附加上 --force 選項。
為了能檢查和修復數據表,并且升級系統(tǒng)表,mysql_update 執(zhí)行了一下命令:
mysqlcheck --check-upgrade --all-databases --auto-repair
mysql_fix_privilege_tables
mysql_update 目前只支持類unix平臺;在windows下,需要手工執(zhí)行 mysqlcheck 命令,升級授權表請看附錄"升級授權表"。
執(zhí)行 mysql_update 時,MySQL服務器必須運行著,它有以下幾個參數:
--help
顯示幫助信息并且退出
--basedir=path
設定MySQL的安裝路徑
--datadir=path
設定MySQL的數據文件路徑
--force
告訴 mysql_update,在檢查時忽略是否存在 mysql_upgrade.info 文件,強行檢查該版本的MySQL數據表,不管是否已經檢查過了
--user=user_name, -u user_name
連接到MySQL的用戶名,默認是 root
--verbose
冗余模式。發(fā)生問題時打印出更多的信息
其他的選項諸如 --password[=password] 是要傳遞給 mysqlcheck 和 mysql_fix_privilege_tables 腳本的,并不是必須的。
相關文章
MySQL之Field‘***’doesn’t have a default value錯誤解決辦法
這篇文章主要介紹了MySQL之Field‘***’doesn’t have a default value錯誤解決辦法,需要的朋友可以參考下2015-04-04Mysql 的存儲引擎,myisam和innodb的區(qū)別
這篇文章主要介紹了Mysql 的存儲引擎,myisam和innodb的區(qū)別,需要的朋友可以參考下2014-12-12Linux中使用mysqladmin extended-status配合Linux命令查看MySQL運行狀態(tài)
這篇文章主要介紹了Linux中使用mysqladmin extended-status配合Linux命令查看MySQL運行狀態(tài),需要的朋友可以參考下2014-08-08