mysql 机器复制_MySQL 8 拷贝MySQL数据库到另一台机器

通过mysqldump生成包含SQL语句的文件,然后将其应用到目标机器的mysql客户端程序。

mysqldump --help 可以获取mysqldump选项以及用法。

如果源服务器上启用了GTID模式,在默认情况下,mysqldump生成的DUMP文件包含GTID信息。如果目标机器没有启用GTID会导致导入出现问题。可以通过--set-gtid-purged 选项做调整。

--set-gtid-purged 选项目前有四个可选值:ON, COMMENTED, OFF 和 AUTO

下面是一些用法,比如:

最简单(尽管不是最快速)的方式在两台机器之间传递数据如下:

mysqladmin -h ‘other_hostname‘ create db_name

mysqldump db_name | mysql -h ‘other_hostname‘ db_name

比如:

mysqldump -uroot -poracle --databases test | mysql -uroot -poracle -h192.168.1.150

如果是从远端数据库传递数据,而且网络比较慢的话,可以通过mysqldump工具提供的压缩选项做一些优化

mysqladmin create db_name

mysqldump -h ‘other_hostname‘ --compress db_name | mysql db_name

比如:

mysqldump -uroot -poracle -h192.168.1.150 --compress --databases test | mysql -uroot -poracle

可以通过在源端,使用mysqldump工具生成DUMP文件,然后拷贝的目标端,再通过mysql客户端程序应用

mysqldump --quick db_name | gzip > db_name.gz

mysqladmin create db_name

gunzip < db_name.gz | mysql db_name

注:--quick 选项:不缓存mysqldump工具生成的query。比如:

mysqldump -uroot -poracle --quick --databases test | gzip > test.gz

gunzip < test.gz | mysql -uroot -poracle

通过mysqldump与mysqimport的组合,在处理大表的情况下,比单个的mysqldump更快一些

mkdir DUMPDIR

mysqldump --tab=DUMPDIR db_name

mysql  -e "create db_name"           # create database

cat DUMPDIR/*.sql | mysql db_name   # create tables in database

mysqlimport db_name DUMPDIR/*.txt   # load data into tables

比如:

cd /usr/local/mysql-8.0.18-linux-glibc2.12-x86_64/data/

mkdir DUMPDIR

chown mysql:mysql DUMPDIR

mysqldump -uroot -poracle --tab=./DUMPDIR test

scp -r DUMPDIR/ [email protected]:/usr/local/mysql-8.0.18-linux-glibc2.12-x86_64/data/

chown -R mysql:mysql /usr/local/mysql-8.0.18-linux-glibc2.12-x86_64/data/DUMPDIR

mysql -uroot -poracle -e "create database test;"

cat DUMPDIR/*sql | mysql -uroot -poracle test

mysqlimport -uroot -poracle test DUMPDIR/*.txt

注:两端的服务器需要配置secure_file_priv 环境变量。

补充:

有时可能需要拷贝mysql schema,因为mysql schema中标授权表,如果没有数据库没有mysql schema前提下。在导入mysql schema,使用 mysqladmin flush-privileges 使得MySQL Server加载授权表信息。

原文:https://www.cnblogs.com/xinzhizhu/p/12324106.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
你可以使用MySQL自带的命令行工具或者图形化工具来复制数据库。 使用命令行工具复制数据库: 1. 在源数据库中使用mysqldump命令将数据库导出为.sql文件,命令如下: ``` mysqldump -u username -p database_name > database_name.sql ``` 其中,`username`是你的MySQL用户名,`database_name`是需要导出的数据库名,运行该命令后会提示输入MySQL密码。 2. 将导出的.sql文件拷贝到目标电脑上。 3. 在目标电脑上使用MySQL命令行工具登录MySQL数据库,然后使用以下命令创建新的空数据库: ``` CREATE DATABASE new_database_name; ``` 4. 使用以下命令将.sql文件导入到目标电脑的数据库中: ``` mysql -u username -p new_database_name < database_name.sql ``` 其中,`username`是你的MySQL用户名,`new_database_name`是你希望在目标电脑上创建的新数据库名,`database_name.sql`是你从源数据库导出的.sql文件名,运行该命令后会提示输入MySQL密码。 使用图形化工具复制数据库: 1. 使用MySQL图形化工具(如MySQL Workbench)连接到源数据库。 2. 在工具中选择要复制数据库,右键单击该数据库,选择“导出”。 3. 在导出向导中选择导出格式和文件路径,然后开始导出。 4. 将导出的文件拷贝到目标电脑上。 5. 使用同样的MySQL图形化工具连接到目标数据库,在工具中选择要导入的数据库,右键单击该数据库,选择“导入”。 6. 在导入向导中选择导入文件和导入选项,然后开始导入。 以上就是复制MySQL数据库的简单步骤,希望能够帮助到你。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值