轻松在Linux搭建MySQL镜像库,高效数据备份让运维更安心

文章导读
在Linux上搭建MySQL镜像库的最简单方法是使用MySQL的内置主从复制功能。首先,确保主库MySQL已开启binlog,编辑/etc/my.cnf添加server-id=1,log-bin=mysql-bin,binlog_format=ROW。然后重启MySQL服务。在从库上同样编辑my.cnf设置server-id=2,relay-log=relay-log,之后创建复制用户:在主库执行
📋 目录
  1. 第一篇来源内容
  2. 第二篇来源内容
  3. 第三篇来源内容
  4. 第四篇来源内容
  5. 第五篇来源内容
  6. 第六篇来源内容
A A

在Linux上搭建MySQL镜像库的最简单方法是使用MySQL的内置主从复制功能。首先,确保主库MySQL已开启binlog,编辑/etc/my.cnf添加server-id=1,log-bin=mysql-bin,binlog_format=ROW。然后重启MySQL服务。在从库上同样编辑my.cnf设置server-id=2,relay-log=relay-log,之后创建复制用户:在主库执行GRANT REPLICATION SLAVE ON *.* TO 'repl'@'%' IDENTIFIED BY 'password'; FLUSH PRIVILEGES;。获取主库状态:SHOW MASTER STATUS; 记录File和Position。从库执行CHANGE MASTER TO MASTER_HOST='主库IP',MASTER_USER='repl',MASTER_PASSWORD='password',MASTER_LOG_FILE='记录的File',MASTER_LOG_POS=记录的Position; 然后START SLAVE; 检查SHOW SLAVE STATUS\G; 看到Slave_IO_Running: Yes和Slave_SQL_Running: Yes就成功了。这样数据实时同步,备份超级安心。

第一篇来源内容

搭建MySQL主从复制环境,主库配置:vi /etc/my.cnf [mysqld] server-id=1 log-bin=mysql-bin binlog_format=ROW expire_logs_days=7 从库配置类似,server-id=2 relay-log=mysql-relay。主库创建用户:CREATE USER 'backup'@'%' IDENTIFIED BY 'backup'; GRANT REPLICATION SLAVE,REPLICATION CLIENT ON *.* TO 'backup'@'%'; 主库授权后,执行stop slave; reset slave; change master to master_host='192.168.1.100',master_user='backup',master_password='backup',master_log_file='mysql-bin.000001',master_log_pos=154; start slave; 验证slave状态,一切正常即可。

第二篇来源内容

在CentOS上安装MySQL:yum install mysql-server -y 服务启动systemctl start mysqld。主从配置主库my.cnf:server-id=1 log_bin=/var/lib/mysql/mysql-bin binlog_format=mixed。从库server-id=2 relay-log=/var/lib/mysql/relay-bin。主库show master status; 从库change master to master_host='主IP', master_port=3306, master_user='slave', master_password='123456', master_log_file='mysql-bin.000007', master_log_pos=678; start slave; 这样镜像库就建好了,数据备份无忧。

轻松在Linux搭建MySQL镜像库,高效数据备份让运维更安心

第三篇来源内容

高效备份用mysqldump配合主从:mysqldump -u root -p --single-transaction --master-data=2 --flush-logs --all-databases > backup.sql。从库直接读取主库binlog恢复,超级快。搭建步骤:1.主库开启binlog 2.从库设置relay 3.授权复制用户 4.从库连接主库 5.启动slave。运维每天检查slave状态脚本:mysql -e "SHOW SLAVE STATUS\G" | grep -E "(Slave_IO_Running|Slave_SQL_Running)"。

第四篇来源内容

Ubuntu下apt-get install mysql-server。主库/etc/mysql/mysql.conf.d/mysqld.cnf bind-address=0.0.0.0 server-id=1 log_bin=/var/log/mysql/mysql-bin.log。从库server-id=2 relay_log=/var/log/mysql/relay-bin。mysql -uroot -p -e"GRANT REPLICATION SLAVE ON *.* TO repl@'%' IDENTIFIED BY 'pass';" 从库:stop slave; change master to ... start slave; 轻松搞定镜像备份。

第五篇来源内容

数据备份脚本:#!/bin/bash mysqldump -uuser -ppass --all-databases --master-data=2 --single-transaction --flush-logs | gzip > /backup/mysql_$(date +%Y%m%d).sql.gz 结合主从,定期从从库dump,避免主库压力。搭建镜像:确保防火墙开放3306,selinux permissive,主从server-id不同,binlog同步开启。

轻松在Linux搭建MySQL镜像库,高效数据备份让运维更安心

第六篇来源内容

常见问题解决:Slave_IO_Running: No,检查网络、主库IP、用户权限。Got fatal error 1236 from master when reading data from binary log,Position不对,重置。主从延迟大,优化innodb_flush_log_at_trx_commit=2。总之,镜像库让备份高效可靠。

FAQ
Q: 主从同步失败怎么处理?
A: 检查SHOW SLAVE STATUS\G,看错误信息,常见是密码错或pos不对,重change master。
Q: 怎么备份大表?
A: 用--single-transaction从从库dump,主库不锁表。
Q: server-id怎么设置?
A: 主1从2,不能一样,全局唯一。
Q: 防火墙怎么开3306?
A: firewall-cmd --add-port=3306/tcp --permanent; firewall-cmd --reload。