MySQL主从配置
一、主的配置
基础配置
# vi /etc/my.cnf

# /etc/init.d/mysqld restart 重启MySQL服务

查看# ll /data/mysql/

# vim /etc/profile

export PATH=$PATH:/usr/local/mysql/bin 在后面加上
# source /etc/profile
# mysqldump -uroot mysql > /tmp/mysql.sql
备份mysql库(加入环境变量)
# mysql -uroot -e "create database kei"
创建一个库保存数据
# mysql -uroot kei < /tmp/mysql.sql
将mysql库恢复成新建的库,作为测试数据
数据库配置
# mysql -uroot
进入数据库(没有密码)
> grant replication slave on *.* to 'repl' @192.168.157.148 identified by '123456';
创建用作同步数据的用户并赋予权限,IP地址为从节点的地址(replication是MySQL非常出色的一个功能,该功能将一个MySQL实例中的数据复制到另一个MySQL实例中。)

> flush tables with read lock;
将表锁住,保持表内数据不变

> show master status;
显示主机状态

二、从的配置
# vi /etc/my.cnf

只配置server_id=132 注意: 和主的id不一样
# /etc/init.d/mysqld restart 重启MySQL服务

# vim /etc/profile

export PATH=$PATH:/usr/local/mysql/bin 在后面加上
# scp /tmp/mysql.sql root@192.168.157.148:/tmp/
在主上将文件拷贝到从上,并在从上查看文件大小是否一致

# mysql -uroot -e "create database kei"
//创建一个和主一样的库
# mysql -uroot kei < /tmp/mysql.sql
将文件内容导入库
数据库配置
# mysql -uroot
mysql> stop slave;
进入数据库(没有密码)(698861为show master status;中的大小)
> change master to master_host='192.168.37.12',master_user='repl',master_password='123456',master_log_file='linux1.000001',master_log_pos=698861;
mysql> start slave;

start slave;

关闭防火墙和selinux
# systemctl stop firewalld
# setenforce 0
mysql> stop slave; 关闭
进入数据库(没有密码)(698861为show master status;中的大小)
change master to master_host='192.168.157.147',master_user='repl',master_password='123456',master_log_file='linux1.000001',master_log_pos= 658738;

mysql> start slave; 启用

mysql> show slave status\G

> unlock tables;

从上操作
> show slave status\G;
在从上执行命令,查看(将防火墙关闭)

主、从同时操作
mysql> use kei;
mysql> show tables;
mysql> select count(*) from db;
主:


从:


主上操作,删除数据
mysql> truncate table db;

mysql> select count(*) from db;

从上查看数据
mysql> select count(*) from db;

六、 测试主从
主服务器上
# mysql -uroot -p密码
在主上进入数据库
> select count(*) from db;
> truncate table db;

从服务器上
# mysql -uroot kei
在从上进入数据库
> select count(*) from db;


浙公网安备 33010602011771号