一、安装主数据库
1.在服务器新建文件夹 mysql/data,新建文件 mysql/conf.d/my.cnf
其中my.cnf 内容如下
[mysqld]
log_timestamps=SYSTEM
default-time-zone='+8:00'
server-id=1
log-bin=mysql-bin
binlog-do-db = mall # 要监听的库
binlog_format=ROW
2.启动数据库
docker run --name mysql01 \
-p 3306:3306 \
-v /opt/mysql/conf.d:/etc/mysql/conf.d \
-v /opt/mysql/data:/var/lib/mysql \
-e MYSQL_ROOT_PASSWORD=123456 \
-d mysql:8.0
3.校验是否开启成功
show variables like 'log_%';
show variables like 'binlog_format';
show variables like 'server_id';
--查看所有日志
show binlog events;
--查看最新的日志
show master status
-- 查询指定的binlog日志
show binlog events in 'XTZJ-20221008CY-bin.000020'
--清空所有的 binlog 日志文件reset master
4.DML与DDL
MySQL中,DML(Data Manipulation Language)和DDL(Data Definition Language)是两种不同类型的SQL语句,它们分别用于不同的数据库操作目的:
DML(数据操作语言): DML语句主要用于对数据库表中的实际数据进行操作,主要包括以下几种命令:
-
INSERT
:向表中插入新的行数据。 -
UPDATE
:更新表中已存在的行数据。 -
DELETE
:从表中删除满足特定条件的行数据。 -
SELECT
:从表中检索数据,虽然SELECT
不改变数据本身,但因其属于对数据的操作,所以也被归类于DML。
DML操作通常发生在事务中,可以被用户手动控制事务的开启、提交和回滚,确保数据的一致性和完整性。
DDL(数据定义语言): DDL语句主要用于创建、修改或删除数据库的结构元素,例如:
-
CREATE
:创建新的数据库、表、索引、视图等。 -
ALTER
:更改现有数据库对象的结构,例如增加或删除列,修改列的数据类型,重命名表等。 -
DROP
:删除数据库对象,如表、索引、视图等。 -
TRUNCATE
:清空表的内容,但保留表的结构。、
二、安装canal
1.新建文件夹logs, 新建文件canal.properties instance.properties docker.compose.yml
修改canal.properties内容如下
修改instance.properties内容如下
2.启动容器
docker-compose up -d