mysql同步数据

本例的场景如下:需要把服务器上的一部分表的数据同步到本地当作测试数据

主要方法:

  • mysqldump
  • mysql的source

mysqldump

    mysqldump是mysql用于转存储数据库的实用程序。它主要产生一个SQL脚本,其中包含从头重新创建数据库所必需的命令CREATE TABLE INSERT等。

这里使用mysqldump是为了生成某个表对应的.sql文件,该文件包括建表语句和表相应的数据。由于要同步多张表格的数据,为了更好的拓展性和方便性,就写了个下面的简单的shell脚本:

# ! /bin/bash

list="table_1 table_2 table_3 ..."
for i in $list;
do
    echo $i;  # 打印
    mysqldump -h IP -P 端口号 -u用户名 -p密码 --single-transaction 数据库名 $i>$i.sql;  # 生成对应的文件
done

上述就是一个简易的备份数据的shell脚本:注意 list=”“ 两边不要加空格。
这里需要带上 –single-transaction 参数,因为我所用的账号是数据库的只读账号,如果不加这个参数会报错
生成对应的文件以后还需要使用mysql的source命令去把数据导入到自己的数据库
1.连接到自己的数据库(mysql -h IP -P 端口号 -u用户名 -p密码 ),然后选择database(use database_name)
2.执行以下代码

source /root/pingan_tables/table_name.sql

这里的table_name.sql即是上面使用mysqldump生成的各表对应的.sql文件
source后面跟的是文件所在的绝对路径

欢迎各位老铁交流: [email protected]

你可能感兴趣的:(数据库相关)