阿里云 podman docker MySQL8 主从复制
2022/8/6 2:22:49
本文主要是介绍阿里云 podman docker MySQL8 主从复制,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
podman pull mysql mkdir -p /home/mysql/mysql-master/{data,log,conf} !!!删除当前目录下一切!!!慎用 rm -rf ./* 在conf目录下,新增my.cnf,这个是mysql本来就有的初始文件。之所以在宿主机也加, 是因为创建容器的时候,如果目录映射为空,容器内会报错找不到my.cnf而起不来 [mysqld] pid-file = /var/run/mysqld/mysqld.pid socket = /var/run/mysqld/mysqld.sock datadir = /var/lib/mysql secure-file-priv= NULL # Custom config should go here !includedir /etc/mysql/conf.d/ podman run \ -p 3306:3306 \ -e MYSQL_ROOT_PASSWORD=Sailorj5%5 \ -v /home/mysql/mysql-master/data:/var/lib/mysql:rw \ -v /home/mysql/mysql-master/log:/var/log/mysql:rw \ -v /home/mysql/mysql-master/conf/:/etc/mysql/conf.d:rw \ -v /home/mysql/mysql-master/my.cnf:/etc/mysql/my.cnf:rw \ -v /etc/localtime:/etc/localtime:ro \ --name mysql-master\ -d mysql podman logs -f --tail=100 mysql-master podman exec -ti mysql-master /bin/bash 登录mysql mysql -u root -p 或者 mysql -h localhost -u root -p mysql> select version(); MySQL版本号:8.0.15 使用mysql数据库 mysql> USE mysql; 修改密码 mysql> ALTER USER 'root'@'localhost' IDENTIFIED WITH MYSQL_NATIVE_PASSWORD BY 'Sailorj5%5'; Query OK, 0 rows affected (0.01 sec) 刷新 mysql> flush privileges; 验证是否修改成功 mysql -u root -p 输入新密码 mysql> USE mysql; 用Navicat连接数据库,开启root用户远程访问权限: mysql> CREATE USER 'root'@'%' IDENTIFIED BY '你的密码'; Query OK, 0 rows affected (0.01 sec) mysql> GRANT ALL ON *.* TO 'root'@'%'; Query OK, 0 rows affected (0.01 sec) mysql> ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY '你的密码'; 刷新 mysql> flush privileges; 创建从数据库 mkdir -p /home/mysql/mysql-slave/{data,log,conf} podman run \ -p 3307:3306 \ -e MYSQL_ROOT_PASSWORD=Sailorj5%5 \ -v /home/mysql/mysql-slave/data:/var/lib/mysql:rw \ -v /home/mysql/mysql-slave/log:/var/log/mysql:rw \ -v /home/mysql/mysql-slave/conf/:/etc/mysql/conf.d:rw \ -v /home/mysql/mysql-slave/my.cnf:/etc/mysql/my.cnf:rw \ -v /etc/localtime:/etc/localtime:ro \ --name mysql-slave\ -d mysql podman exec -ti mysql-slave /bin/bash 主从初始化启动成功,分别在外网3306接口、3307接口访问。 一、主库配置 USE mysql; CREATE USER 'copyuser'@'%' IDENTIFIED BY 'Sailorj5%5'; Grant replication slave on *.* to 'copyuser'@'%'; flush privileges; 建完后检查是否能远程登录 #主要server-id=1001和log-bin=mysql-bin,一定要配置,其它的可以没有 [mysqld] #主节点ID,确保唯一 server-id=1001 #开启mysql的binlog日志功能 log-bin=mysql-bin #控制数据库的binlog刷到磁盘上去 , 0 不控制,性能最好,1每次事物提交都会刷到日志文件中,性能最差,最安全 sync_binlog=1 #binlog日志格式 binlog_format=MIXED #binlog过期清理时间 expire_logs_days=7 #binlog每个日志文件大小 max_binlog_size=100m #binlog缓存大小 binlog_cache_size=4m #最大binlog缓存大小 max_binlog_cache_size=512m #不生成日志文件的数据库,多个忽略数据库可以用逗号拼接,或者 复制黏贴下述配置项,写多行 #binlog-ignore-db=mysql # 表中自增字段每次的偏移量 auto-increment-offset=1 # 表中自增字段每次的自增量 auto-increment-increment=1 #跳过从库错误 slave-skip-errors=all #指定同步数据库,多个库设置多行 #binlog-do-db=sys_user 重启主库 pm restart mysql-master 查看数据库是否启用二进制日志 Show variables like 'log_bin' 查看主机状态 show master status; 查看从机状态: show slave status\G; 查看ip hostname -I 二、从库配置 配置从数据库配置文件 [mysqld] server-id=1002 relay-log = /var/lib/mysql/mysql-relay binlog_format=MIXED #开启mysql的binlog日志功能 log-bin=mysql-bin ##表示slave将复制事件写进自己的二进制日志 log_slave_updates=1 ##slave设置为只读 #限定普通用户只读 read_only=1 #限定root只读 super_read_only=on #指定同步数据库,多个库设置多行 #replicate-do-db=rtmart_auth 1. reset slave; Stop slave; 主从复制的最关键语句: 2. Change master to Master_host='47.116.142.35', //主机的IP地址 Master_user='copyuser', Master_password='Sailorj5%5', Master_log_file='mysql-bin.000001', Master_log_pos=156; 3. Start slave; show slave status;
这篇关于阿里云 podman docker MySQL8 主从复制的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-12-07MySQL读写分离入门:轻松掌握数据库读写分离技术
- 2024-12-07MySQL读写分离入门教程
- 2024-12-07MySQL分库分表入门详解
- 2024-12-07MySQL分库分表入门指南
- 2024-12-07MySQL慢查询入门:快速掌握性能优化技巧
- 2024-12-07MySQL入门:新手必读的简单教程
- 2024-12-07MySQL入门:从零开始学习MySQL数据库
- 2024-12-07MySQL索引入门:新手快速掌握MySQL索引技巧
- 2024-12-06BinLog学习:MySQL数据库BinLog入门教程
- 2024-12-06Binlog学习:MySQL数据库的日志管理入门教程