什么是主从搭建
主从同步使得数据可以从一个数据库服务器复制到其他的服务器上。在复制数据时,一个服务器充当主服务器(master),其余的服务器充当从服务器(slave)。
利用主从数据库来实现读写分离,从而分担主数据库的压力。在多个服务器上部署mysql,将其中一台认为主数据库,而其他为从数据库,实现主从同步。其中主数据库负责主动写的操作,而从数据库则只负责主动读的操作(slave从数据库仍然会被动的进行写操作,为了保持数据一致性),这样就可以很大程度上的避免数据丢失的问题,同时也可减少数据库的连接,减轻主数据库的负载。
通过配置文件,可以实现所有数据库,指定数据库 ,指定数据库的表,进行复制。
主从同步的好处:
通过增加从服务器来提高数据库的性能。主库执行写入和更新,从库执行读取,动态增加从服务器,提高数据库系统性能。
提高数据的安全性。使用从服务器,备份数据库,而不破坏服务器上的数据。
在主库生成数据,在从库分析数据,提高主库的性能。
主从搭建
主
我们安装好mysql后,会有一个my.cnf
找到my.cnf
find / -name my.cnf
进入文件内部,在mysqld下面加上两句话
重启我们的mysql服务
systemctl restart mysqld
每台服务器上面默认都是主机
进入mysql里
mysql -uroot -p
查看主机状态
show master status;
从
进入my.cnf文件里
注意,id是不能和主机一样的
重启mysql
systemctl restart mysqld
进入数据库里查看数据库的状态
mysql -uroot -proot
查看mysql状态
show master status;
配置ip100的mysql成为ip99的从
change master to master_host='192.168.184.34',master_port=3306,master_user='root',master_password='root',master_log_file='mysql-bin.000001',master_log_pos=154;
启动从机
start slave;
查看从机的状态
show slave status/G;
这里报错是正常的,因为从机里的东西都是克隆主机的,所以我们只需要把生成的uuid这个文件删除就行
rm -rf /var/lib/mysql/auto.cnf
关闭从机
stop slave
重启从机
reset slave
再次查看从机状态
show slave status/G;
到这里,主从搭建就完成了
可以去测试一下,创建一个数据库在创建一张表,主从mysql里都能查出来