通过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加载授权表信息。

MySQL 8 拷贝MySQL数据库到另一台机器的更多相关文章

  1. mysql迁移-----拷贝mysql目录/load data/mysqldump/into outfile

    摘要:本文简单介绍了mysql的三种备份,并解答了有一些实际备份中会遇到的问题.备份恢复有三种(除了用从库做备份之外), 直接拷贝文件,load data 和 mysqldump命令.少量数据使用my ...

  2. 【SQL server 2012】复制数据库到另一台机器上

    当需要将一台机器(源机器)上的一个数据库完全复制到另一台机器(目标机器)上时,可以选择先在源机器上备份该数据库,然后在目标机器上还原该备份的方法. 下面详细描述具体步骤: 1. 打开SQL serve ...

  3. [oracle] DBLINK +同义词,实现本地数据库访问另一台机器的数据库

    起因:订单表原来在90库上,后各种原因移到了40库上,需访问40库上的订单表.采用DBLINK+同义词方法: -- 1 在90机器上用GPSV4登录PLSQL,创建DBLINK,从本地数据库,连接到远 ...

  4. Mysql 利用拷贝data目录文件的方式迁移mysql数据库

    Mysql 利用拷贝data目录文件的方式迁移mysql数据库 步骤如下: 1.首先要确定data目录 这个问题困扰了我很久,因为网上的帖子大部分只是说拷贝mysql数据库目录下的data文件夹中的数 ...

  5. CentOS 拷贝mysql数据库到新的硬盘报错了

    服务器硬盘满了,加了一块,在目录 下新建了 mkdir /mysql cp -r /var/lib/mysql/* /mysql chown -R mysql:root /mysql 更改/etc/m ...

  6. MySQL 采用Xtrabackup对数据库进行全库备份

    1,xtrabackup简介 关于数据库备份以及备份工具,参考:http://blog.itpub.net/26230597/viewspace-1460065/,这里来介绍xtrabackup已经如 ...

  7. 2020重新出发,MySql基础,MySql数据库备份与恢复

    @ 目录 MySQL数据库备份与恢复 数据库为什么需要备份 MySQL备份类型 MySQL热备份及恢复 逻辑备份 mysqldump SELECT INTO-OUTFILE mydumper 裸文件备 ...

  8. Docker搭建mysql:5.7版本数据库

    搭建MySQL: 1.启动测试mysql,拷贝容器内配置文件到宿主机 mkdr -P /server/docker/mysql/{data,conf} docker run -e MYSQL_ROOT ...

  9. 如何使用dos命令查看MySQL当前使用的数据库?

    1.dos命令安装mysqld --stall.启动net start mysql.进入MySQL数据库mysql -uroot -p后,输入select database(); 如图:

随机推荐

  1. docker 镜像位置切换

    发生现象: 在windows10下安装Docker for windows,随着用docker pull image文件后,C盘的容量越来越小了,你可能也有一种跟我一样的想法,想改变默认的安装路径,本 ...

  2. informatica9.5.1后最一步出错(ICMD_10033,INFACMD_10053)

    错误信息: OutPut : [ICMD_10033] Command [ping] failed with error [[INFACMD_10053] [Domain [Domain_rotkan ...

  3. django3.x版本不支持MySQL5.x版本

    其实django2.0版本已经不再支持MySQL5.x的了,最开始是安装了MySQL5.1,在学习django 的时候,django版本为3.0,在执行`python manage.py migrat ...

  4. ovirt kvm嵌套虚拟化

    嵌 套式虚拟nested是一个可通过内核参数来启用的功能.它能够使一台虚拟机具有物理机CPU特性,支持vmx或者svm(AMD)硬件虚拟化.关于 nested的具体介绍,可以看这里 .该特性需要内核升 ...

  5. JAVA byte数组转化为16进制字符串输出

    最简单的方法: 利用javax.xml.bind包下的DatatypeConverter printHexBinary public static java.lang.String printHexB ...

  6. Codeforces_832

    A.判断n/k的奇偶性. #include<bits/stdc++.h> using namespace std; long long n,k; int main() { ios::syn ...

  7. POJ_1221_DP

    http://poj.org/problem?id=1221 简单dp,dp[i][j]表示i被划分成首位>=j的方案数. dp[i][i]为1,i为偶数时dp[i][i/2]为2. 剩下的可以 ...

  8. Codeforces Round #470 (Div. 2) A Protect Sheep (基础)输入输出的警示、边界处理

    Bob is a farmer. He has a large pasture with many sheep. Recently, he has lost some of them due to w ...

  9. ThinkPHP5.1学习笔记 数据库操作

    数据库 参见<Thinkphp5.1完全开发手册>学习 Mirror王宇阳 数据库连接 ThinkPHP采用内置抽象层对数据库操作进行封装处理:且基于PDO模式,可以适配各种数据库. 数据 ...

  10. Java面试题之“==”和“equals()”方法的区别?

    一.“== ”:运算符 1.可以使用在基本数据类型变量和引用数据类型变量中. 2.如果比较的是基本数据类型变量:比较的是两个变量保存的数据是否相等.(不一定类型要相同) 3.如果比较的是引用数据类型变 ...