MYSQL主从实战及读写分离
1. MYSQL主从原理
1) 至少需要2台数据库服务器,一主一从,Master开启bin-log功能用于记录主库增加、删除、修改、更新SQL语句。
2) 异步复制过程,有延迟,毫秒级别,开启三个线程。分别是Master开启IO线程,SLAVE开启IO线程、SQL线程。
3) 丛库启动salve start,通过IO线程、用户名和密码去连接MASTER,MASTER IO线程负责将bin-log内容、Position位置点数据发给SLAVE。
4) SLAVEIO线程收到数据之后,会将内容追加到本地relay-log中继日志,同时会生产master.info文件(这次从哪台机器同步,用户名、密码、bin-log文件名、position位置)。
5) SLAVESQL线程实时监测relay-log内容有更新,解析文件中的SQL语句,在本地去执行。
2. MYSQL主从构建
1) Master配置文件中开启bin-log,设置server-id。
2) 授权同步用户和密码;
grant replication slave on *.* to 'tongbu'@'%' identified by '123456'; |
3) Slave执行change master绑定主库;
change master to master_host='192.168.111.128',master_user='tongbu',master_password='123456',master_log_file='mysql-bin.000003',master_log_pos=351; slave start; show slave status\G |
3. 数据库连接错误
1) 看错误日志;
Discuz! Database Error
2) 数据库服务是否正常;
ps -ef |grep mysql;
3) 防火墙、Selinux是否有限制;
4) 查看数据库权限;
5) 查看数据是否完整;
读写分离 三个插件 从从库读,从主库写
Amoeba 读写分离
mysql-proxy 读写分离
mycat 读写分离
mysql-proxy 配置
SHELL编程、APACHE、redis、MYSQL主从、读写分离、Zabbix、Nginx、动静分离、负载均衡。