通过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

scp test.gz root@192.168.1.150:~

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/ root@192.168.1.150:/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加载授权表信息。

最新文章

  1. 数组,集合分割函数,join()
  2. 一行python代码实现树结构
  3. 部署Eclipse中的Web项目到Tomcat服务器运行
  4. DirectX 基础学习系列6 字体
  5. JSTL 核心标签库
  6. 如何把程序钉到Windows7任务栏(修正版)
  7. Jedis与Redisson选型对比
  8. 零基础如何一步一步开始搭建高性能直播平台?现以GitChat&#183;架构来进行说明
  9. C++中static关键字作用总结
  10. 磁盘管理之 raid 文件系统 分区
  11. iOS 友盟推送,应用内推送启动图推送闪动黑屏,插屏推送方法报错
  12. C语言中,#include &lt;&gt;和#include &quot;&quot;的区别和注意点
  13. getOrderValue 排序 sql server
  14. 谷歌将一些弱小的库从安卓代码移除Google Removes Vulnerable Library from Android
  15. Ember.js 看法,精辟
  16. (转)Spring Boot(十六):使用 Jenkins 部署 Spring Boot
  17. 2-物联网开发标配方案(51单片机程序介绍+WIFI程序介绍)
  18. fedora安装字体
  19. 利用HTML5定位功能,实现在百度地图上定位(转)
  20. JProfiler 9版本注册码(亲测可用!!!)

热门文章

  1. Git详解之分布式应用
  2. Shell常用命令之主机检测(ping)
  3. Docker三剑客之compose
  4. windows RabbitMQ安装与配置
  5. divide and conquer - 最大连续子序列 - py
  6. Activity--Eclipse安装Activity designer插件失败
  7. python学习Day02
  8. HDU_1166_树状数组
  9. dosbox,masm的挂载
  10. NR / 5G - Uplink Carrier Waveform Generation