mysql不同版本数据之间的同步工具+常用指令
升级数据库时,通常需要将旧版本中的数据同步到新版本的mysql服务中。对于MyISAM格式的,通常直接copy数据文件,然后修改文件权限(chown -R mysql:mysql data)就能解决问题。但是对于innodb格式的,这种方式是行不通的。于是我写了一个工具方便数据的备份。
操作步骤如下:
1、启动新的mysql服务
#:bin/mysqld_safe --port=3308 --socket=/tmp/mysql2.sock &
2、同步mysql服务权限【可选】
Java代码
//同步权限数据
#:mysqldump --opt mysql | mysql -P 3308 --socket=/tmp/mysql2.sock mysql
//在每一次的升级过程中,mysql_upgrade这个命令我们都应该去执行,它通过
//mysqlcheck命令帮我们去检查表是否兼容新版本的数据库同时作出修复,
//还有个很重要的作用就是使用mysql_fix_privilege_tables命令去升级权限表。
#: mysql_upgrade -P 3308 --socket=/tmp/mysql2.sock
2、同步应用数据
Java代码
TO_MYSQL_SOCK=/tmp/mysql2.sock
TO_MYSQL_PORT=3308
dataList=`mysql -s -e "show databases"`
for databaseName in ${dataList[*]}
do