master
數據庫 /etc/my.cnf 配置
[client]
default-character-set=utf8mb4
port = 3306
socket = /usr/local/mysqld/mysqld.sock #用於本地鏈接的socket套接字
[mysql]
#這個配置段設置啓動MySQL服務的條件;在這種狀況下,no-auto-rehash確保這個服務啓動得比較快。
no-auto-rehash
[mysqld]
#user = mysql
port = 3306
basedir=/usr/local/mysql/ #使用該目錄做爲根目錄(安裝目錄)
datadir=/usr/local/mysql/data/ #數據文件存放的目錄
tmpdir = /usr/local/mysqld/tmp/ #MySQL存放臨時文件的目錄
socket =/usr/local/mysqld/mysqld.sock #爲MySQL客戶端程序和服務器之間的本地通信指定一個套接字文件
explicit_defaults_for_timestamp=true #明確時間戳默認null方式
character_set_server=utf8mb4 #服務端默認編碼(數據庫級別)
collation_server =utf8mb4_bin #服務端默認的比對規則,排序規則
default-storage-engine = InnoDB #默認存儲引擎
server-id=1 #設置server-id
log-bin=mysql-bin #開啓二進制日誌
binlog_format=mixed #複製模式
# 不一樣步哪些數據庫
binlog-ignore-db = mysql
binlog-ignore-db = test
binlog-ignore-db = information_schema
# 只同步哪些數據庫,除此以外,其餘不一樣步
binlog-do-db = game
#Disabling symbolic-links is recommended to prevent assorted security risks
symbolic-links=0
log-warnings = 1 #將警告打印輸出到錯誤 log 文件
[mysqld_safe]
pid-file = /usr/local/mysqld/mysqld.pid
socket = /usr/local/mysqld/mysqld.sock
slow_query_log = 1 #開啓慢查詢
long-query-time = 10 #漫查詢閥值
log_long_format #在慢速日誌中記錄更多的信息
slow_query_log_file = /usr/local/mysqld/log/slow_sql.log #慢查詢路徑
general_log = 0 #將全部到達MySQL Server的SQL語句記錄下來,默認關閉
general_log_file = /usr/local/mysqld/log/mysql_sql.log
log-error = /usr/local/mysqld/log/mysqld.err #錯誤日誌路徑
slave
數據庫 /etc/my.cnf
配置
[client]
default-character-set=utf8mb4
port = 3306
socket = /usr/local/mysqld/mysqld.sock #用於本地鏈接的socket套接字
[mysql]
#這個配置段設置啓動MySQL服務的條件;在這種狀況下,no-auto-rehash確保這個服務啓動得比較快。
no-auto-rehash
[mysqld]
#user = mysql
port = 3306
basedir=/usr/local/mysql/ #使用該目錄做爲根目錄(安裝目錄)
datadir=/usr/local/mysql/data/ #數據文件存放的目錄
tmpdir = /usr/local/mysqld/tmp/ #MySQL存放臨時文件的目錄
socket =/usr/local/mysqld/mysqld.sock #爲MySQL客戶端程序和服務器之間的本地通信指定一個套接字文件
explicit_defaults_for_timestamp=true #明確時間戳默認null方式
character_set_server=utf8mb4 #服務端默認編碼(數據庫級別)
collation_server =utf8mb4_bin #服務端默認的比對規則,排序規則
default-storage-engine = InnoDB #默認存儲引擎
server-id=2 #設置server-id
#Disabling symbolic-links is recommended to prevent assorted security risks
symbolic-links=0
log-warnings = 1 #將警告打印輸出到錯誤 log 文件
[mysqld_safe]
pid-file = /usr/local/mysqld/mysqld.pid
socket = /usr/local/mysqld/mysqld.sock
slow_query_log = 1 #開啓慢查詢
long-query-time = 10 #漫查詢閥值
log_long_format #在慢速日誌中記錄更多的信息
slow_query_log_file = /usr/local/mysqld/log/slow_sql.log #慢查詢路徑
general_log = 0 #將全部到達MySQL Server的SQL語句記錄下來,默認關閉
general_log_file = /usr/local/mysqld/log/mysql_sql.log
log-error = /usr/local/mysqld/log/mysqld.err #錯誤日誌路徑
master
建立受權用戶
mysql>CREATE USER 'prdrepl'@'192.168.16.%' IDENTIFIED BY 'root';
mysql> use mysql;
mysql> update user set authentication_string=password('reduser') where user='reduser';
用戶賦予 REPLICATION SLAVE 權限
mysql>GRANT REPLICATION SLAVE ON *.* TO 'prdrepl'@'192.168.16.%';
mysql> flush privileges;
查看用戶
mysql>select user,host from mysql.user;
查看 master 狀態
mysql>show master status;
//這裏的 mysql-bin.000001和 Position 值 slave 配置時須要用到。
手動同步master數據
mysqldump -u root -p --all-databases --master-data > all.sql
//命令失敗 設置軟鏈接
find / -name mysql -print
ln -fs /usr/local/mysql/bin/mysqldump /usr/bin
ln -fs /usr/local/mysql/bin/mysql /usr/bin
scp all.sql root@192.168.16.14:/tmp
mysql>stop slave
mysql -uroot -p < all.sql
使 slave 與 master 創建鏈接
mysql> change master to
-> master_host='192.168.16.16',
-> master_user='prdrepl',
-> master_password='prdrepl',
-> master_port=3306,
-> master_log_file='mysql-bin.000001',
-> master_log_pos=623;
啓動備份
mysql>start slave;
查看備份是否啓動成功
mysql>show slave status \G
Slave_IO_Running: Yes
Slave_SQL_Running: Yes
設置只讀屬性
mysql>set global read_only=1
//1只讀,0讀寫
mysql>show global variables like "%read_only%";
mysql>flush tables with read lock;// 設定全局鎖 備份失效
mysql>unlock tables; //解鎖
全局鎖