教你在 Debian 和 Ubuntu 上升级 MySQL

本文涉及的产品
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 RDS MySQL,高可用系列 2核4GB
简介:

系统管理员的日常工作之一就是升级服务,为服务打上补丁包或升级一些花哨的功能。2013年初,最新的 MySQL 5.6发布,目标是提供更好的性能和扩展能力。如果你对此有点兴趣,倒是可以看看我写的这篇 如何在 Debian 和 Ubuntu 上升级 MySQL

在这篇教程中,我会假设你已经通过 apt-get 安装了 MySQL。写这篇文章的时候,大部分 Linux 发行版上部署的都是 MySQL 5.5。这里我将向你们介绍如何从 MySQL 5.5升级到5.6。

步骤1:备份 MySQL 配置文件。

$ sudo mkdir /backup
$ sudo tar cvfvz /backup/mysql_conf.tgz /etc/mysql

步骤2:把数据库导出到一个 .sql 文件,并且把数据存放路径下面的数据也备份起来。

$ sudo sh -c 'mysqldump -u root -p -A --events > /backup/backup_db.sql
$ sudo tar cvfvz /backup/mysql_data.tgz /var/lib/mysql

注意:如果你为你的在线 MySQL 系统提供了持续备份,强烈建议你在执行上面步骤时使用单事务选项,或显式使用锁(以保证数据一致性 —— 译注),详见这个教程

步骤3:停止 MySQL 服务

$ sudo service mysql stop

步骤4:卸载 MySQL 软件包

$ sudo apt-get remove mysql-server mysql-client mysql-common
$ sudo apt-get autoremove
$ sudo apt-get autoclean

使用 apt-get 卸载时不要用 purge 选项,这会删除 MySQL 配置文件和其它一些以后要用到的数据。

步骤5: 安装 MySQL 依赖包(内核异步 IO 访问库),MySQL 5.5以及之后的版本都依赖它。

$ sudo apt-get install libaio1

步骤6:从官网下载 Debian 版的 MySQL 软件包

32位系统:

$ wget http://dev.mysql.com/get/Downloads/MySQL-5.6/mysql-5.6.15-debian6.0-i686.deb

64位系统:

$ wget http://dev.mysql.com/get/Downloads/MySQL-5.6/mysql-5.6.15-debian6.0-x86_64.deb

步骤7:安装 MySQL 软件包

$ sudo dpkg -i mysql-5.6.15-debian6.0-*.deb

这个软件包会被安装在 /opt/mysql 目录下面。

步骤8:将 MySQL 命令所在的路径添加到系统环境变量 PATH 内。

Debian 上:

$ sudo sh -c 'echo "PATH=$PATH:/opt/mysql/server-5.6/bin" >> /etc/profile'
$ source /etc/profile

Ubuntu 或 Linux Mint 上:

$ sudo sh -c 'echo "PATH=${PATH}:/opt/mysql/server-5.6/bin" >> /etc/environment'
$ source /etc/environment

步骤9:进入 MySQL 配置文件,修改下面两行配置。

$ sudo vi /etc/mysql/my.cnf

-

basedir = /opt/mysql/server-5.6

lc-messages-dir = /opt/mysql/server-5.6/share

步骤10:设置启动脚本

复制 MySQL 启动脚本到 /etc/init.d 目录下,并且将脚本设置为开机启动,这样一来 MySQL 就能在系统启动的时候自动启动了。

$ sudo cp /opt/mysql/server-5.6/support-files/mysql.server /etc/init.d/mysql
$ sudo update-rc.d mysql defaults

步骤11:(仅限 Ubuntu) 编辑AppArmor配置

MySQL 的上个版本安装时会为 AppArmor 服务创建一个配置文件,这个文件在 MySQL 卸载后会保留在系统中,但是它与现在安装好的 MySQL 版本不兼容。你需要重新编辑下这个配置文件,然后 MySQL 服务才能正常启动。

首先,建一个软链接。

$ sudo ln -s /opt/mysql/server-5.6/bin/mysqld /usr/sbin/mysqld

然后编辑 MySQL AppArmor 配置文件。

