环境情况:
主库:172.16.55.193:3308
# my.cnf
[mysqld]
pid-file = /var/run/mysqld/mysqld.pid
socket = /var/run/mysqld/mysqld.sock
datadir = /var/lib/mysql
secure-file-priv= NULL
# Disabling symbolic-links is recommended to prevent assorted security risks
symbolic-links=0
# Custom config should go here
!includedir /etc/mysql/conf.d/
lower_case_table_names=1
sql_mode=STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION
default-time-zone='+08:00'
max_allowed_packet=500M
max_connections=10000
expire_logs_days=5
innodb_buffer_pool_size=1073741824
temptable_max_mmap=10737418240
server_id=10
gtid_mode=0
enforce-gtid-consistency=0
enforce_gtid_consistency=0
binlog_gtid_simple_recovery=0
从库:172.16.180.100:3308
# my.cnf
[mysqld]
pid-file = /var/run/mysqld/mysqld.pid
socket = /var/run/mysqld/mysqld.sock
datadir = /var/lib/mysql
secure-file-priv= NULL
# Disabling symbolic-links is recommended to prevent assorted security risks
symbolic-links=0
# Custom config should go here
!includedir /etc/mysql/conf.d/
lower_case_table_names=1
sql_mode=STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION
default-time-zone='+08:00'
max_allowed_packet=500M
max_connections=10000
expire_logs_days=1
innodb_buffer_pool_size=1073741824
temptable_max_mmap=10737418240
server_id=20
# 从库做好之后打开
# read_only = 1
# super_read_only = 1
gtid_mode=0
enforce_gtid_consistency=0
binlog_gtid_simple_recovery=0
一、主库操作:
备份数据库:
mysqldump -uroot -pxxxx -h172.16.55.193 -P3307 --all-databases --source-data=2 --single-transaction --triggers --routines --events --hex-blob --flush-logs > alldb.sql
选项说明:
-uroot:指定数据库的用户名,这里是root用户。-pxxxx:指定root用户的密码,这里xxxx代表密码(实际使用时要替换为密码)。-h172.16.55.193:指定 MySQL 数据库服务器的 IP 地址为172.16.55.193。-P3307:指定 MySQL 数据库服务的端口号为3307。--all-databases:表示备份所有数据库,而不仅仅是特定的数据库。--source-data=2:这通常用于指示mysqldump如何处理源数据(如如何处理长时间运行的查询)。在此例中,它可能是某个特定选项,但它并不常见,具体功能可参考文档。--single-transaction:在执行备份时,使用一个单独的事务进行备份。这可以确保数据一致性,并避免在备份期间进行修改操作,通常用于 InnoDB 存储引擎的表。--triggers:包括数据库中的触发器(Triggers)在备份文件中。--routines:包括存储过程(Stored Procedures)和存储函数(Stored Functions)在备份文件中。--events:包括事件调度程序(Event Scheduler)中的事件。--hex-blob:使mysqldump将二进制大对象(BLOB)类型的数据以十六进制格式导出,以避免乱码或编码问题。--flush-logs:备份之前,刷新 MySQL 的日志文件,生成一个新的日志文件。这对审计和日志管理非常有用。
二、恢复从库:
mysql -h172.16.180.100 -P 3308 -pxxxx < alldb.sql -f
三、主从配置
查看备份文件 记录数据
less alldb.sql
记录下面两个值:
MASTER_LOG_FILE='binlog.000033'
MASTER_LOG_POS=197

拼接从库用于连接主库的sql
# 连接主库
change master to
master_host='172.16.55.193',
master_user='root',
master_password='xxxx',
master_port=3308,
master_log_file='binlog.000033',
master_log_pos=197;
# 启动从库
start slave;
# 查看从库状态
show slave status \G
这样从库就配置好了

接下来再把前面my.cnf里的 read only 开起来即可
read_only = 1
super_read_only = 1
配置数据库高可用,可见我另一篇文档:
原创内容 未经允许 禁止转载
原创内容 未经允许 禁止转载
原创内容 未经允许 禁止转载
69万+

被折叠的 条评论
为什么被折叠?



