主(寫)數據庫配置
[client]
# 設置客戶端默認編碼
default-character-set=utf8
[mysqld]
#設置服務端的默認編碼
character_set_server=utf8
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
symbolic-links=0
log-error=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid
# 設置SQL模式,可參考:https://blog.csdn.net/afgasdg/article/details/79807498
# 創建用戶必須要指定密碼,表的引擎不可用則拋出錯誤
sql_mode=NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION
# 開啓二進制日誌
log-bin=master-bin
#使用二進制日誌的索引文件
log-bin-index=master.bin.index
#爲服務器添加唯一的編號
server-id=11
mysql> show variables like 'charater%';
從(讀)數據庫配置
[client]
# 指定默認編碼
default-character-set=utf8
[mysqld]
# 服務端默認編碼
character_set_server=utf8
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
# 創建用戶必須要指定密碼,表的引擎不可用則拋出錯誤
sql_mode=NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION
# 指定從日誌文件
relay-log=slave-relay-log-bin
relay-log-index=slave-relay-log-bin.index
#指定服務器ID
server-id=12
配置步驟
1. 按照上面的配置修改完my.cnf之後重啓mysql
systemctl restart mysqld.service
2. 在主服務器上添加同步用戶
2.1 創建用戶
mysql> create user test;
2.2 設置權限
mysql> grant replication slave on *.* to test@'%' identified by '123456';
2.3 刷新權限
mysql> flush privileges;
2.4查看master狀態
mysql> SHOW MASTER STATUS;
3. 從服務器配置master信息
3.1 從配置master信息
# 可選參數 master_log_file=日誌文件,master_log_pos=502(日誌文件同步點)
mysql> change master to master_host='192.168.1.101',master_port=3306,master_user='test',master_password='123456';
具體的change master 語法參看:https://dev.mysql.com/doc/refman/5.7/en/change-master-to.html
3.2 啓動slave
mysql> start slave;
查看配置信息狀態:
mysql> show slave status\G;
正常結果:
如果無法連接:參考解決方案
測試
1. 主數據庫執行
mysql> create database qqt character set=utf8;
2. 從數據庫執行
mysql> show databases;