mysql一主多從配置詳情

https://www.cnblogs.com/zgx/archive/2011/09/13/2174823.htmlhtml

 

一、準備好3臺虛機,一臺master,兩臺slave且都安裝好mysqlmysql

二、主服務器上登陸mysql,建立要同步的庫及表sql

mysql> mysql -uroot -p111111; mysql> CREATE DATABASE NAME; mysql> use NAME; mysql> CREATE TABLE T_NAME(id int,name varchar(20))數據庫

三、主服務器新建用戶並賦予「REPLICATION SLAVE」的權限(注:mysql8.0版本分三步執行)服務器

mysql> create user 'mslave'@'X.X.X.X' identified by 'password' mysql> grant all privileges on *.* to 'mslave'@'X.X.X.X' with grant option; ( grant 權限列表 on 數據庫 to 用戶名@訪問主機) mysql> flush privileges;ide

其中:X.X.X.X 爲從服務器的ip地址 例如 192.168.50.% 表示該網段下的從服務器測試

*.* 爲當前服務器全部庫全部表rest

with grant option 爲表示該用戶能夠將本身擁有的權限受權給別人server

mslave 爲可設置的新用戶名htm

password 爲可設置的密碼

flush privileges 命令本質上的做用是將當前user和privilige表中的用戶信息/權限設置從mysql庫(MySQL數據庫的內置庫)中提取到內存裏。MySQL用戶數據和權限有修改後,但願在"不重啓MySQL服務"的狀況下直接生效,那麼就須要執行這個命令。一般是在修改ROOT賬號的設置後,怕重啓後沒法再登陸進來,那麼直接flush以後就能夠看權限設置是否生效。而沒必要冒太大風險。

四、備份數據庫

退出mysql執行備份

mysqldump -uroot -p111111 -B hac>hac.sql

五、遠程拷貝到從服務器中

scp 要拷貝的文件 遠程服務器ip:/遠程目錄

例子:scp hac.sql 192.168.50.131:/root

六、修改master服務器上的配置文件(/etc/my.cnf)

log-bin=mysql-bin-master //啓用主服務器的二進制的名稱 server-id=1 //不能重複 binlog-do-db=要同步的數據庫 //同步多個就寫多條 binlog-ignore-db=mysql //不一樣步的數據庫

七、重啓mysql

systemctl restart mysqld

八、從服務器-導入mysql腳本

mysql -uroot -p111111 <hac.sql

九、從服務器-測試腳本導入是否成功

mysql -uroot -p111111 -e "show databases"

十、從服務器 - 配置etc/my.cnf文件

server-id =2

十一、從服務器-重啓mysql

systemctl restart mysqld

十二、查看master狀態

mysql> show master status;

1三、從服務器嘗試鏈接主服務器(注意防火牆關閉)

mysql -umslave -p111111 -h 192.168.50.130

1四、查看定義的二進制同步文件

ll /var/lib/mysql -rw-r-----. 1 mysql mysql 155 Aug 15 03:30 mysql-bin-master.000001 -rw-r-----. 1 mysql mysql 26 Aug 15 03:30 mysql-bin-master.index

mysql查看二進制文件的記錄

show binlog events \G

1五、從服務器-關掉

stop slave;

1六、從服務器-配置主服務器

change master to master_host='192.168.50.130',master_user='mslave',master_password='1111111';

1七、從服務器-啓動

start slave;

1八、從服務器-檢查主從是否配置成功

show slave status \G

 

 

 

Q:配置好後未同步

A:檢查是否開啓同步

mysql> set sql_log_bin=on;

相關文章
相關標籤/搜索