Ubuntu11.04将MySQL5.5升级到5.6.16
1.停止现版本MySQL,并备份
mkdirmysql_5.5_backup
cdmysql_5.5_backup
sudo/etc/init.d/mysql stop
接下来所有备份操作都在mysql_5.5_backup执行
1.1用mysqldump备份数据库,可以将mysql内建数据库和产品数据库分开备份
mysqldump-u user_name -p –databases mysql > mysql_db.sql
mysqldump -uuser_name -p –databases db_name > db_name.sql
1.2备份MySQL数据目录,更多备份,更多安全
sudocp -R /var/lib/mysql/ mysql-5.5-data
1.3备份MySQL配置文件
sudocp -r /etc/mysql mysql_5.5_conf
2.安装异步io库
sudoapt-get install libaio-dev
3.从官网上下载最新的MySQL,(我们用的是64位,截至5.6.16,注意要下载.tar.gz那个版本,tar版本很坑爹,解压后都是rpm文件)
4.将下载文件拷贝到/usr/local/并解压,建立软链接(方便以后下载新版本后切换)
sudocp mysql-5.6.16-linux2.6-x86_64.tar.gz /usr/local
sudo tar xzvfmysql-5.6.16-linux2.6-x86_64.tar.gz
sudo ln -smysql-5.6.16-linux2.6-x86_64 mysql
5.干掉旧版本的MySQL
sudoapt-get remove mysql-server
sudo apt-get autoremove
sudoapt-get remove mysql-client
sudo apt-get autoremove
6.编辑环境文件/etc/environment,使之内容如下:(编辑完后使用source命令保存)
PATH=”/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/mysql/bin”
为了使普通用户可以使用,同时需要在/etc/profile文件中增加环境变量
7.保证MySQL的socket文件所在目录存在并可读写
切换到目录 /usr/local
sudomkdir /var/run/mysqld/ (如果已经存在就忽略错误)sudochown -R mysql:mysql /var/run/mysqld/
8.拷贝新的配置文件
cd/usr/local/mysql/support-files/
sudo cpmy-default.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
tmpdir= /tmp
datadir = /var/lib/mysql#这里和英文指南不同,指向原MySQL数据库文件目录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
sudoupdate-rc.d mysql defaults
11.干掉旧版MySQL余虐 (保留了原配置文件目录和原数据库文件目录)
sudorm -R /usr/lib/mysql
12.跳过grantstable运行MySQL
sudosu #切换到root,否则下面的命令中无法使用mysql帐号/usr/local/mysql/bin/mysqld–skip-grant-tables –user=mysql
13.开一个新的终端
sudo/usr/local/mysql/bin/mysql_upgrade -uroot -p修复升级
如果所有的log都ok,那就基本Ok了 14.终止之前的mysql进程,ctrl-c停不下来的话,就直接kill进程号15.正常启动MySQL
sudo/etc/init.d/mysql start