MySQL主從設置
MySQL主從復制,讀寫分離的設置非常簡單:
修改配置my.cnf文件
master 和 slave設置的差不多:
1
2
3
|
[mysqld] log-bin=mysql-bin server-id=222 |
log-bin=mysql-bin
的意思是:啟用二進制日志。
server-id=222
的意思是設置了服務器的唯一ID,默認是1,一般取IP最后一段,可以寫成別的,只要不和其他mysql服務器重復就好。
這里,有的MySQL默認的my.cnf
文件引用了/etc/mysql/conf.d
路徑下的所有cnf文件,因此,也可以在/etc/mysql/conf.d
目錄下添加一個cnf文件,添加上以上內容
分別重啟master和slave機器的mysql
/etc/init.d/mysql restart
master上建立賬戶并授權slave,slave上也做好相關配置
用root用戶分別登錄master和slave機器:
1
|
mysql -uroot -p //輸入之后會讓你輸入root密碼,輸入root密碼就算登陸了 |
master機器上
建立賬戶并授權slave機器,注意用戶名和密碼,可以隨意設置,但是一定要記下來,因為后面slave還需要用到
1
|
GRANT REPLICATION SLAVE ON *.* to 'ryugou' @ '%' identified by 'ryugou' ; |
一般不用root帳號,@'%'表示所有客戶端都可能連,只要帳號,密碼正確,此處可用具體客戶端IP代替,如192.168.145.226,加強安全。
slave機器上
查看master狀態
1
|
show master status; |
在mysql終端輸入
change master to master_host='xxx.xxx.xxx.xxx',master_user='ryugou',master_password='ryugou',master_log_file='mysql-bin.000004',master_log_pos=120;
master_log_file就是master機器上的對應的內容,master_log_pos也是,注意查看master狀態上的內容。
master_user和master_password就是master機器上授權時設置用戶名和密碼。
啟動從服務器
1
|
start slave; |
檢查從服務器復制功能狀態
1
|
show slave status\G; |
會出現一個列表
主要看Slave_IO_Running和Slave_SQL_Running 這倆狀態必須都為Yes。
master創建數據庫,從服務器設置用戶訪問權限
在master上創建數據庫 test,會發現在slave上也創建了 test,現在想要讀寫分離,slave上的機器某用戶gou可以訪問它,但是只能讀
1
|
grant select on test.* to gou; |
以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持服務器之家。
原文鏈接:https://i6448038.github.io/2017/06/27/MySQL%E4%B8%BB%E4%BB%8E%E5%A4%8D%E5%88%B6%E8%AF%BB%E5%86%99%E5%88%86%E7%A6%BB%E6%90%AD%E5%BB%BA/?utm_source=tuicool&utm_medium=referral