0%

SequoiaDB-MySql实例导入导出数据

  • SequoiaSQL-MySQL 实例支持数据导入以及导出操作, 而其中就包含 CSV 格式导入导出和基于 mysqldump 工具的导入导出两种原生 MySQL 数据库所支持的方式。

CSV 导出

添加 MySQL 数据库导入导出的路径配置,然后进行数据库 CSV 格式数据的导出。

导出导入参数配置

1)在 auto.cnf 文件中加入导入导出路径的参数配置;

1
2
3
cat >> /opt/sequoiasql/mysql/database/3306/auto.cnf << EOF
secure_file_priv = "/opt/sequoiasql/mysql/tmp"
EOF

2)创建存放数据路径;

1
mkdir /opt/sequoiasql/mysql/tmp

Note:

secure_file_priv默认为NULL, 表示不允许导入导出操作,需要在配置文件中进行更改。

3)重启 MySQL 数据库实例;

1
/opt/sequoiasql/mysql/bin/sdb_sql_ctl restart myinst

操作截图:

图片描述

登录到 MySQL 实例

4)登录 MySQL 实例;

1
/opt/sequoiasql/mysql/bin/mysql -h 127.0.0.1 -P 3306 -u root

CSV格式数据导出

1)进行创建并使用 company 数据库;

1
2
CREATE DATABASE company;
USE company;

2)创建包含自增主键字段的 employee 表;

1
2
3
4
5
6
CREATE TABLE employee 
(
empno INT AUTO_INCREMENT PRIMARY KEY,
ename VARCHAR(128),
age INT
);

3)插入数据并执行查询;

1
2
3
INSERT INTO employee (ename, age) VALUES ("Jacky", 36);
INSERT INTO employee (ename, age) VALUES ("Alice", 21);
SELECT * FROM employee;

4)执行 sql 语句进行导出, 其中字段以逗号(,)分隔,以双引号(“)作为字符串标识符,以回车换行(\r\n)作为记录分割符;

1
2
3
4
5
6
SELECT * FROM employee   
INTO OUTFILE '/opt/sequoiasql/mysql/tmp/employee_export.csv'
FIELDS TERMINATED BY ','
OPTIONALLY ENCLOSED BY '"'
ESCAPED BY '"'
LINES TERMINATED BY '\r\n';

操作截图:

图片描述

5)退出 MySQL 实例;

1
\q

导出的 CSV 格式数据检查

6)检查导出的数据;

1
cat /opt/sequoiasql/mysql/tmp/employee_export.csv;

操作截图:

图片描述

CSV 导入

创建一张测试表 employee_import_test ,然后将上一小节导出的 CSV 数据内容导入该测试表中并进行数据验证。

创建测试表

1)登入 MySQL;

1
/opt/sequoiasql/mysql/bin/mysql -h 127.0.0.1 -P 3306 -u root

2)在 MySQL 实例中创建导入测试的分区表 employee_import_test;

1
2
3
4
5
6
7
8
USE company;
CREATE TABLE employee_import_test
(
empno INT AUTO_INCREMENT PRIMARY KEY,
ename VARCHAR(128),
age INT
)
ENGINE=sequoiadb COMMENT="雇员表, sequoiadb: { table_options: { ShardingKey: { 'empno': 1 }, ShardingType: 'hash', 'Compressed': true,'CompressionType': 'lzw', 'AutoSplit': true, 'EnsureShardingIndex': false } }";

操作截图:

图片描述

CSV 格式数据导入

3)导入语句操作;

1
2
3
4
5
6
LOAD DATA INFILE '/opt/sequoiasql/mysql/tmp/employee_export.csv'
INTO TABLE employee_import_test
FIELDS TERMINATED BY ','
OPTIONALLY ENCLOSED BY '"'
ESCAPED BY '"'
LINES TERMINATED BY '\r\n';

操作截图:

图片描述

导入的 CSV 格式数据检查

4)导入的数据检查;

1
SELECT * FROM employee_import_test;

操作截图:

图片描述

5)退出 MySQL 实例;

1
\q

mysqldump 导出

通过 mysqldump 导出可直接由 MySQL Shell 执行导入的 sql 数据文件。

mysqldump 导出

1)mysqldump 工具导出,路径为(/opt/sequoiasql/mysql/tmp/employee_import_test.sql);

1
/opt/sequoiasql/mysql/bin/mysqldump -h 127.0.0.1 -u root   company employee_import_test > /opt/sequoiasql/mysql/tmp/employee_import_test.sql

Note:

mysqldump 导出的是 SQL 逻辑执行语句, 其有比较多的参数命令,可通过 mysqldump –help 罗列其中的参数进行查看

2)mysqldump工具导出数据检查;

1
cat /opt/sequoiasql/mysql/tmp/employee_import_test.sql

操作截图:

图片描述

Note:

因为内容较多, 仅截了图中的部分内容。

mysqldump 导入

通过 mysqldump 直接导入 sql 数据文件并进行数据校验。

清理数据表

1)登录 MySQL 实例;

1
/opt/sequoiasql/mysql/bin/mysql -h 127.0.0.1 -P 3306 -u root

2)删除表 employee_import_test,为后面导入测试做准备;

1
2
USE company;
DROP TABLE employee_import_test;

操作截图:

图片描述

mysqldump 工具导入

1)mysqldump 导出后生成的文件是sql语句的集合,可以直接执行;

1
SOURCE /opt/sequoiasql/mysql/tmp/employee_import_test.sql;

mysqldump 工具导入检查

2)导入数据检查;

1
2
USE company;
SELECT * FROM employee_import_test;

Note:

因为我们导出的是数据表, 所以导入的时候, 需要选择好相应的数据库。

操作截图:

图片描述

-------------本文结束感谢您的阅读-------------