MySQL数据迁移

MySQL迁移

先将MySQL数据迁移到cdh-slave02(192.168.100.47)节点,并由该节点接收后续提供192.168.100.41节点的MySQL数据库查询请求。

1. 备份数据库表结构

迁移 remain_result 和 user_new_login 两个库。

mysqldump -uroot -p --databases remain_result user_new_login -d --single-transaction \
--default-character-set=utf8 > /tmp/db_create_schema.sql

2. 导出用户表

因为平台节点不同,不是新集群CDH主节点,需要修改一部分用户数据,比如删除scm等用户。

mysqldump -uroot -p mysql user > /tmp/table_user.sql

3. 备份迁入节点用户表

mysqldump -uroot -p mysql user > /tmp/47user.sql

4. 导出数据

查看表大小,因为少了索引大小,会比实际小一些

mysql -uroot -p -e "select concat(round(sum(DATA_LENGTH/1024/1024),1),'M') \
from information_schema.tables where table_schema='user_new_login';"

暂时关闭自动提交

mysql –uroot –p –e "set autocommit=0;"

 

导出数据库

time mysqlpump -uroot -p -B user_new_login --default-character-set=utf8 \
--single-transaction --default-parallelism=10 > /tmp/db_user_new_login.sql

恢复自动提交

mysql –uroot –p –e " set autocommit=1;"

 

5. 拷贝数据

将数据传到迁入服务器

rsync -v /tmp/db_create_schema.sql root@192.168.100.47:/user/liujinhe/bak/
rsync -v /tmp/table_user.sql root@192.168.100.47:/user/liujinhe/bak/
rsync -v db_remain_result.sql root@192.168.100.47:/user/liujinhe/bak/
rsync -v /tmp/db_user_new_login.sql root@192.168.100.47:/user/liujinhe/bak/

6. 导入数据

创建库

mysql -uroot -p -e 'create database `remain_result` default character set utf8;'

查看mysql设置

mysql -uroot -p -e "show variables like 'max_allowed_packet';"
mysql -uroot -p -e "show variables like 'net_buffer_length';"

 

暂时关闭自动提交和binlog

mysql -uroot -p -e 'set sql_log_bin=OFF;'
mysql -uroot -p -e 'set autocommit=0;'

导入数据

现在只能单线程导入,比较慢

# 不显示过程
mysql -uroot -p remain_result < /user/liujinhe/bak/db_remain_result.sql

# 可以看到详细过程
mysql -uroot -p -e "source /user/liujinhe/bak/db_remain_result.sql;"

开启自动提交和binlog

mysql -uroot -p -e 'set autocommit=1;'
mysql -uroot -p -e 'set sql_log_bin=ON;'

 

迁移MySQL数据库时,可以采取多种方法。其中一种常用的方法是备份和还原。你可以使用mysqldump命令将原有的MySQL数据库备份到一个文件中,然后使用mysql命令将备份文件还原到新的MySQL服务器中。例如,备份一个名为mydb的数据库可以使用以下命令:mysqldump -u root -p mydb > mydb_backup.sql,然后使用以下命令将备份文件还原到新的MySQL服务器中:mysql -u root -p mydb < mydb_backup.sql。\[1\] 另一种常用的方法是导出和导入。你可以使用mysqldump命令将原有的MySQL数据库导出为一个文件,然后使用mysql命令将文件导入到新的MySQL服务器中。例如,导出一个名为mydb的数据库可以使用以下命令:mysqldump -u root -p mydb > mydb_export.sql,然后使用以下命令将文件导入到新的MySQL服务器中:mysql -u root -p mydb < mydb_export.sql。\[1\] 在迁移MySQL数据库时,可能会遇到一些常见的错误。例如,数据库版本不兼容、编码不兼容、数据库用户权限问题、导出或导入的数据量过大、备份文件损坏以及数据库结构不一致等。为了解决这些问题,你需要确保新的MySQL数据库版本与原有的MySQL数据库版本兼容,使用相同的编码,使用具有足够权限的MySQL用户,使用分批次的方式进行导出和导入,确保备份文件完整并且没有损坏,以及确保两个MySQL数据库结构一致。\[2\]\[3\] #### 引用[.reference_title] - *1* *2* *3* [如何迁移MySQL数据库?](https://blog.youkuaiyun.com/u010986241/article/details/130038625)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

訾零

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值