$ sudo vi /etc/apparmor.d/usr.sbin.mysqld

/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 服务。

$ sudo service apparmor restart

步骤12:(还是仅限 Ubuntu)删除上个 MySQL 版本留下的自启动配置文件。

这个版本的 MySQL 使用 SysVinit (就是 /etc/init.d/mysql)来代替。

$ sudo rm /etc/init/mysql.conf

步骤13:启动 MySQL 服务。

$ sudo service mysql start

步骤14:恢复 MySQL 数据库。

$ sudo mysql -u root -p < /backup/backup_db.sql

步骤15:最后,升级 MySQL 系统表。

$ sudo /opt/mysql/server-5.6/bin/mysql_upgrade -v -u root -p

解决 MySQL 升级过程中产生的问题

如果 Ubuntu 下的 MySQL 服务启动时出现如下错误,就是由于旧版 MySQL AppArmor 配置文件禁止其运行而引起。你需要参考步骤11来更新 AppArmor 的配置文件。

Dec 20 19:57:48 ubuntu kernel: [ 5856.960592] type=1400 audit(1387598268.807:39): apparmor="STATUS" operation="profile_replace" name="/usr/sbin/mysqld" pid=25216 comm="apparmor_parser"

原文发布时间为:2014-01-14

本文来自云栖社区合作伙伴“Linux中国”

相关实践学习
如何在云端创建MySQL数据库
开始实验后,系统会自动创建一台自建MySQL的 源数据库 ECS 实例和一台 目标数据库 RDS。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助 &nbsp; &nbsp; 相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
相关文章
|
6天前
|
关系型数据库 MySQL Linux
升级到MySQL 8.4,MySQL启动报错:io_setup() failed with EAGAIN
当MySQL 8.4启动时报错“io_setup() failed with EAGAIN”时,通常是由于系统AIO资源不足所致。通过增加AIO上下文数量、调整MySQL配置、优化系统资源或升级内核版本,可以有效解决这一问题。上述解决方案详细且实用,能够帮助管理员快速定位并处理此类问题,确保数据库系统的正常运行。
41 9
|
27天前
|
Ubuntu
ubuntu和debian 的安装包dpkg管理命令对安装包进行安装,查询,卸载
Ubuntu dpkg 软件包管理命令概览:安装、卸载、查看和配置软件包。包括解决依赖、强制卸载、列出及过滤已安装包、查看包详情等操作。
55 10
|
1月前
|
Ubuntu Shell 开发工具
ubuntu/debian shell 脚本自动配置 gitea git 仓库
这是一个自动配置 Gitea Git 仓库的 Shell 脚本,支持 Ubuntu 20+ 和 Debian 12+ 系统。脚本会创建必要的目录、下载并安装 Gitea,创建 Gitea 用户和服务,确保 Gitea 在系统启动时自动运行。用户可以选择从官方或小绿叶技术博客下载安装包。
53 2
|
2月前
|
Ubuntu 关系型数据库 MySQL
ubuntu使用aliyun源+mysql删除有外键约束的数据+查看特定目录的大小
ubuntu使用aliyun源+mysql删除有外键约束的数据+查看特定目录的大小
85 4
|
2月前
|
监控 关系型数据库 MySQL
如何升级MySQL数据库?
【10月更文挑战第16天】如何升级MySQL数据库?
|
2月前
|
Ubuntu 关系型数据库 MySQL
Ubuntu 安装mysql和简单操作
Ubuntu 安装mysql和简单操作
438 0
|
3月前
|
监控 关系型数据库 MySQL
如何升级mysql的版本
如何升级mysql的版本
630 2
|
3月前
|
存储 监控 关系型数据库
如何升级MySQL版本?
如何升级MySQL版本?
217 2
|
4月前
|
Ubuntu 关系型数据库 MySQL
Ubuntu 安装 MySQL 5.7
Ubuntu 安装 MySQL 5.7
128 0
|
4月前
|
存储 Ubuntu 测试技术
如何在 Ubuntu 或 Debian VPS 上配置 Apache Web 服务器
如何在 Ubuntu 或 Debian VPS 上配置 Apache Web 服务器
84 0