Mac OSX 下的數據庫升級最麻煩的不過權限的問題.本文的MySQL的安裝方式爲OSX下DMG磁盤鏡像的安裝方式, Mac Ports/Homebrew 的方式大同小異. mysql
從 5.6.17 升級到 5.7.18sql
ls -al /usr/local |grep mysql lrwxr-xr-x 1 root wheel 30B 5 21 00:39 mysql@ -> mysql-5.6.17-osx10.7-x86_64 drwxr-xr-x 5 root wheel 170B 5 21 00:39 mysql-5.6.17-osx10.7-x86_64/ drwxr-xr-x 13 root wheel 442B 5 21 00:46 mysql-5.7.18-macos10.12-x86_64/
這個過程會刪除 mysql-5.6.17-osx10.7-x86_64
下的除data
目錄之外的文件. 爲了不數據丟失, 最好先把data
備份到其餘位置. 新PKG包安裝完成後 mysql@
軟鏈接的目標會指向新版本.數據庫
ls -al /usr/local |grep mysql lrwxr-xr-x 1 root wheel 30B 5 21 00:39 mysql@ -> mysql-5.7.18-macos10.12-x86_64 drwxr-xr-x 5 root wheel 170B 5 21 00:39 mysql-5.6.17-osx10.7-x86_64/ drwxr-xr-x 13 root wheel 442B 5 21 00:46 mysql-5.7.18-macos10.12-x86_64/
# 進入新版本目錄 cd /usr/local/mysql-5.7.18-macos10.12-x86_64 # 刪除新版本的數據目錄 sudo rm -rf ./data # 複製老版本的數據目錄到新版本目錄 sudo cp -R ../mysql-5.6.17-osx10.7-x86_64/data ./ # 修復目錄權限 sudo chown -R _mysql ./data # 啓動MySQL # 必定要加 --skip-grant-tables 關閉權限檢查 sudo ./bin/mysqld_safe --skip-grant-tables # 執行升級腳本 # 升級過程有哦一大堆升級信息輸出, 最關鍵的是: Upgrade process completed successfully. 看到這個就說明升級成功了. sudo ./bin/mysql_upgrade # 中止經過 mysqld_safe 啓動的服務器, 正常啓動服務器 sudo ./support-files/mysql.server stop sudo ./support-files/mysql.server start