教你在 Debian 和 Ubuntu 上升级 MySQL
系统管理员的日常工作之一就是升级服务,为服务打上补丁包或升级一些花哨的功能。2013年初,最新的 MySQL 5.6发布,目标是提供更好的性能和扩展能力。如果你对此有点兴趣,倒是可以看看我写的这篇 如何在 Debian 和 Ubuntu 上升级 MySQL。
在这篇教程中,我会假设你已经通过 apt-get 安装了 MySQL。写这篇文章的时候,大部分 Linux 发行版上部署的都是 MySQL 5.5。这里我将向你们介绍如何从 MySQL 5.5升级到5.6。
步骤1:备份 MySQL 配置文件。
1 |
|
步骤2:把数据库导出到一个 .sql 文件,并且把数据存放路径下面的数据也备份起来。
1 |
|
注意:如果你为你的在线 MySQL 系统提供了持续备份,强烈建议你在执行上面步骤时使用单事务选项,或显式使用锁(以保证数据一致性 —— 译注),详见这个教程。
步骤3:停止 MySQL 服务
1 |
|
步骤4:卸载 MySQL 软件包
1 |
|
使用 apt-get 卸载时不要用 purge 选项,这会删除 MySQL 配置文件和其它一些以后要用到的数据。
步骤5: 安装 MySQL 依赖包(内核异步 IO 访问库),MySQL 5.5以及之后的版本都依赖它。
1 |
|
步骤6:从官网下载 Debian 版的 MySQL 软件包
32位系统:
1 |
|
64位系统:
1 |
|
步骤7:安装 MySQL 软件包
1 |
|
这个软件包会被安装在 /opt/mysql 目录下面。
步骤8:将 MySQL 命令所在的路径添加到系统环境变量 PATH 内。
Debian 上:
1 |
|
Ubuntu 或 Linux Mint 上:
1 |
|
步骤9:进入 MySQL 配置文件,修改下面两行配置。
1 |
|
basedir = /opt/mysql/server-5.6
lc-messages-dir = /opt/mysql/server-5.6/share
步骤10:设置启动脚本
复制 MySQL 启动脚本到 /etc/init.d 目录下,并且将脚本设置为开机启动,这样一来 MySQL 就能在系统启动的时候自动启动了。
1 |
|
步骤11:(仅限 Ubuntu) 编辑AppArmor配置
MySQL 的上个版本安装时会为 AppArmor 服务创建一个配置文件,这个文件在 MySQL 卸载后会保留在系统中,但是它与现在安装好的 MySQL 版本不兼容。你需要重新编辑下这个配置文件,然后 MySQL 服务才能正常启动。
首先,建一个软链接。
1 |
|
然后编辑 MySQL AppArmor 配置文件。
1 |
|
/opt/mysql/server-5.6/lib/plugin/ r,
/opt/mysql/server-5.6/lib/plugin/.so mr,
/opt/mysql/server-5.6/share/** r,
最后重启 AppArmor 服务。
1 |
|
步骤12:(还是仅限 Ubuntu)删除上个 MySQL 版本留下的自启动配置文件。
这个版本的 MySQL 使用 SysVinit (就是 /etc/init.d/mysql)来代替。
1 |
|
步骤13:启动 MySQL 服务。
1 |
|
步骤14:恢复 MySQL 数据库。
1 |
|
步骤15:最后,升级 MySQL 系统表。
1 |
|
解决 MySQL 升级过程中产生的问题
如果 Ubuntu 下的 MySQL 服务启动时出现如下错误,就是由于旧版 MySQL AppArmor 配置文件禁止其运行而引起。你需要参考步骤11来更新 AppArmor 的配置文件。
1 |
|
via: http://xmodulo.com/2013/12/upgrade-mysql-server-debian-ubuntu.html