mysql一主两从部署
1,安装mysql
通过rpm包在三台服务器上安装mysql
(1).卸载系统自带的mysql
rpm -qa | grep -i mysql
rpm -e --nodeps [要卸载的mysql]
(2).安装
rpm包请修改相应的版本号
rpm -ivh mysql-community-common-5.7.44-1.el7.x86_64.rpm
rpm -ivh mysql-community-libs-5.7.44-1.el7.x86_64.rpm
rpm -ivh mysql-community-libs-compat-5.7.44-1.el7.x86_64.rpm
rpm -ivh mysql-community-client-5.7.44-1.el7.x86_64.rpm
rpm -ivh mysql-community-server-5.7.44-1.el7.x86_64.rpm --nodeps
rpm -ivh mysql-community-devel-5.7.44-1.el7.x86_64.rpm
4).查看初始密码
ggrep 'A temporary password' /var/log/mysqld.log | awk -F"root@localhost: " '{ print $2}'
(5).修改密码
/usr/bin/mysqladmin -u root -pjwsSTa-TL91Y password r9xhyH DcEFQE
d登录后执行更改命令
set password for root@localhost = password('9xhyHDcEFQE');
FLUSH PRIVILEGES;ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '9xhyHDcEFQE';
2,配置主服务器
1.编辑配置文件修改 MySQL 配置文件(/etc/my.cnf 或 /etc/mysql/my.cnf)以启用二进制日志和设置服务器 ID。
[mysqld]
server-id = 1
log-bin = /var/log/mysql/mysql-bin.log
binlog-format = STATEMENT
2.重启 MySQL 服务
sudo systemctl restart mysqld
或者
service mysqld start
3.创建复制用户登录 MySQL 并创建用于复制的用户。
密码自己根据情况设置
--CREATE USER 'replica_user'@'%' IDENTIFIED BY '9xhyHDcEFQE';
CREATE USER 'replica_user'@'%' IDENTIFIED BY 'password';
GRANT REPLICATION SLAVE ON . TO 'replica_user'@'%';
FLUSH PRIVILEGES;
4.获取主服务器状态记录主服务器的二进制日志文件名和位置,以便从服务器配置时使用。
SHOW MASTER STATUS;
- 配置从服务器(slave2 slave3)
1.编辑配置文件修改从服务器的 MySQL 配置文件以设置服务器 ID 和禁用二进制日志。
●与主库类似,设置server-id为不同的唯一值(如2、3)。
[mysqld]
server-id = 2
2.重启 MySQL 服务
sudo systemctl restart mysqld
3.配置从服务器登录 MySQL 并设置主服务器信息和复制用户。
CHANGE MASTER TO
MASTER_HOST='主服务器IP',
MASTER_USER='replica_user',
MASTER_PASSWORD='password',
MASTER_LOG_FILE='记录的日志文件名',
MASTER_LOG_POS=记录的日志位置;
CHANGE MASTER TO
MASTER_HOST='10.0.5.33',
MASTER_USER='replica_user',
MASTER_PASSWORD='9xh*yH*DcEFQE',
MASTER_LOG_FILE='mysql-bin.000087',
MASTER_LOG_POS=1403;
4.启动复制启动从服务器的复制进程。
START SLAVE;
5.检查复制状态确认从服务器是否成功连接并开始复制。
SHOW SLAVE STATUS ;
- 验证和测试
1.创建测试数据
a.在主服务器上创建一些测试数据并验证这些数据是否在从服务器上同步。
2.监控复制状态
a.使用 SHOW SLAVE STATUS; 检查是否有错误和延迟。 - 故障排除
●检查网络连接: 确保主从服务器之间的网络连接正常。
●查看日志: 检查 MySQL 错误日志文件以诊断问题。 - 安全和维护
1.配置防火墙
a.确保主服务器允许从服务器的 IP 地址访问 MySQL 端口(默认 3306)。
报错信息
Got fatal error 1236 from master when reading data from binary log: 'Could not find first log file name in binary log index file'
处理办法从库执行
stop slave;
CHANGE MASTER TO MASTER_LOG_FILE='mysql-bin.000003',MASTER_LOG_POS=156;
start slave;
show slave status;