视频1 视频21 视频41 视频61 视频文章1 视频文章21 视频文章41 视频文章61 推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37 推荐39 推荐41 推荐43 推荐45 推荐47 推荐49 关键词1 关键词101 关键词201 关键词301 关键词401 关键词501 关键词601 关键词701 关键词801 关键词901 关键词1001 关键词1101 关键词1201 关键词1301 关键词1401 关键词1501 关键词1601 关键词1701 关键词1801 关键词1901 视频扩展1 视频扩展6 视频扩展11 视频扩展16 文章1 文章201 文章401 文章601 文章801 文章1001 资讯1 资讯501 资讯1001 资讯1501 标签1 标签501 标签1001 关键词1 关键词501 关键词1001 关键词1501 专题2001
Ubuntu11.04将MySQL5.1升级到5.5
2020-11-09 11:54:35 责编:小采
文档


因为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,(我们用的是位,截至5.5.16,,注意要下载 .tar.gz那个版本, tar版本很坑爹,解压后都是rpm文件)

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

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

sudo cp mysql-5.5.16-linux2.6-x86_.tar.gz /usr/local
sudo tar xzvf mysql-5.5.16-linux2.6-x86_.tar.gz
sudo ln -s mysql-5.5.16-linux2.6-x86_ 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

下载本文
显示全文
专题