Home  >  Article  >  Database  >  Ubuntu 11.04将MySQL 5.1升级到5.5

Ubuntu 11.04将MySQL 5.1升级到5.5

WBOY
WBOYOriginal
2016-06-07 17:05:37840browse

因为Ubuntu的apt库里MySQL最新版本依然是5.1,所以升级MySQL5.5 只有自行下载,并且由于两个版本间改动较大,所以务必先阅读官网

【本文仅仅记录升级过程,不讨论两个版本的优劣,而且本网目前的数据库相对简单,没有存储过程什么的,所以不能保证同样方法试用于所有情况,总之升级有风险,操作需谨慎!】

因为Ubuntu的apt库里MySQL最新版本依然是5.1,所以升级MySQL5.5 只有自行下载,并且由于两个版本间改动较大,所以务必先阅读官网的升级事项 upgrading from from MySQL 5.1 to 5.5 ,确保自己的数据库以及配置适用新版。

本文参考了一篇英文指南 A step by step guide to upgrading to MySQL 5.5 但是做了一些顺序和内容上的调整,特别是官网和这篇英文指南都是在升级前mysqldump来备份文件,升级后再将sql导入的方式,但是这个过程可能非常耗时(本网的数据库可能需要花费十几个小时才能完成重新导入),我直接在原数据库文件目录上升级,基本是眨眼的功夫,当然要再次强调,这个未必适用于所有人。

具体步骤如下:

1. 停止现版本MySQL,并备份

mkdir mysql_5.1_backup

cd mysql_5.1_backup

sudo /etc/init.d/mysql stop

接下来所有备份操作都在mysql_5.1_backup 执行

1.1 用mysqldump 备份数据库,可以将mysql内建数据库和产品数据库分开备份

mysqldump -u user_name -p –databases mysql > mysql_db.sql
mysqldump -u user_name -p –databases db_name > db_name.sql

1.2 备份MySQL 数据目录,更多备份,更多安全

sudo cp -R /var/lib/mysql/ mysql-5.1-data

1.3 备份MySQL 配置文件

sudo cp -r /etc/mysql mysql_5.1_conf

2 安装异步io库

sudo apt-get install libaio-dev

3. 从官网上下载最新的MySQL,(我们用的是64位,截至5.5.16,,注意要下载 .tar.gz那个版本, tar版本很坑爹,解压后都是rpm文件)

wget -c “://ftp.iij.ad.jp/pub/db/mysql/” -O mysql-5.5.16-linux2.6-x86_64.tar.gz

4. 将下载文件拷贝到/usr/local/并解压,建立软链接(方便以后下载新版本后切换)

sudo cp mysql-5.5.16-linux2.6-x86_64.tar.gz /usr/local
sudo tar xzvf mysql-5.5.16-linux2.6-x86_64.tar.gz
sudo ln -s mysql-5.5.16-linux2.6-x86_64 mysql

5. 干掉旧版本的MySQL

sudo apt-get remove mysql-server
sudo apt-get autoremove
sudo apt-get remove mysql-client
sudo apt-get autoremove

6. 编辑环境文件/etc/environment,使之内容如下:
PATH=”/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/mysql/bin”
7. 保证MySQL的socket 文件所在目录存在并可读写

sudo mkdir /var/run/mysqld/ (如果已经存在就忽略错误)
sudo chown -R mysql:mysql /var/run/mysqld/

8. 拷贝新的配置文件

cd /usr/local/mysql/support-files/
sudo cp my-large.cnf /etc/mysql/my.cnf

9. 编辑配置文件/etc/mysql/my.cnf,添加如下内容

[mysqld]

user = mysql
socket = /var/run/mysqld/mysqld.sock
port = 3306
basedir = /usr/local/mysql
datadir = /var/lib/mysql #这里和英文指南不同,指向原MySQL数据库文件目录
tmpdir = /tmp
log_error = /var/log/mysql/error.log

注意,要确保[client]和[mysqld]下socket和port字段内容一致

10. 拷贝MySQL启动文件

cd /usr/local/mysql/support-files/
sudo cp mysql.server /etc/init.d/mysql
sudo chmod +x /etc/init.d/mysql
sudo update-rc.d mysql defaults

11. 干掉旧版MySQL 余虐 (和英文版教程不同,因为保留了原配置文件目录和原数据库文件目录)

sudo rm -R /usr/lib/mysql

12. 跳过grants table 运行MySQL

sudo su #切换到root,否则下面的命令中无法使用mysql帐号
/usr/local/mysql/bin/mysqld –skip-grant-tables –user=mysql

13. 开一个新的终端

sudo /usr/local/mysql/bin/mysql_upgrade

如果所有的log都ok,那就基本Ok了
14. 终止之前的mysql进程,ctrl-c停不下来的话,就直接kill 进程号
15. 正常启动MySQL

sudo /etc/init.d/mysql start

linux

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn