问题背景
在 MySQL 高可用集群架构中,应用经常需要通过 select ... into outfile 和 load data [local] infile 进行数据导入导出。通常,数据导出(只读)发生在只读 Slave 节点,通过 localhost 连接;数据导入(读写)发生在 Master 节点,通过集群 VIP 连接。
| DB-Master (DB02) | DB-Slave (DB01) | vip |
|---|---|---|
| A.B.C.120 | A.B.C.119 | A.B.C.121 |
涉及这两个操作的关键参数当前生效值如下:
secure_file_priv='' # 表示不限制数据导出的目录
local_infile=OFF # 表示不允许使用 load data local infile 从客户端导入数据
数据导出测试
创建测试库(在主库进行)
首先在主库创建测试用户、数据库及表结构,并插入少量测试数据:
mysql> create user 'apptest'@'%' identified by 'appPasswd';
mysql> create database apptest;
mysql> use apptest;
mysql> create table test01 (
id int not null,
name varchar(20),
country varchar(12),
primary key pk_id(id)
) engine=innodb;
-- 插入测试数据后查询结果
mysql> select * from apptest.test01;
+----+---------------+---------+
| id | name | country |
Gu Eileen CN
Lebron James USA
Karim Benzema FR

