Mysql 讀寫分離php
YIi 配置mysql
<?php return [ 'class' => 'yii\db\Connection', 'masterConfig' => [ // 'dsn' => 'mysql:host=localhost;dbname=studyyii', 'username' => 'root', 'password' => 'caesar', 'charset' => 'utf8', 'attributes' => [ // use a smaller connection timeout PDO::ATTR_TIMEOUT => 10, ], ], // 配置主服務器組 'masters' => [ ['dsn' => 'mysql:host=172.31.80.31;dbname=studyyii'], // ['dsn' => 'dsn for master server 2'], ], // 配置從服務器 'slaveConfig' => [ 'username' => 'root', 'password' => 'root', 'charset' => 'utf8', 'attributes' => [ // use a smaller connection timeout PDO::ATTR_TIMEOUT => 10, ], ], // 配置從服務器組 'slaves' => [ ['dsn' => 'mysql:host=localhost;dbname=studyyii'], ], ];
Linux mysql master linux
My.cnf:sql
server_id = 1 #從服務器標識,範圍1---2E32-1 log_bin = mysql_bin binlog_do_db = studyyii binlog_do_db = mysql
#mysql service restart數據庫
windows mysql slavewindows
mysql.ini:服務器
[mysqld] port=3306 server-id = 2 replicate-do-db = study
重啓mysql yii
登錄mysqlide
mysql> stop slave;spa
mysql> change master to master_host='192.168.1.200',master_user='root',master_password='123456';
mysql> start slave;
mysql> show slave status\G;
查看這兩項是否爲YES,yes爲正常。
Slave_IO_Running: Yes
Slave_SQL_Running: Yes
Ok 了 讀寫分離,主從同步
Mysql –master linux-slave
My.ini:
Server-id=1 relay-log=relay-bin relay-log-index=relay-bin-index binlog-do-db = studyyii
重啓服務器
登錄mysql
Mysql –u root –p
在主數據庫創建slave鏈接的權限:
mysql> grant replication slave,reload,super on *.* to 'root'@'172.31.80.31' iden
tified by 'root';
(root爲鏈接的帳號,IP 和密碼)
Show master status;
記住,之前我沒設置權限,顯示的position爲120 一直由於沒開權限麼啓動
至此,Windows mysql master 設置完畢
2、打開Linux mysql
Vi /etc/my.cnf #根據你服務器MySQL的設置來編輯,編輯mysql的配置文件
在MySQLd下面添加配置:
:wq 保存退出
Service mysql restart #個人mysql是5.6.23 已經添加爲系統服務,其它一下版本是mysqld ,反正就是重啓mysql,根據本身的配置來
Mysql –u root –p #鏈接mysql
設置鏈接:
change master to master_host='172.31.80.26',master_user='root',master_password='root', master_log_file='mysql-bin.000014',mas14',master_log_pos=344;
#鏈接的帳戶 IP 密碼爲mastermysql的。Master_log_file 和log_pos 爲前期Windows mysql的show master status 中看到。
出現OK以後
Start slave;啓動slave
查看狀態
Show slave status\G;
當slave_IO_Running 和Slave_SQL_Running 都爲yes 說明配置成功。
若是IO_Running 爲connecting 說明一直在鏈接,你的配置是有問題的,
檢查master 是否有錯誤,檢查slave鏈接master是否有問題,
而後你就看到更改數據 數據庫能夠同步了。