mysql不同版本数据之间的同步工具+常用指令

升级数据库时,通常需要将旧版本中的数据同步到新版本的mysql服务中。对于MyISAM格式的,通常直接copy数据文件,然后修改文件权限(chown -R mysql:mysql data)就能解决问题。但是对于innodb格式的,这种方式是行不通的。于是我写了一个工具方便数据的备份。

操作步骤如下:

1、启动新的mysql服务
#:bin/mysqld_safe --port=3308 --socket=/tmp/mysql2.sock &

2、同步mysql服务权限【可选】
    
//同步权限数据
#: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、同步应用数据

TO_MYSQL_SOCK=/tmp/mysql2.sock
TO_MYSQL_PORT=3308
dataList=`mysql -s -e "show databases"`
for databaseName in ${dataList[*]}
do
# 过滤掉不需要同步的表
case $databaseName in Database|mysql|test|performance_schema|information_schema)
echo "ignore Database:"$databaseName ;;
*) echo "创建数据库:"$databaseName
mysqladmin -P ${TO_MYSQL_PORT} --socket=${TO_MYSQL_SOCK} create ${databaseName}
mysqldump --opt ${databaseName} | mysql -P ${TO_MYSQL_PORT} --socket=${TO_MYSQL_SOCK} ${databaseName}
;;
esac
done


3、关掉旧数据库服务,启用新数据库服务

常用指令:
授权:
GRANT ALL PRIVILEGES ON *.* TO 'root'@'192.168.0.%' IDENTIFIED BY '1' WITH GRANT OPTION;

编码集:
SHOW VARIABLES LIKE 'character_set_%';

二进制日志清除:
mysql > flush logs;
mysql > reset master;

删除没用的密码
delete from user where password ="";
FLUSH PRIVILEGES;

初设密码:
./bin/mysqladmin -u root password 'new-password'
./bin/mysqladmin -u root -h server-171 password 'new-password'

5.6.10版本编译(默认字符utf8)
cmake -DCMAKE_INSTALL_PREFIX=/opt/app/mysql-5.6.10 \
-DMYSQL_DATADIR=/opt/app/mysql-5.6.10/data \
-DDEFAULT_CHARSET=utf8 \
-DDEFAULT_COLLATION=utf8_general_ci \
-DEXTRA_CHARSETS=all

慢查询语句(my.cnf)
long_query_time=1
log_slow_queries= /usr/local/mysql/var/slow_query.log

修改文件权限
chown -R mysql:mysql ${dbname}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值