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