### 4.2.1 Master配置
1)my.cnf 配置
~~~
#vi /etc/mysql/my.cnf
[mysqld]
log-bin=mysql-bin //[必須]啟用二進制日志
server-id=140 //[必須]服務器唯一ID,默認是1,一般取IP最后一段
~~~
2)重啟mysql
~~~
sudo /etc/init.d/mysql restart
~~~
3)在主服務器上建立帳戶并授權slave
~~~
#mysql –u root –p 123456
mysql>GRANT REPLICATION SLAVE ON *.* to 'mysync'@'%' identified by '123456';
//一般不用root帳號,“%”表示所有客戶端都可能連,只要帳號,密碼正確,此處可用具體客戶端IP代替,如192.168.245.139,加強安全。
~~~
4) 登錄mysql,查詢master的狀態
~~~
mysql>show master status;
+------------------+----------+--------------+------------------+
| File | Position | Binlog_Do_DB | Binlog_Ignore_DB |
+------------------+----------+--------------+------------------+
| mysql-bin.000004 | 308 | | |
+------------------+----------+--------------+------------------+
1 row in set (0.00 sec)
~~~
注:執行完此步驟后不要再操作主服務器MYSQL,防止主服務器狀態值變化。
### 4.2.2 Slave配置
1)my.cnf配置
~~~
#vi /etc/mysql/my.cnf
[mysqld]
log-bin=mysql-bin //[必須]啟用二進制日志
server-id=139 //[必須]服務器唯一ID,默認是1,一般取IP最后一段
~~~
2)重啟mysql
~~~
sudo /etc/init.d/mysql restart
~~~
3)配置從服務器Slave:
~~~
mysql>change master to master_host='192.168.245.140',master_user='mysync',master_password='123456',master_log_file='mysql-bin.000004',master_log_pos=308; //注意不要斷開,“308”無單引號。M
ysql>start slave; //啟動從服務器復制功能
~~~
4) 檢查從服務器復制功能狀態:
~~~
mysql> show slave status\G
*************************** 1. row ***************************
Slave_IO_State: Waiting for master to send event
Master_Host: 192.168.245.140
Master_User: root
Master_Port: 3306
Connect_Retry: 60
Master_Log_File: mysql-bin.000003
Read_Master_Log_Pos: 5669
Relay_Log_File: mysqld-relay-bin.000002
Relay_Log_Pos: 5482
Relay_Master_Log_File: mysql-bin.000003
Slave_IO_Running: Yes
Slave_SQL_Running: Yes
Replicate_Do_DB:
Replicate_Ignore_DB:
Replicate_Do_Table:
Replicate_Ignore_Table:
Replicate_Wild_Do_Table:
Replicate_Wild_Ignore_Table:
Last_Errno: 0
Last_Error:
Skip_Counter: 0
Exec_Master_Log_Pos: 5669
Relay_Log_Space: 5639
Until_Condition: None
Until_Log_File:
Until_Log_Pos: 0
Master_SSL_Allowed: No
Master_SSL_CA_File:
Master_SSL_CA_Path:
Master_SSL_Cert:
Master_SSL_Cipher:
Master_SSL_Key:
Seconds_Behind_Master: 0
Master_SSL_Verify_Server_Cert: No
Last_IO_Errno: 0
Last_IO_Error:
Last_SQL_Errno: 0
Last_SQL_Error:
Replicate_Ignore_Server_Ids:
Master_Server_Id: 140
1 row in set (0.00 sec)
~~~
注:Slave\_IO及Slave\_SQL進程必須正常運行,即YES狀態,否則都是錯誤的狀態。
## 4.3 主從服務器測試
???主服務器Mysql,建立數據庫,并在這個庫中建表插入一條數據,觀看從庫是否也增加了相應的數據庫、數據表、數據。
- 簡介
- Cookie
- HTML5 LocalStorage
- session
- 當瀏覽器關閉后,Session就銷毀了嗎?
- mysql數據庫保存session
- HTTP協議的由來
- fsockopen異步請求
- http防盜鏈
- Apache偽靜態知識補充
- 大并發量解決方案
- 大型網站是怎樣解決多用戶高并發訪問
- 網站高并發 大流量訪問的處理及解決方法
- 并發數與在線客戶數?注冊用戶數的關系
- 即時聊天程序
- 反向Ajax實現
- ob緩存作用
- 淺聊并發之戰
- php擴展安裝
- php安裝redis擴展
- SQLMap自動化實施SQL注入共計
- 命名空間namespace
- 集群和分布式之【session共享】
- php Redis存儲Session 【1】
- php Redis存儲Session 【2】
- php mysql存儲session【1】
- php緩存
- 文件緩存
- memcache和redis的比較
- 原生session與session in redis對比
- XSS攻擊【1】
- XSS攻擊【2】
- PHP消息隊列
- php+mysql 模擬發送郵件隊列
- php+mysql 模擬訂單處理隊列
- php+redis 模擬秒殺隊列
- RabbitMQ 消息隊列系統
- beanstalkd
- PHP構建即時通訊
- WebSocket協議
- workerman
- PHP變量的作用域
- PHP傳值和傳引用的區別
- PHP匿名函數
- PHP遞歸函數&應用
- PHP單例模式
- PHP性能優化
- RESTful
- 集群
- 增加pgsql擴展
- php.ini路徑查找
- Swoole Compiler
- mysql 主從
- 主從
- mysql-proxy
- window docker環境