mysql的主从复制,是用来建立一个和主数据库完全一样的数据库环境,称为从数据库,主数据库一般是实时的业务数据操作,从数据库常用的读取为主。
优点主要有
1,可以作为备用数据库进行操作,当主数据库出现故障之后,从数据库可以替代主数据库继续工作,不影响业务流程
2,读写分离,将读和写应用在不同的数据库与服务器上。一般读写的数据库环境配置为,一个写入的数据库,一个或多个读的数据库,各个数据库分别位于不同的服务器上,充分利用服务器性能和数据库性能;当然,其中会涉及到如何保证读写数据库的数据一致,这个就可以利用主从复制技术来完成。
3,吞吐量较大,业务的查询较多,并发与负载较大。
具体操作步骤:
两台虚拟机同时开启mysql:
cd /data/server/mysql
cd support-files
./mysql.server start
开启时间同步:
service ntpd start
date
主机配置:
关闭防火墙:
systemctl stop firewalld
setenforce 0
cd mysql
vim my.cnf
在[mysql]下添加:
server-id=1
log-bin=mysql-bin
重启数据库:
cd support-files
./mysql.server restart
报错就杀掉进程再重启
再报错就删除文件:
rm -rf my.cnf
到mysql下的data
cd data
rm -rf *
cd …
scripts/mysql_install_db --defaults-file=./my.cnf --user=mysql
cd support-files
./mysql.server restart
主库添加从库账号:
cd …
cd bin
./mysql -uroot -p
输入:
#新建用于主从同步的用户chaoge,允许登录的从库
create user ‘chaoge’@‘从IP地址’ identified by ‘redhat’;
#给从库账号授权,说明给chaoge从库复制的权限
grant replication slave on . to ‘chaoge’@‘从IP地址’;
#检查主库创建的复制账号
select user,host from mysql.user;
#检查授权账号的权限
show grants for chaoge@‘从IP地址’;
#检查主库的状态
show master status;
从机配置:
cd mysql
vim my.cnf
在[mysql]下添加:
server-id=3
重启数据库:
cd support-files
./mysql.server restart
cd …
cd bin
./mysql -uroot -p
检查Slava从数据库的参数
show variables like ‘server_id’;
配置复制的参数,Slave从库连接Master主库的配置
mysql > change master to master_host=‘主ip地址’,
master_user=‘chaoge’,
master_password=‘redhat’,
master_log_file=‘mysql-bin.000001’,
master_log_pos=575;
最后两项主机显示什么等号后面就输入对应信息
启动从库的同步开关,测试主从复制的情况
start slave;
查看复制状态
show slave status\G;
里面两项 Slave_IO_Running: Yes
Slave_SQL_Running: Yes
即成功
(主机创建数据库文件create database 文件名
show databases;
去从机查看:
show databases;
如需删除该文件 ,进入主机:
drop database 文件名
主机从机查看show databases;)