通過讀寫分離 、數(shù)據(jù)備份、負載均衡最終體現(xiàn)效率? ?
實際開發(fā)中较坛,至少要有兩臺服務器
client: 客戶端C? ? ? ? sever:服務器S
master:主服務器? ? ? ? slave:從服務器
從隨主變
至少兩臺服務器的作用:主服務器上的所有數(shù)據(jù)備份到從服務器
手動備份:麻煩印蔗,不可取丑勤;
解決方法:主服務器與從服務器進行關聯(lián)华嘹,從服務器自動向主服務器請求數(shù)據(jù)(從隨主變)
防止丟失
不管主、從誰掛了法竞,數(shù)據(jù)都不會丟失
負載均衡?
一臺從不夠耙厚,多幾臺,更新在主里岔霸,查看是部分在從薛躬,部分在另一個從,效率快
MySQL主從同步配置
1. 主從同步的定義
主從同步使得數(shù)據(jù)可以從一個數(shù)據(jù)庫服務器復制到其他服務器上
2. 主從同步的機制(?Master:主服務器? ? ? ? Slave:從服務器)
主從核心點:
write時——>Master里會有數(shù)據(jù)——>Date changes會記錄——>向二進制的log文件寫入如何改的呆细、改了什么——>從服務器需要配置——>用I/O thread多線程的方式進行I/O操作(讀-寫型宝、網(wǎng)絡收-發(fā))——>拿到數(shù)據(jù)——>把拿到的數(shù)據(jù)與之前的比對——>進行更改——>數(shù)據(jù)一致
完成主從要點:
1.? ? 配置主服務器log文件
2.? ? 給主、從分別配置唯一的序列號絮爷,并用命令告訴主應改把誰當成主服務器從而去那里不斷請求趴酣,這時就同步了
如何導數(shù)據(jù)?
windows為主坑夯,Ubuntu為從的配置
配置主:
打開C:\ProgramData\MySQL\MySQL Server 5.7\my.ini
改為與圖片相符
重啟服務:?home鍵——>搜索服務——>找到MySQL57——>右鍵——>重新啟動
配置從:
-- 編輯設置mysqld的配置文件岖寞,設置log_bin和server-id
sudo vi /etc/mysql/mysql.conf.d/mysqld.cnf
-- 上面不好使用這個(記得權限:sudo chmod 777 /etc/mysql/mysql.conf.d/mysqld.cnf)
gedit /etc/mysql/mysql.conf.d/mysqld.cnf
改為與下圖一樣
-- 修改之后重啟mysql服務
sudo service mysql restart
-- 登入主服務器Windows中的mysql,給從服務器同步數(shù)據(jù)添加的帳號
-- 登錄主服務器
mysql –uroot –p2361559775
-- REPLICATION SLAVE:可以讓從服務器在主服務器復制? ON:哪一個數(shù)據(jù)庫的哪一個表 *.*:所有的數(shù)據(jù)庫所有的表 to:給誰 'slave':新用戶名 '%':任意一臺機器登錄 最后一個引號里是密碼
GRANT REPLICATION SLAVE ON *.* TO 'slave'@'%' identified by 'slave';
-- 刷新權限才可以
FLUSH PRIVILEGES;
-- 用來找master_log_file和master_log_pos的值
show master status;
-- 查找ip(master_host的值)
ipconfig
-- (從)進入Ubuntu的mysql柜蜈,設置連接到master主服務器(賬戶仗谆、密碼必須和剛剛創(chuàng)建的一一對應)master_log_file的值復制剛剛查到的file的值、 master_log_pos的值復制查到的Position的值
change master to master_host='192.168.57.1', master_user='slave', master_password='slave',master_log_file='LAPTOP-5VF2SFCR-bin.000001', master_log_pos=600;