mysql主從及讀寫分離
主從同步
1 主配置
把237配置為主數據庫服務器
授權用戶從42數據庫服務器連接自己的時候有拷貝數據的權限
grant replication slave on *.* to [email protected]"172.40.7.42" identified by "123456";
vim /etc/my.cnf
[mysqld]
server_id=237
log-bin=master #必須開啟
:wq
service mysql restart
show master status;
2 查看日誌文件,日誌偏移量(從服務器上用)
配置從數據庫服務器 42
驗證是否能夠使用授權用戶連接主數據庫服務器
mysql -h172.40.7.237 -uslaveuser -p123456
vim /etc/my.cnf
[mysqld]
server_id=42
log-bin=slave #可選項
:wq
service mysql restart
使用自己的數據庫管理員登錄 ,配置自己做237的從數據庫 服務器。
change master to master_host="172.40.7.237",master_user="slaveuser",master_password="123456",master_log_file="master.000001",master_log_pos=120;
start slave;
show slave status\G;
Slave_IO_Running: YES
Slave_SQL_Running: YES
驗證?
主從同步工作過程?
cd /var/lib/mysql/
master.info 主數據庫服務器的信息
relay-log.info 中繼日誌信息
www-relay-bin.000000 中繼binlog日誌文件
www-relay-bin.index 記錄當前已有的中繼binlog日誌文件名
Slave_IO_Running: YES
拷貝 master binlog sql語句 -> relaybinlog
錯誤:1 change master to 配置信息錯誤
2 物理連接不通
Last_IO_Errno: 0
Last_IO_Error: 錯誤信息
stop slave;
change master to master_host="172.40.7.237",master_user="slaveuser",master_password="123456",master_log_file="master.000001",master_log_pos=120;
start slave;
Slave_SQL_Running: YES
執行本機relaybinlog日誌裏sql語句,把數據寫進本 機數據庫裏。
錯誤:執行本機relaybinlog日誌裏sql語句時,使用的庫或表不 存在。
查看錯誤信息
Last_SQL_Errno: 錯誤編號
Last_SQL_Error: 錯誤信息
3 mysql主從同步結構模式?
一主一從
一主多從
主(從)從 vim /etc/my.cnf
[mysqld]
log-slave-updates
:wq
4 mysql主從同步配置常用參數
vim /etc/my.cnf
主數據庫服務器端的配置參數
binlog-do-db=mysql, studb 只允許從數據庫服務器同步自己的哪些庫
binlog-ignore-db=test, db1 不允許從數據庫服務器同步自己的哪些庫
----------------------------------------------------------------
從數據庫服務器端的配置參數
replicate-do-db=mysql, studb 只同步主數據庫服務器上哪些庫
replicate-ignore-db=test,db1 不同步主數據庫服務器上哪些庫
relay-log=dbsvr2-relay-bin 設置relaybinlog日誌文件名
log-slave-updates 允許級聯復制
十二:配置mysql讀寫分離功能
1 安裝
yum -y install lua
tar -zxvf mysql-proxy-tar.gz
mv mysql-proxy-0.8.3-linux-rhel5-x86-64bit/ /usr/local/mysqlproxy
cd /usr/local/mysqlproxy/share/doc/mysql-proxy/
chmod +x rw-splitting.lua
2 啟動
啟動代理服務
/usr/local/mysqlproxy/bin/mysql-proxy --help
/usr/local/mysqlproxy/bin/mysql-proxy -P 172.40.7.77:3306(虛擬vip) -r 172.40.7.42:3306 -b 172.40.7.237:3306 -s /usr/local/mysqlproxy/share/doc/mysql-proxy/rw-splitting.lua &
本文出自 “13262050” 博客,請務必保留此出處http://13272050.blog.51cto.com/13262050/1962626
mysql主從及讀寫分離