Mysql-主从数据库配置
两台linux服务器,修改主机名为mysql1,mysql2
1.修改主机名
服务器1
1 hostname mysql1
服务器2
1 hostname mysql2
2.关闭防火墙及SElinux服务
mysql1
1 setenforce 0 2 systemctl stop firewalld
mysql2
1 setenforce 0 2 systemctl stop firewalld
3.配置hosts文件
mysql1
1 vim /etc/hosts 3 192.168.223.4 mysql1 #ip 服务器实际ip 4 192.168.223.3 mysql2
mysql2
1 vim /etc/hosts 3 192.168.223.4 mysql1 4 192.168.223.3 mysql2
4.安装mysql数据库
Mysql-Linux 环境下部署 - tan253 - 博客园 (cnblogs.com)
5.重启mysql服务
systemctl restart mysqld.service
6.配置主从服务
6.1 mysql1
1 vim /etc/my.cnf
1 log_bin = mysql-bin #记录操作日志 2 binlog_ignore_db = mysql #不同步mysql系统数据库 3 server_id = 3 #数据库集群中的每个节点id都要不同,一般使用IP地址的最后段的数字,例如192.168.200.3,server_id就写3
重启数据库
1 systemctl restart mysqld.service
登录后主节点授权
1 grant REPLICATION CLIENT ON *.* TO user; 2 grant REPLICATION SLAVE ON *.* TO user; 3 grant SUPER ON *.* TO user; 4 grant reload on *.* to user; 5 FLUSH PRIVILEGES ;
6.2 mysql2
1 vim /etc/my.cnf
1 log_bin = mysql-bin #记录操作日志 2 binlog_ignore_db = mysql #不同步mysql系统数据库 3 server_id = 4 #数据库集群中的每个节点id都要不同,一般使用IP地址的最后段的数字,例如192.168.200.3,server_id就写3
重启数据库
1 systemctl restart mysqld.service
登录配置从节点连接主节点的连接信息
1 change master to master_host='mysql1',master_user='user',master_password='000000';
从节点服务开启
1 start slave;
使用show slave status\G命令,并查看从节点服务状态,如果Slave_IO_Running和Slave_SQL_Running的状态都为YES,
1 show slave status\G
###备注
1.虚拟化中直接复制的带数据库的服务器 修改,否则会报错
1 vim /var/lib/mysql/auto.cnf
2.MySQL主从同步故障:Slave_SQL_Running:No
2.1首先停掉Slave服务:slave stop
到主服务器上查看主机状态:
记录File和Position对应的值
进入主节点
1 show master status;
1 change master to 2 master_host='mysql1', 3 master_user='user', 4 master_password='****', 5 master_port=3306, 6 master_log_file='mysql-bin.000006',#对应值 7 master_log_pos=157;#对应值