提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档
前言
datax的使用流程和本人踩的坑
一、datax的使用流程
以mysql->mysql为例
datax使用流程(macOS版本
-
官网下载datax
进入bin目录
开终端
创建json同步文件
python3 datax.py -r mysqlreader -w mysqlwriter > mysql2mysql.json -
mysql创建需要的数据库表
– 创建一个名为t_user1
的表,包含id
(主键),name
和email
列
CREATE TABLEt_user1
(
id
INT NOT NULL AUTO_INCREMENT,
name
VARCHAR(50) NOT NULL,
email
VARCHAR(100) NOT NULL,
PRIMARY KEY (id
)
);
– 插入一些示例数据
INSERT INTO t_user1
(name
, email
) VALUES
(‘zhangsan’, ‘[email protected]’),
(‘lisi’, ‘[email protected]’),
(‘wangwu’, ‘[email protected]’);
CREATE TABLE t_user2
(
id
INT NOT NULL AUTO_INCREMENT,
name
VARCHAR(50) NOT NULL,
email
VARCHAR(100) NOT NULL,
PRIMARY KEY (id
)
);
- 配置json文件
示例
{
"job": {
"content": [
{
"reader": {
"name": "mysqlreader",
"parameter": {
"column": ["id","name","email"],
"connection": [
{
"jdbcUrl": ["jdbc:mysql://localhost:3306/。。。"],
"table": ["t_user1"]
}
],
"password": "。。。",
"username": "root",
"where": ""
}
},
"writer": {
"name": "mysqlwriter",
"parameter": {
"column": ["id","name","email"],
"connection": [
{
"jdbcUrl": "jdbc:mysql://localhost:3306/。。。",
"table": ["t_user2"]
}
],
"password": "。。。",
"preSql": [],
"session": [],
"username": "root",
"writeMode": "INSERT"
}
}
}
],
"setting": {
"speed": {
"channel": "1"
}
}
}
}
- 运行同步文件
python3 datax.py mysql2mysql.json
二、我踩的坑
1.json格式相关
- 在最开始
python3 datax.py -r mysqlreader -w mysqlwriter > mysql2mysql.json
一步生成的mysql2mysql.json文件中,前半部分有阿里的注视,需要删掉。
2. 对于写入的数据库,的jdbc不能有"[]",因为只支持写入到一个库中
2.mysql配置
password 和password必须要有,如果是root用户,密码默认为空,需要去mysql设置密码:
mysql -u root -p
use mysql;
ALTER USER 'root'@'localhost' IDENTIFIED BY 'NewPassword';
FLUSH PRIVILEGES;
3.我自己蠢
“writeMode”: “INSERT”
而不是! “INSERT INTO”
总结
革命尚未成功 派派仍需努力