版本升级:
mysql版本很多,有5.5,5.6,5.7都可能,有时候我们的目的是升级数据库版本.
升级的方法有两种,第一种就是用mysqldump方式来操作,因为导出来就是sql语句,所以直接导进去新库就是升级了。例如:
1
2
3
4
|
#在旧库导出
mysqldump -uroot -p
'****'
-h10.0.2.4 -P3307 --triggers -R --single-transaction --no-autocommit -A >old.sql
#在新库导入
mysql -uroot -p
'****'
-h10.0.2.5 -P3306 <old.sql
|
而第二种是基于用xtrabackup方式或者直接更新程序目录,则需要有以下的命令操作进行升级,不然的话,即使启动了也做不了任何操作的。xtrabackup这里就不详细介绍了,只说更改程序要怎么做,例如:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
|
#先关闭旧的mysql程序
/etc/init
.d
/mysql
stop
#更换mysql程序目录,具体按实际情况
cp
-ar
/usr/local/mysql/my
.cnf
/usr/local/mysql57/
rm
-rf
/usr/local/mysql
mv
/usr/local/mysql57
/usr/local/mysql
cp
-ar
/usr/local/mysql/support-files/mysql
.server
/etc/init
.d
/mysql
#然后启动新的mysql
/etc/init
.d
/mysql
start
#要确认mysql在启动状态,关闭状态做不了升级
/etc/init
.d
/mysql
status
#执行升级命令
mysql_upgrade --defaults-
file
=
/usr/local/mysql/my
.cnf -uroot -p123 -h127.0.0.1
. ok
. ok
. ok
Upgrade process completed successfully.
Checking
if
update is needed.
|
操作很快,不会占用很多时间,然后你的数据库就真正可以正常使用了,也就是升级完成.
另外,对于同版本恢复,不会存在任何升级问题,可以忽略,例如5.6.29升级成5.6.34是不需要做升级操作的,而5.6升级成5.7则需要做升级操作。还有就是不允许高版本恢复到低版本,就算给你用到也各种问题.这里说的是对于低版本恢复到高版本,就是要多做一个升级操作,不做升级就会报错使用不了.
mysql分支升级问题
需要额外说明的是,mysql有很多分支,有mysql官方,有percona,有mariadb,有新的alsql。理论上都是通用,但是难免是有些差异的,所以这种跨分支升级,个人建议是使用mysqldump这类工具比较实际一些。特别是新版的mariadb和mysql官方版本,差异基本已经不可修复,如果硬来就不能好好使用了。
本文转自arthur376 51CTO博客,原文链接:http://blog.51cto.com/arthur376/1944485,如需转载请自行联系原作者