1、创建mysql本地l数据库目录
mkdir -p /usr/mysql/master/date
2、创建MySQL本地配置文件目录
mkdir -p /usr/mysql/master/conf
3、创建mysql配置文件:
vim /usr/mysql/master/conf/my.cnf
[client]
#设置mysql客户端默认字符集
default-character-set=utf8
[mysql]
default-character-set=utf8
[mysqld]
#设置mysql服务端默认字符集
character-set-server=utf8
#同局域网内的server-id必须具有唯一性
server-id=1
#指定复制那些数据库
binlog-do-db=venus
#指定不复制那些数据库
binlog-ignore-db=mysql
binlog-ignore-db=information_schema
binlog-ignore-db=performance_schema
binlog-ignore-db=sys
#开启二进制日志功能,并设置日志文件名,文件名可以随便取名(关键)
log-bin=mysql-bin
#设置binlog日志格式,其取值可以为row(默认)、statement和mixed
binlog_format=statement
#设置每隔多少次事务提交操作才会将这些操作写入二进制文件
sync_binlog=1
#默认使用 ”mysql——native——password“ 认证
default_authentication_plugin=mysql_native_password
4、创建并运行容器
docker run -id --name m_mysql -p 3307:3306 -e MYSQL_ROOT_PASSWORD=123456 -v /usr/mysql/master/conf:/etc/mysql/conf.d -v /usr/mysql/master/date:/var/lib/mysql mysql:5.7
注意:创建完成后重启容器 docker restart m_mysql
运行容器
docker exec -it m_mysql /bin/bash
5、连接主节点:使用MySQL客户端
#配置mysql密码
ALTER USER 'root'@'localhost' IDENTIFIED BY '123456';
#配置mysql可以远程连接
grant all privileges on *.* to 'root'@'%' identified by '123456' with grant option;
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%';
6、创建从节点同步主节点数据的账号,并授权
[client]
#设置mysql客户端默认字符集
default-character-set=utf8
[mysql]
default-character-set=utf8
[mysqld]
#设置mysql服务端默认字符集
character-set-server=utf8
#同局域网内的server-id必须具有唯一性
server-id=2
#指定复制那些数据库
#指定中继承日志
relay-log=slave1-relay-bin
#设置每隔多少次事务提交操作才会将这些操作写入二进制文件
#sync_binlog=1
#默认使用 ”mysql——native——password“ 认证
default_authentication_plugin=mysql_native_password
7、docker创建从数据库
docker run -id --name=m_mysql -e MYSQL_ROOT_PASSWORD=123456! -p 3307:3306 -v /usr/mysql/master/conf:/etc/mysql/conf.d -v /usr/mysql/master/logs:/logs -v /usr/mysql/master/data:/var/lib/mysql mysql:5.7
运行容器
docker exec -it s_mysql /bin/bash
8、连接主节点:使用MySQL客户端
mysql -u -p
此时密码为空,密码回车就行
- #配置mysql密码
ALTER USER 'root'@'localhost' IDENTIFIED BY '123456';
- #配置mysql可以远程连接
grant all privileges on *.* to 'root'@'%' identified by '123456' with grant option;
- #为'root'@'%'用户分配主从复制权限
grant REPLICATION SLAVE on *.* to 'root'@'%';
从数据库目前配置完成
8、开始配置从库连接
#使用mysql数据库查询
- 在主库使用show master status;查询binlog日志
- 在从库使用配置连接主库的语句
停止slave
stop slave;
change master to
master_host='8.137.97.94',
master_port=3307,
master_user='root',
master_password='123456',
master_log_file='mysql-bin.000007',
master_log_pos=342;
change master to
master_host='8.137.97.94', #主库ip地址
master_port=3307, #主库数据库端口号
master_user='root', #主库数据库账户
master_password='123456', #主库账户密码
master_log_file='mysql-bin.000007', #主库binlog日志文件名
master_log_pos=342; #主库binglog日志文件位置
9.开启主从同步操作
在从库执行
start replica; #8.0.22之前版本
start slave; #8.0.22之前版本
10.查看主从同步状态
在从库执行
showreplica status; #8.0.22之前版本
show slave status; #8.0.22之前版本