mysql远程导入

发布时间:2020-09-01编辑:脚本学堂
本文介绍下,mysql远程导入数据库的三种方式,有需要的朋友参考下,希望对你有一定的帮助。

本节主要内容:
学习mysql远程导入库的方法。
共介绍了三种实现方式。

 环境:
192.168.2.106 为source database
192.168.2.207 为destination database
需要将206机器上的db迁移到207机器上去!

下面介绍实现远程导入有三种方式。

一:在206机器上执行:
 

复制代码 代码示例:

mysql> grant  all on test.* to 'testuser'@'%' identified by 'testuser';
Query OK, 0 rows affected (0.00 sec)

mysql> use test;
Database changed
mysql> show tables;
+----------------+
| Tables_in_test |
+----------------+
| b              |
+----------------+
1 row in set (0.00 sec)

mysql> select * from b;
+------+-------+
| id   | name  |
+------+-------+
|    1 | zhang |
+------+-------+
1 row in set (0.06 sec)

mysql> create table a(id int,name varchar(20));
Query OK, 0 rows affected (0.04 sec)

mysql> insert into  a values(1,'liu');
Query OK, 1 row affected (0.00 sec)

mysql> insert into  a values(2,'jack');
Query OK, 1 row affected (0.00 sec)

mysql> select * from a;
+------+------+
| id   | name |
+------+------+
|    1 | liu  |
|    2 | jack |
+------+------+
2 rows in set (0.00 sec)

207机器上执行:
 

复制代码 代码示例:

mysql> use test;
Database changed
mysql> show tables;
+----------------+
| Tables_in_test |
+----------------+
| dsns           |
| person         |
+----------------+
2 rows in set (0.00 sec)
mysql> drop table person;
Query OK, 0 rows affected (0.00 sec)

mysql> exit
Bye
[root@jbxue dota2_db]# mysqldump -h 192.168.2.206 -utestuser -p'testuser' --default-character-set=utf8 --allow-keywords test |/data/mysql/bin/mysql -uroot -pkuutown1601 test
[root@jbxue test]# pwd
/data/mysql/var/test
[root@jbxue test]# ll
total 328
-rw-rw----. 1 mysql mysql  8586 Sep 25 17:07 a.frm
-rw-rw----. 1 mysql mysql 98304 Sep 25 17:07 a.ibd
-rw-rw----. 1 mysql mysql  8586 Sep 25 17:07 b.frm
-rw-rw----. 1 mysql mysql 98304 Sep 25 17:07 b.ibd
-rw-rw----. 1 mysql mysql    61 Aug  7 17:13 db.opt
-rw-rw----. 1 mysql mysql  8624 Aug  7 17:13 dsns.frm
-rw-rw----. 1 mysql mysql 98304 Aug  7 17:15 dsns.ibd
 

显然红色字体为多出的部分!

二:通过nc ,nc的全称为netcat
安装nc
 

复制代码 代码示例:
tar zxvf netcat-0.7.1.tar.gz
  cd netcat-0.7.1
  ./configure
  make
  make install
 

即可安装,
###在两台机器上都需要安装nc
先在207机器上,打开nc监听,我使用的命令为:
 

复制代码 代码示例:
[root@jbxue liuxiaojie]# nc -l -p 4567 | gunzip  | mysql -uroot -pk****1  loldbrtmp8

在206机器上运行:
 

复制代码 代码示例:
[root@web1 var]#  mysqldump -uroot -pk****1 loldbrtmp8| gzip | nc -w1 192.168.2.207 4567
 

即可将206机器上的loldbrtmp8数据库下的表导入到207机器上的loldbrmtp8 中!
###注意防火墙上放过4567端口
在207上执行完nc相关命令后,用netstat -an | grep 4567 就会看到端口在监听!

三:直接通过
在207上执行
 

复制代码 代码示例:
mysql> grant all on loldbrtmp8.* to 'importuser'@'192.168.2.206' identified by 'importuser';
Query OK, 0 rows affected (0.07 sec)
 

在206上执行如下:
 

复制代码 代码示例:
[root@web1 var]#  mysqldump -uroot -pk***1 loldbrtmp8|mysql -h 192.168.2.207 -uimportuser -pimportuser loldbrtmp8

四:通过ssh通道
 

复制代码 代码示例:
[root@web1 var]#  mysqldump -uroot -pk***1 loldbrtmp8|ssh root@192.168.2.207 mysql  -uroot -p'k81' loldbrtmp8
root@192.168.2.207's password:  输入207机器上系统用户root对应的密码即可

还有一种方式,将远程的db导入到本地!
在206机器上登录207,将207机器上的loldbrtmp9下的表导入到206机器上的loldbrtmp9中
 

复制代码 代码示例:
[root@web1 var]# ssh root@192.168.2.207  mysqldump -uroot -pk****1 loldbrtmp9| mysql  -uroot -p'k***1' loldbrtmp9