mysql 5.7主從安裝和配置
阿新 • • 發佈:2018-05-04
crash master rpm 情況下 並發 本地 隔離級別 cover mirror
本文主要介紹mysql 5.7主從復制,轉載請註明出處
下載地址
模塊 | 版本 | 下載地址 | |
---|---|---|---|
mysql | 5.7 | https://dev.mysql.com/downloads/mysql/ | |
libaio(可選) | 0.3.110 | http://ftp.altlinux.org/pub/distributions/ALTLinux/Sisyphus/x86_64/RPMS.classic//libaio-0.3.110-alt1.1.x86_64.rpm | |
net-tools(可選) | 2.0.22 | http://mirror.centos.org/centos/7/os/x86_64/Packages/net-tools-2.0-0.22.20131004git.el7.x86_64.rpm |
卸載系統自帶的mariadb
[root@DTDREAM-TRAINING-HUB-01 ~]# rpm -qa|grep mariadb
mariadb-libs-5.5.52-1.el7.x86_64
[root@DTDREAM-TRAINING-HUB-01 ~]# rpm remove mariadb-libs -y
安裝 mysql 依賴模塊(可選,一般系統都安裝了)
[root@DTDREAM-TRAINING-HUB-01 soft]# rpm -ivh libaio-0.3.110-alt1.1.x86_64.rpm [root@DTDREAM-TRAINING-HUB-01 soft]# rpm -Uvh net-tools-2.0-0.22.20131004git.el7.x86_64.rpm
安裝 mysql
tar -xvf mysql-5.7.21-1.el7.x86_64.rpm-bundle.tar -C /opt/data/soft/mysql ; cd /opt/data/soft/mysql
[root@DTDREAM-TRAINING-HUB-01 ~]# rpm -ivh mysql-community-*.rpm
### 修改 mysql 默認配置
刪除/etc/my.cnf原有內容並復制以下配置
[mysqld] ######## basic settings ######## # 服務器 ID , 主從唯一標識 server_id=10 # 監聽端口 #port=3306 # 運行用戶 user=mysql # 監聽IP地址, 如果是127.0.0.1, 表示僅本機訪問 #bind_address=127.0.0.1 # 數據修改是否自動提交, 為0不自動提交 autocommit=1 # 服務器字符集 , utf8mb4為超字符集, 兼容UTF-8並可存儲4字節的圖片 character_set_server=utf8mb4 # 禁用DNS主機名查找, 啟用以後用內網地址向mysqlslap請求響應快一半 #skip_name_resolve=1 # 最大連接數 max_connections=2048 # 主機連接錯誤次數等於max_connect_errors(默認10)時 , 再次嘗試連接將被屏蔽. 可有效防止DDOS攻擊 max_connect_errors=1000 # 數據存儲目錄 datadir=/opt/data/mysql # socket方式運行文件存儲路徑 socket=/opt/data/mysql/mysql.sock # 進程PID文件 pid_file=/opt/data/mysql/mysqld.pid # 數據庫事務隔離級別 # 1. READ-UNCOMMITTED(讀取未提交內容)級別 # 2. READ-COMMITTED(讀取提交內容) # 3. REPEATABLE-READ(可重讀) # 4. SERIERLIZED(可串行化) # 默認級別REPEATABLE-READ transaction_isolation=READ-COMMITTED explicit_defaults_for_timestamp=1 # join是ALL,index,rang或者Index_merge的時候使用的buffer join_buffer_size=128M # 內部內存臨時表的最大值 tmp_table_size=128M # 臨時文件目錄 tmpdir=/tmp # 最大接受的數據包大小 max_allowed_packet=16M # sql_mode 模式, 定義了你MySQL應該支持的sql語法, 對數據的校驗等等, 限制一些所謂的不合法操作 sql_mode="STRICT_TRANS_TABLES,NO_ENGINE_SUBSTITUTION,NO_ZERO_DATE,NO_ZERO_IN_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER" # 服務器關閉交互式連接前等待活動的秒數 interactive_timeout=60 # 服務器關閉非交互連接之前等待活動的秒數 wait_timeout=60 # 讀入緩沖區的大小 read_buffer_size=16M # 隨機讀緩沖區大小 read_rnd_buffer_size=32M # connection緩存 sort_buffer_size=32M ######## log settings ######## # 錯誤日誌文件 log_error=/opt/data/mysql/mysqld.log # 是否開啟慢查詢日誌收集, 1為啟用, 0為禁用 #slow_query_log=1 # 慢查詢日誌文件 #slow_query_log_file=/opt/data/mysql/log/slow.log # 記錄未使用索引的語句 log_queries_not_using_indexes=1 # 記錄管理型慢SQL log_slow_admin_statements=1 # 記錄 slave 產生的慢查詢 log_slow_slave_statements=1 # 每分鐘記錄到日誌的未使用索引的語句數目, 超過這個值後只記錄語句數量和花費的總時間 log_throttle_queries_not_using_indexes=10 # 日誌過期時間天數 expire_logs_days=90 # binlog日誌文件大小 max_binlog_size=100M # 記錄慢查詢超時時間, 默認為秒 long_query_time=3 # 查詢返回少於該參數指定行的SQL不被記錄到慢查詢日誌 min_examined_row_limit=100
初始化 mysql
[root@DTDREAM-TRAINING-HUB-01 mysql]# mysqld --initialize --user=mysql
查看 初始化密碼
grep "password" /opt/data/mysql/mysqld.log
2018-05-04T04:25:59.753312Z 1 [Note] A temporary password is generated for root@localhost: k_muRLmOB1f3
啟動 mysql
[root@DTDREAM-TRAINING-HUB-01 mysql]# systemctl start mysqld
檢查 mysql 服務狀態
[root@DTDREAM-TRAINING-HUB-01 mysql]#systemctl status mysqld
● mysqld.service - MySQL Server
Loaded: loaded (/usr/lib/systemd/system/mysqld.service; enabled; vendor preset: disabled)
Active: active (running) since Fri 2018-05-04 13:00:05 CST; 44min ago
Docs: man:mysqld(8)
http://dev.mysql.com/doc/refman/en/using-systemd.html
Process: 10706 ExecStart=/usr/sbin/mysqld --daemonize --pid-file=/var/run/mysqld/mysqld.pid $MYSQLD_OPTS (code=exited, status=0/SUCCESS)
Process: 10669 ExecStartPre=/usr/bin/mysqld_pre_systemd (code=exited, status=0/SUCCESS)
Main PID: 10709 (mysqld)
CGroup: /system.slice/mysqld.service
└─10709 /usr/sbin/mysqld --daemonize --pid-file=/var/run/mysqld/mysqld.pid
May 04 13:00:04 dtdream-dtopen-prod-db-02 systemd[1]: Starting MySQL Server...
May 04 13:00:05 dtdream-dtopen-prod-db-02 systemd[1]: Started MySQL Server.
設置 mysql 服務自啟動
[root@DTDREAM-TRAINING-HUB-01 mysql]# systemctl enable mysqld
檢查 mysql 服務自啟動狀態
[root@DTDREAM-TRAINING-HUB-01 mysql]# systemctl list-unit-files --type=service | grep -i mysqld
mysqld.service enabled
[email protected] disabled
登錄 mysql
[root@DTDREAM-DTOPEN-TRAINING-APP-01 mysql]# mysql -h 127.0.0.1 -uroot -pk_muRLmOB1f3
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 3
Server version: 5.7.21
Copyright (c) 2000, 2018, Oracle and/or its affiliates. All rights reserved.
Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
mysql>
修改初始化密碼
mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY 'DtDream0209';
Query OK, 0 rows affected (0.01 sec)
切換到 mysql 數據庫
mysql> use mysql;
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A
Database changed
查詢 root 登錄限制
mysql> select user,host from user;
+---------------+-----------+
| user | host |
+---------------+-----------+
| mysql.session | localhost |
| mysql.sys | localhost |
| root | localhost |
+---------------+-----------+
3 rows in set (0.00 sec)
修改 root 登錄限制為允許開放所有登錄方式
mysql> update user set host = '%' where user = 'root';
Query OK, 1 row affected (0.00 sec)
Rows matched: 1 Changed: 1 Warnings: 0
在 master 配置 mysql 主從 基於日誌復制
在 master 創建主從同步賬號建立一個帳戶 "dt_sync" , 且只能允許從 從服務器(172.16.0.167) 地址登陸, 密碼是 dtdreamsync
mysql> grant replication slave on *.* to 'dt_sync'@'172.16.0.167' identified by 'dtdreamsync';
Query OK, 0 rows affected, 1 warning (0.00 sec)
刷新權限
mysql> flush privileges;
Query OK, 0 rows affected (0.00 sec)
查詢主從同步賬號
mysql> select user,host from user;
+---------------+--------------+
| user | host |
+---------------+--------------+
| root | % |
| dt_sync | 172.16.0.167 |
| mysql.session | localhost |
| mysql.sys | localhost |
+---------------+--------------+
4 rows in set (0.00 sec)
退出 mysql 命令行
mysql> quit
創建日誌目錄
[root@DTDREAM-TRAINING-HUB-01 etc]# mkdir -p /opt/data/mysql/log
[root@DTDREAM-TRAINING-HUB-01 log]# mkdir -p /opt/data/mysql/redolog/
[root@DTDREAM-TRAINING-HUB-01 log]# mkdir -p /opt/data/mysql/undolog/
日誌目錄權限修改
[root@DTDREAM-TRAINING-HUB-01 mysql]# chown -R mysql:mysql /opt/data/mysql/log
[root@DTDREAM-TRAINING-HUB-01 mysql]# chown -R mysql:mysql /opt/data/mysql/redolog
[root@DTDREAM-TRAINING-HUB-01 mysql]# chown -R mysql:mysql /opt/data/mysql/undolog
修改 master 配置文件
刪除/etc/my.cnf原有內容並復制以下優化內容到配置文件中
[mysqld]
######## basic settings ########
# 服務器 ID , 主從唯一標識
server_id=10
# 監聽端口
#port=3306
# 運行用戶
user=mysql
# 監聽IP地址, 如果是127.0.0.1, 表示僅本機訪問
#bind_address=127.0.0.1
# 數據修改是否自動提交, 為0不自動提交
autocommit=1
# 服務器字符集 , utf8mb4為超字符集, 兼容UTF-8並可存儲4字節的圖片
character_set_server=utf8mb4
# 禁用DNS主機名查找, 啟用以後用內網地址向mysqlslap請求響應快一半
skip_name_resolve=1
# 最大連接數
max_connections=2048
# 主機連接錯誤次數等於max_connect_errors(默認10)時 , 再次嘗試連接將被屏蔽. 可有效防止DDOS攻擊
max_connect_errors=1000
# 數據存儲目錄
datadir=/opt/data/mysql
# socket方式運行文件存儲路徑
socket=/opt/data/mysql/mysql.sock
# 進程PID文件
pid_file=/opt/data/mysql/mysqld.pid
# 數據庫事務隔離級別
# 1. READ-UNCOMMITTED(讀取未提交內容)級別
# 2. READ-COMMITTED(讀取提交內容)
# 3. REPEATABLE-READ(可重讀)
# 4. SERIERLIZED(可串行化)
# 默認級別REPEATABLE-READ
transaction_isolation=READ-COMMITTED
explicit_defaults_for_timestamp=1
# join是ALL,index,rang或者Index_merge的時候使用的buffer
join_buffer_size=128M
# 內部內存臨時表的最大值
tmp_table_size=128M
# 臨時文件目錄
tmpdir=/tmp
# 最大接受的數據包大小
max_allowed_packet=16M
# sql_mode 模式, 定義了你MySQL應該支持的sql語法, 對數據的校驗等等, 限制一些所謂的不合法操作
sql_mode="STRICT_TRANS_TABLES,NO_ENGINE_SUBSTITUTION,NO_ZERO_DATE,NO_ZERO_IN_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER"
# 服務器關閉交互式連接前等待活動的秒數
interactive_timeout=60
# 服務器關閉非交互連接之前等待活動的秒數
wait_timeout=60
# 讀入緩沖區的大小
read_buffer_size=16M
# 隨機讀緩沖區大小
read_rnd_buffer_size=32M
# connection緩存
sort_buffer_size=32M
######## log settings ########
# 錯誤日誌文件
log_error=/opt/data/mysql/mysqld.log
# 是否開啟慢查詢日誌收集, 1為啟用, 0為禁用
slow_query_log=1
# 慢查詢日誌文件
slow_query_log_file=/opt/data/mysql/log/slow.log
# 記錄未使用索引的語句
log_queries_not_using_indexes=1
# 記錄管理型慢SQL
log_slow_admin_statements=1
# 記錄 slave 產生的慢查詢
log_slow_slave_statements=1
# 每分鐘記錄到日誌的未使用索引的語句數目, 超過這個值後只記錄語句數量和花費的總時間
log_throttle_queries_not_using_indexes=10
# 日誌過期時間天數
expire_logs_days=90
# binlog日誌文件大小
max_binlog_size=100M
# 記錄慢查詢超時時間, 默認為秒
long_query_time=3
# 查詢返回少於該參數指定行的SQL不被記錄到慢查詢日誌
min_examined_row_limit=100
######## master replication settings ########
# binlog 日誌文件
#log_bin=/opt/data/mysql/log/mysql-bin.log
# binlog 索引文件
#log_bin_index=/opt/data/mysql/log/mysql-bin.index
# sync_binlog=0, 當事務提交之後, MySQL不做fsync之類的磁盤同步指令刷新binlog_cache中的信息到磁盤, 而讓Filesystem自行決定什麽時候來做同步, 或者cache滿了之後才同步到磁盤
# sync_binlog=n, 當每進行n次事務提交之後, MySQL將進行一次fsync之類的磁盤同步指令來將binlog_cache中的數據強制寫入磁盤
# MySQL中系統默認的設置是sync_binlog=0, 也就是不做任何強制性的磁盤刷新指令, 這時候的性能是最好的, 但是風險也是最大的. 因為一旦系統Crash, 在binlog_cache中的所有binlog信息都會被丟失. 而
# 當設置為"1"的時候, 是最安全但是性能損耗最大的設置. 因為當設置為1的時候, 即使系統Crash, 也最多丟失binlog_cache中未完成的一個事務, 對實際數據沒有任何實質性影響.
# 從以往經驗和相關測試來看, 對於高並發事務的系統來說, "sync_binlog"設置為0和設置為1的系統寫入性能差距可能高達5倍甚至更多
#sync_binlog=3
# 啟用 GTID 類型
#gtid_mode=on
# 強制 GTID 一致性
#enforce_gtid_consistency=1
# 主從一致性校驗算法
#binlog_checksum=CRC32
# slave更新是否記入日誌, 在做雙主架構時異常重要, 影響到雙主架構是否能互相同步
#log_slave_updates=1
# binlog日誌格式
#binlog_format=row
# 這個參數控制了當mysql啟動或重啟時, mysql在搜尋GTIDs時是如何叠代使用binlog文件的. 這個選項設置為真, 會提升mysql執行恢復的性能. 因為這樣mysql-server啟動和binlog日誌清理更快
#binlog_gtid_simple_recovery=1
# 跳過指定error no類型的錯誤, 設成all 跳過所有錯誤
#slave_skip_errors=ddl_exist_errors
######## slave replication settings ########
# binlog 日誌文件
log_bin=/opt/data/mysql/log/mysql-bin.log
# binlog 索引文件
log_bin_index=/opt/data/mysql/log/mysql-bin.index
# sync_binlog=0, 當事務提交之後, MySQL不做fsync之類的磁盤同步指令刷新binlog_cache中的信息到磁盤, 而讓Filesystem自行決定什麽時候來做同步, 或者cache滿了之後才同步到磁盤
# sync_binlog=n, 當每進行n次事務提交之後, MySQL將進行一次fsync之類的磁盤同步指令來將binlog_cache中的數據強制寫入磁盤
# MySQL中系統默認的設置是sync_binlog=0, 也就是不做任何強制性的磁盤刷新指令, 這時候的性能是最好的, 但是風險也是最大的. 因為一旦系統Crash, 在binlog_cache中的所有binlog信息都會被丟失. 而
# 當設置為"1"的時候, 是最安全但是性能損耗最大的設置. 因為當設置為1的時候, 即使系統Crash, 也最多丟失binlog_cache中未完成的一個事務, 對實際數據沒有任何實質性影響.
# 從以往經驗和相關測試來看, 對於高並發事務的系統來說, "sync_binlog"設置為0和設置為1的系統寫入性能差距可能高達5倍甚至更多
sync_binlog=3
# 啟用 GTID 類型
gtid_mode=on
# 強制 GTID 一致性
enforce_gtid_consistency=1
# binlog日誌格式
binlog_format=row
# 設置 slave 為只讀 (僅限制普通用戶,不限制超級用戶)
read_only=1
# slave 保存同步中繼日誌的位置
relay_log=/opt/data/mysql/log/relay.log
# slave 同步中繼日誌索引文件
relay_log_index=/opt/data/mysql/log/relay-log-index
# slave 節點保存 master 節點信息方式 , 設定為 file 會生成master.info 和 relay-log.info 2個文件 ; 設定為 table 時信息就會存在 mysql.master_slave_info 表中
master_info_repository=TABLE
# 用於保存 slave 讀取 relay log 的位置信息
relay_log_info_repository=TABLE
# 當slave從庫宕機後, 假如relay-log損壞了, 導致一部分中繼日誌沒有處理, 則自動放棄所有未執行的relay-log, 並且重新從master上獲取日誌, 這樣就保證了relay-log的完整性
relay_log_recovery=1
# 這個參數控制了當mysql啟動或重啟時, mysql在搜尋GTIDs時是如何叠代使用binlog文件的. 這個選項設置為真, 會提升mysql執行恢復的性能. 因為這樣mysql-server啟動和binlog日誌清理更快
binlog_gtid_simple_recovery=1
# 跳過指定error no類型的錯誤, 設成all 跳過所有錯誤
slave_skip_errors=ddl_exist_errors
# 在從庫執行start slave的時候, 會將report-host和report-port(默認3306)發給主庫, 主庫記錄在全局哈希結構變量 slave_list 中
# 如果想要連report-user和report-password也顯示出來, 則需要主庫配置參參數show-slave-auth-info
#report_port=3306
#report_host=172.16.0.167
######## innodb settings ########
# innodb每個數據頁大小
innodb_page_size=16K
# 緩存innodb表的索引、數據, 插入數據時的緩沖, 專用mysql服務器設置的大小: 操作系統內存的70%-80%最佳
innodb_buffer_pool_size=6G
# 可以開啟多個內存緩沖池, 把需要緩沖的數據hash到不同的緩沖池中, 這樣可以並行的內存讀寫
innodb_buffer_pool_instances=8
# 加載本地熱數據到InnoDB緩存
innodb_buffer_pool_load_at_startup=1
# 停止MySQL服務時, InnoDB將InnoDB緩沖池中的熱數據保存到本地硬盤
innodb_buffer_pool_dump_at_shutdown=1
# page cleaner線程每次刷臟頁的數量
innodb_lru_scan_depth=2000
# 事務等待獲取資源等待的最長時間, 單位是秒
innodb_lock_wait_timeout=5
# 這兩個設置會影響InnoDB每秒在後臺執行多少操作. 大多數寫IO(除了寫InnoDB日誌)是後臺操作的.
# 如果深度了解硬件性能(如每秒可以執行多少次IO操作),則使用這些功能是很可取的,而不是讓它閑著
#innodb_io_capacity=4000
#innodb_io_capacity_max=8000
# 默認值為 fdatasync.
# 如果使用 硬件RAID磁盤控制器, 可能需要設置為 O_DIRECT. 這在讀取InnoDB緩沖池時可防止雙緩沖(double buffering)效應, 否則會在文件系統緩存與InnoDB緩存間形成2個副本(copy).
# 如果不使用硬件RAID控制器,或者使用SAN存儲時, O_DIRECT 可能會導致性能下降
#innodb_flush_method=O_DIRECT
#innodb_file_format=Barracuda
#innodb_file_format_max=Barracuda
#innodb_strict_mode=1
#innodb_file_per_table=1
# innodb重做日誌保存目錄
innodb_log_group_home_dir=/opt/data/mysql/redolog/
# innodb回滾日誌保存目錄
innodb_undo_directory=/opt/data/mysql/undolog/
# undo回滾段的數量, 至少大於等於35, 默認128
innodb_undo_logs=128
# 用於設定創建的undo表空間的個數, 在mysql_install_db時初始化後, 就再也不能被改動了;
# 默認值為0, 表示不獨立設置undo的tablespace, 默認記錄到ibdata中; 否則, 則在undo目錄下創建這麽多個undo文件,
# 例如假定設置該值為4, 那麽就會創建命名為undo001~undo004的undo tablespace文件, 每個文件的默認大小為10M
# 修改該值會導致Innodb無法完成初始化, 數據庫無法啟動
#innodb_undo_tablespaces=0
# InnoDB存儲引擎在刷新一個臟頁時, 會檢測該頁所在區(extent)的所有頁, 如果是臟頁, 那麽一起刷新.
# 這樣做的好處是通過AIO可以將多個IO寫操作合並為一個IO操作. 對於傳統機械硬盤建議使用, 而對於固態硬盤可以關閉
#innodb_flush_neighbors=1
# 日誌文件的大小
innodb_log_file_size=4G
# 事務在內存中的緩沖
innodb_log_buffer_size=16M
# 控制是否使用, 使用幾個獨立purge線程(清除二進制日誌)
innodb_purge_threads=4
# mysql在5.6之前一直都是單列索引限制767, 起因是256×3-1. 這個3是字符最大占用空間(utf8).
# 在5.6以後, 開始支持4個字節的uutf8. 255×4>767, 於是增加了這個參數. 這個參數默認值是OFF. 當改為ON時, 允許列索引最大達到3072
innodb_large_prefix=1
# InnoDB kernel並發最大的線程數.
# 1) 最少設置為(num_disks+num_cpus)*2
# 2) 可以通過設置成1000來禁止這個限制
innodb_thread_concurrency=64
# 將死鎖相關信息保存到MySQL 錯誤日誌中
innodb_print_all_deadlocks=1
# RDER BY 或者 GROUP BY 操作的buffer緩存大小
innodb_sort_buffer_size=64M
########semi sync replication settings########
# 指定mysql插件目錄
#plugin_dir=/opt/data/mysql/lib/plugin
# 指定載入哪些插件
#plugin_load="rpl_semi_sync_master=semisync_master.so;rpl_semi_sync_slave=semisync_slave.so"
# 控制主庫上是否開啟semisync
#loose_rpl_semi_sync_master_enabled=1
# 控制備庫是否開啟semisync
#loose_rpl_semi_sync_slave_enabled=1
# 單位毫秒, 防止半同步復制在沒有收到確認的情況下, 發送堵塞. master在超時之前沒有收到確認, 將恢復到異步復制, 繼續執行半同步沒有進行的操作
#loose_rpl_semi_sync_master_timeout=5000
[mysqld-5.7]
# 轉儲每個bp instance LRU上最熱的page的百分比. 通過設置該參數可以減少轉儲的page數
#innodb_buffer_pool_dump_pct=40
# Page cleaner並未和buffer pool綁定, 其模型為一個協調線程 + 多個工作線程, 協調線程本身也是工作線程.
# 如果innodb_page_cleaners設置為8, 那麽就是一個協調線程, 加7個工作線程
#innodb_page_cleaners=4
# 開啟在線回收(收縮)undo log日誌文件
#innodb_undo_log_truncate=1
# 當超過這個閥值(默認是1G), 會觸發truncate回收(收縮)動作, truncate後空間縮小到10M
#innodb_max_undo_log_size=2G
# 控制回收(收縮)undo log的頻率
#innodb_purge_rseg_truncate_frequency=128
# mysql在搜尋GTID時是如何叠代使用binlog文件的. 這個選項設置為真, 會提升mysql執行恢復的性能. 因為這樣mysql-server啟動和binlog日誌清理更快
#binlog_gtid_simple_recovery=1
# 該參數控制 error log、genera log等等記錄日誌的顯示時間參數
log_timestamps=system
# 這個神奇的參數5.7.6版本引入, 用於定義一個記錄事務的算法, 這個算法使用hash標識來記錄事務.
# 如果使用MGR, 那麽這個hash值需要用於分布式沖突檢測何處理.
# 在64位的系統, 官網建議設置該參數使用 XXHASH64 算法. 如果線上並沒有使用該功能, 應該設為off
#transaction_writeet_extraction=MURMUR32
#show_compatibility_56=on
[client]
default_character-set=utf8
[mysql]
default_character-set=utf8
重啟 mysql 服務
[root@DTDREAM-TRAINING-HUB-01 etc]# systemctl restart mysqld
查看 binlog 日誌狀態
mysql> SHOW MASTER STATUS;
+------------------+----------+--------------+------------------+-------------------+
| File | Position | Binlog_Do_DB | Binlog_Ignore_DB | Executed_Gtid_Set |
+------------------+----------+--------------+------------------+-------------------+
| mysql-bin.000001 | 154 | | | |
+------------------+----------+--------------+------------------+-------------------+
1 row in set (0.00 sec)
查看 GTID 狀態
mysql> show variables like "%gtid%";
+----------------------------------+-----------+
| Variable_name | Value |
+----------------------------------+-----------+
| binlog_gtid_simple_recovery | ON |
| enforce_gtid_consistency | ON |
| gtid_executed_compression_period | 1000 |
| gtid_mode | ON |
| gtid_next | AUTOMATIC |
| gtid_owned | |
| gtid_purged | |
| session_track_gtids | OFF |
+----------------------------------+-----------+
查看服務器server_uuid
mysql> show global variables like '%uuid%';
+---------------+--------------------------------------+
| Variable_name | Value |
+---------------+--------------------------------------+
| server_uuid | 01378bf6-2b35-11e8-98fe-00163e04ca22 |
+---------------+--------------------------------------+
1 row in set (0.00 sec)
查看服務器 server_id
mysql> show variables like '%server_id%';
+----------------+-------+
| Variable_name | Value |
+----------------+-------+
| server_id | 10 |
| server_id_bits | 32 |
+----------------+-------+
2 rows in set (0.01 sec)
在 slave 上配置 mysql 主從 基於日誌復制
安裝參考以上步驟,此處不再詳解
創建日誌目錄
[root@DTDREAM-TRAINING-HUB-01 etc]# mkdir -p /opt/data/mysql/log
[root@DTDREAM-TRAINING-HUB-01 log]# mkdir -p /opt/data/mysql/redolog/
[root@DTDREAM-TRAINING-HUB-01 log]# mkdir -p /opt/data/mysql/undolog/
日誌目錄權限修改
[root@DTDREAM-TRAINING-HUB-01 mysql]# chown -R mysql:mysql /opt/data/mysql/log
[root@DTDREAM-TRAINING-HUB-01 mysql]# chown -R mysql:mysql /opt/data/mysql/redolog
[root@DTDREAM-TRAINING-HUB-01 mysql]# chown -R mysql:mysql /opt/data/mysql/undolog
修改 salve 配置文件
刪除原有內容並復制以下內容到配置文件中
[mysqld]
######## basic settings ########
# 服務器 ID , 主從唯一標識
server_id=10
# 監聽端口
#port=3306
# 運行用戶
user=mysql
# 監聽IP地址, 如果是127.0.0.1, 表示僅本機訪問
#bind_address=127.0.0.1
# 數據修改是否自動提交, 為0不自動提交
autocommit=1
# 服務器字符集 , utf8mb4為超字符集, 兼容UTF-8並可存儲4字節的圖片
character_set_server=utf8mb4
# 禁用DNS主機名查找, 啟用以後用內網地址向mysqlslap請求響應快一半
skip_name_resolve=1
# 最大連接數
max_connections=1024
# 主機連接錯誤次數等於max_connect_errors(默認10)時 , 再次嘗試連接將被屏蔽. 可有效防止DDOS攻擊
max_connect_errors=1000
# 數據存儲目錄
datadir=/opt/data/mysql
# socket方式運行文件存儲路徑
socket=/opt/data/mysql/mysql.sock
# 進程PID文件
pid_file=/opt/data/mysql/mysqld.pid
# 數據庫事務隔離級別
# 1. READ-UNCOMMITTED(讀取未提交內容)級別
# 2. READ-COMMITTED(讀取提交內容)
# 3. REPEATABLE-READ(可重讀)
# 4. SERIERLIZED(可串行化)
# 默認級別REPEATABLE-READ
transaction_isolation=READ-COMMITTED
explicit_defaults_for_timestamp=1
# join是ALL,index,rang或者Index_merge的時候使用的buffer
join_buffer_size=128M
# 內部內存臨時表的最大值
tmp_table_size=128M
# 臨時文件目錄
tmpdir=/tmp
# 最大接受的數據包大小
max_allowed_packet=16M
# sql_mode 模式, 定義了你MySQL應該支持的sql語法, 對數據的校驗等等, 限制一些所謂的不合法操作
sql_mode="STRICT_TRANS_TABLES,NO_ENGINE_SUBSTITUTION,NO_ZERO_DATE,NO_ZERO_IN_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER"
# 服務器關閉交互式連接前等待活動的秒數
interactive_timeout=60
# 服務器關閉非交互連接之前等待活動的秒數
wait_timeout=60
# 讀入緩沖區的大小
read_buffer_size=16M
# 隨機讀緩沖區大小
read_rnd_buffer_size=32M
# connection緩存
sort_buffer_size=32M
######## log settings ########
# 錯誤日誌文件
log_error=/opt/data/mysql/mysqld.log
# 是否開啟慢查詢日誌收集, 1為啟用, 0為禁用
slow_query_log=1
# 慢查詢日誌文件
slow_query_log_file=/opt/data/mysql/log/slow.log
# 記錄未使用索引的語句
log_queries_not_using_indexes=1
# 記錄管理型慢SQL
log_slow_admin_statements=1
# 記錄 slave 產生的慢查詢
log_slow_slave_statements=1
# 每分鐘記錄到日誌的未使用索引的語句數目, 超過這個值後只記錄語句數量和花費的總時間
log_throttle_queries_not_using_indexes=10
# 日誌過期時間天數
expire_logs_days=90
# binlog日誌文件大小
max_binlog_size=100M
# 記錄慢查詢超時時間, 默認為秒
long_query_time=3
# 查詢返回少於該參數指定行的SQL不被記錄到慢查詢日誌
min_examined_row_limit=100
######## master replication settings ########
# binlog 日誌文件
#log_bin=/opt/data/mysql/log/mysql-bin.log
# binlog 索引文件
#log_bin_index=/opt/data/mysql/log/mysql-bin.index
# sync_binlog=0, 當事務提交之後, MySQL不做fsync之類的磁盤同步指令刷新binlog_cache中的信息到磁盤, 而讓Filesystem自行決定什麽時候來做同步, 或者cache滿了之後才同步到磁盤
# sync_binlog=n, 當每進行n次事務提交之後, MySQL將進行一次fsync之類的磁盤同步指令來將binlog_cache中的數據強制寫入磁盤
# MySQL中系統默認的設置是sync_binlog=0, 也就是不做任何強制性的磁盤刷新指令, 這時候的性能是最好的, 但是風險也是最大的. 因為一旦系統Crash, 在binlog_cache中的所有binlog信息都會被丟失. 而
# 當設置為"1"的時候, 是最安全但是性能損耗最大的設置. 因為當設置為1的時候, 即使系統Crash, 也最多丟失binlog_cache中未完成的一個事務, 對實際數據沒有任何實質性影響.
# 從以往經驗和相關測試來看, 對於高並發事務的系統來說, "sync_binlog"設置為0和設置為1的系統寫入性能差距可能高達5倍甚至更多
#sync_binlog=3
# 啟用 GTID 類型
#gtid_mode=on
# 強制 GTID 一致性
#enforce_gtid_consistency=1
# 主從一致性校驗算法
#binlog_checksum=CRC32
# slave更新是否記入日誌, 在做雙主架構時異常重要, 影響到雙主架構是否能互相同步
#log_slave_updates=1
# binlog日誌格式
#binlog_format=row
# 這個參數控制了當mysql啟動或重啟時, mysql在搜尋GTIDs時是如何叠代使用binlog文件的. 這個選項設置為真, 會提升mysql執行恢復的性能. 因為這樣mysql-server啟動和binlog日誌清理更快
#binlog_gtid_simple_recovery=1
# 跳過指定error no類型的錯誤, 設成all 跳過所有錯誤
#slave_skip_errors=ddl_exist_errors
######## slave replication settings ########
# binlog 日誌文件
log_bin=/opt/data/mysql/log/mysql-bin.log
# binlog 索引文件
log_bin_index=/opt/data/mysql/log/mysql-bin.index
# sync_binlog=0, 當事務提交之後, MySQL不做fsync之類的磁盤同步指令刷新binlog_cache中的信息到磁盤, 而讓Filesystem自行決定什麽時候來做同步, 或者cache滿了之後才同步到磁盤
# sync_binlog=n, 當每進行n次事務提交之後, MySQL將進行一次fsync之類的磁盤同步指令來將binlog_cache中的數據強制寫入磁盤
# MySQL中系統默認的設置是sync_binlog=0, 也就是不做任何強制性的磁盤刷新指令, 這時候的性能是最好的, 但是風險也是最大的. 因為一旦系統Crash, 在binlog_cache中的所有binlog信息都會被丟失. 而
# 當設置為"1"的時候, 是最安全但是性能損耗最大的設置. 因為當設置為1的時候, 即使系統Crash, 也最多丟失binlog_cache中未完成的一個事務, 對實際數據沒有任何實質性影響.
# 從以往經驗和相關測試來看, 對於高並發事務的系統來說, "sync_binlog"設置為0和設置為1的系統寫入性能差距可能高達5倍甚至更多
sync_binlog=3
# 啟用 GTID 類型
gtid_mode=on
# 強制 GTID 一致性
enforce_gtid_consistency=1
# binlog日誌格式
binlog_format=row
# 設置 slave 為只讀 (僅限制普通用戶,不限制超級用戶)
read_only=1
# slave 保存同步中繼日誌的位置
relay_log=/opt/data/mysql/log/relay.log
# slave 同步中繼日誌索引文件
relay_log_index=/opt/data/mysql/log/relay-log-index
# slave 節點保存 master 節點信息方式 , 設定為 file 會生成master.info 和 relay-log.info 2個文件 ; 設定為 table 時信息就會存在 mysql.master_slave_info 表中
master_info_repository=TABLE
# 用於保存 slave 讀取 relay log 的位置信息
relay_log_info_repository=TABLE
# 當slave從庫宕機後, 假如relay-log損壞了, 導致一部分中繼日誌沒有處理, 則自動放棄所有未執行的relay-log, 並且重新從master上獲取日誌, 這樣就保證了relay-log的完整性
relay_log_recovery=1
# 這個參數控制了當mysql啟動或重啟時, mysql在搜尋GTIDs時是如何叠代使用binlog文件的. 這個選項設置為真, 會提升mysql執行恢復的性能. 因為這樣mysql-server啟動和binlog日誌清理更快
binlog_gtid_simple_recovery=1
# 跳過指定error no類型的錯誤, 設成all 跳過所有錯誤
slave_skip_errors=ddl_exist_errors
# 在從庫執行start slave的時候, 會將report-host和report-port(默認3306)發給主庫, 主庫記錄在全局哈希結構變量 slave_list 中
# 如果想要連report-user和report-password也顯示出來, 則需要主庫配置參參數show-slave-auth-info
report_port=3306
report_host=172.16.0.167
######## innodb settings ########
# innodb每個數據頁大小
innodb_page_size=16K
# 緩存innodb表的索引、數據, 插入數據時的緩沖, 專用mysql服務器設置的大小: 操作系統內存的70%-80%最佳
innodb_buffer_pool_size=6G
# 可以開啟多個內存緩沖池, 把需要緩沖的數據hash到不同的緩沖池中, 這樣可以並行的內存讀寫
innodb_buffer_pool_instances=8
# 加載本地熱數據到InnoDB緩存
innodb_buffer_pool_load_at_startup=1
# 停止MySQL服務時, InnoDB將InnoDB緩沖池中的熱數據保存到本地硬盤
innodb_buffer_pool_dump_at_shutdown=1
# page cleaner線程每次刷臟頁的數量
innodb_lru_scan_depth=2000
# 事務等待獲取資源等待的最長時間, 單位是秒
innodb_lock_wait_timeout=5
# 這兩個設置會影響InnoDB每秒在後臺執行多少操作. 大多數寫IO(除了寫InnoDB日誌)是後臺操作的.
# 如果深度了解硬件性能(如每秒可以執行多少次IO操作),則使用這些功能是很可取的,而不是讓它閑著
#innodb_io_capacity=4000
#innodb_io_capacity_max=8000
# 默認值為 fdatasync.
# 如果使用 硬件RAID磁盤控制器, 可能需要設置為 O_DIRECT. 這在讀取InnoDB緩沖池時可防止雙緩沖(double buffering)效應, 否則會在文件系統緩存與InnoDB緩存間形成2個副本(copy).
# 如果不使用硬件RAID控制器,或者使用SAN存儲時, O_DIRECT 可能會導致性能下降
#innodb_flush_method=O_DIRECT
#innodb_file_format=Barracuda
#innodb_file_format_max=Barracuda
#innodb_strict_mode=1
#innodb_file_per_table=1
# innodb重做日誌保存目錄
innodb_log_group_home_dir=/opt/data/mysql/redolog/
# innodb回滾日誌保存目錄
innodb_undo_directory=/opt/data/mysql/undolog/
# undo回滾段的數量, 至少大於等於35, 默認128
innodb_undo_logs=128
# 用於設定創建的undo表空間的個數, 在mysql_install_db時初始化後, 就再也不能被改動了;
# 默認值為0, 表示不獨立設置undo的tablespace, 默認記錄到ibdata中; 否則, 則在undo目錄下創建這麽多個undo文件,
# 例如假定設置該值為4, 那麽就會創建命名為undo001~undo004的undo tablespace文件, 每個文件的默認大小為10M
# 修改該值會導致Innodb無法完成初始化, 數據庫無法啟動
#innodb_undo_tablespaces=0
# InnoDB存儲引擎在刷新一個臟頁時, 會檢測該頁所在區(extent)的所有頁, 如果是臟頁, 那麽一起刷新.
# 這樣做的好處是通過AIO可以將多個IO寫操作合並為一個IO操作. 對於傳統機械硬盤建議使用, 而對於固態硬盤可以關閉
#innodb_flush_neighbors=1
# 日誌文件的大小
innodb_log_file_size=4G
# 事務在內存中的緩沖
innodb_log_buffer_size=16M
# 控制是否使用, 使用幾個獨立purge線程(清除二進制日誌)
innodb_purge_threads=4
# mysql在5.6之前一直都是單列索引限制767, 起因是256×3-1. 這個3是字符最大占用空間(utf8).
# 在5.6以後, 開始支持4個字節的uutf8. 255×4>767, 於是增加了這個參數. 這個參數默認值是OFF. 當改為ON時, 允許列索引最大達到3072
innodb_large_prefix=1
# InnoDB kernel並發最大的線程數.
# 1) 最少設置為(num_disks+num_cpus)*2
# 2) 可以通過設置成1000來禁止這個限制
innodb_thread_concurrency=64
# 將死鎖相關信息保存到MySQL 錯誤日誌中
innodb_print_all_deadlocks=1
# RDER BY 或者 GROUP BY 操作的buffer緩存大小
innodb_sort_buffer_size=64M
########semi sync replication settings########
# 指定mysql插件目錄
#plugin_dir=/opt/data/mysql/lib/plugin
# 指定載入哪些插件
#plugin_load="rpl_semi_sync_master=semisync_master.so;rpl_semi_sync_slave=semisync_slave.so"
# 控制主庫上是否開啟semisync
#loose_rpl_semi_sync_master_enabled=1
# 控制備庫是否開啟semisync
#loose_rpl_semi_sync_slave_enabled=1
# 單位毫秒, 防止半同步復制在沒有收到確認的情況下, 發送堵塞. master在超時之前沒有收到確認, 將恢復到異步復制, 繼續執行半同步沒有進行的操作
#loose_rpl_semi_sync_master_timeout=5000
[mysqld-5.7]
# 轉儲每個bp instance LRU上最熱的page的百分比. 通過設置該參數可以減少轉儲的page數
#innodb_buffer_pool_dump_pct=40
# Page cleaner並未和buffer pool綁定, 其模型為一個協調線程 + 多個工作線程, 協調線程本身也是工作線程.
# 如果innodb_page_cleaners設置為8, 那麽就是一個協調線程, 加7個工作線程
#innodb_page_cleaners=4
# 開啟在線回收(收縮)undo log日誌文件
#innodb_undo_log_truncate=1
# 當超過這個閥值(默認是1G), 會觸發truncate回收(收縮)動作, truncate後空間縮小到10M
#innodb_max_undo_log_size=2G
# 控制回收(收縮)undo log的頻率
#innodb_purge_rseg_truncate_frequency=128
# mysql在搜尋GTID時是如何叠代使用binlog文件的. 這個選項設置為真, 會提升mysql執行恢復的性能. 因為這樣mysql-server啟動和binlog日誌清理更快
#binlog_gtid_simple_recovery=1
# 該參數控制 error log、genera log等等記錄日誌的顯示時間參數
log_timestamps=system
# 這個神奇的參數5.7.6版本引入, 用於定義一個記錄事務的算法, 這個算法使用hash標識來記錄事務.
# 如果使用MGR, 那麽這個hash值需要用於分布式沖突檢測何處理.
# 在64位的系統, 官網建議設置該參數使用 XXHASH64 算法. 如果線上並沒有使用該功能, 應該設為off
#transaction_write_set_extraction=MURMUR32
#show_compatibility_56=on
[client]
default_character-set=utf8
[mysql]
default_character-set=utf8
重啟 mysql 服務
[root@DTDREAM-TRAINING-HUB-01 etc]# systemctl restart mysqld
查看 binlog 日誌狀態
mysql> SHOW MASTER STATUS;
+------------------+----------+--------------+------------------+-------------------+
| File | Position | Binlog_Do_DB | Binlog_Ignore_DB | Executed_Gtid_Set |
+------------------+----------+--------------+------------------+-------------------+
| mysql-bin.000001 | 154 | | | |
+------------------+----------+--------------+------------------+-------------------+
1 row in set (0.00 sec)
查看 GTID 狀態
mysql> show variables like "%gtid%";
+----------------------------------+-----------+
| Variable_name | Value |
+----------------------------------+-----------+
| binlog_gtid_simple_recovery | ON |
| enforce_gtid_consistency | ON |
| gtid_executed_compression_period | 1000 |
| gtid_mode | ON |
| gtid_next | AUTOMATIC |
| gtid_owned | |
| gtid_purged | |
| session_track_gtids | OFF |
+----------------------------------+-----------+
查看服務器server_uuid
mysql> show global variables like '%uuid%';
+---------------+--------------------------------------+
| Variable_name | Value |
+---------------+--------------------------------------+
| server_uuid | 01378bf6-2b35-11e8-98fe-00163e04ca22 |
+---------------+--------------------------------------+
1 row in set (0.00 sec)
查看服務器 server_id
mysql> show variables like '%server_id%';
+----------------+-------+
| Variable_name | Value |
+----------------+-------+
| server_id | 10 |
| server_id_bits | 32 |
+----------------+-------+
2 rows in set (0.01 sec)
配置 slave 連接到 master
mysql> CHANGE MASTER TO MASTER_HOST='172.16.0.166',MASTER_USER='dt_sync',MASTER_PASSWORD='dtdreamsync',MASTER_LOG_FILE='mysql-bin.000001',MASTER_LOG_POS=0;
Query OK, 0 rows affected, 2 warnings (0.04 sec)
啟動slave
mysql> START SLAVE;
Query OK, 0 rows affected (0.01 sec)
查看 slave 狀態
確認 Slave_IO_Running 和 Slave_SQL_Running 兩個參數都為 Yes 狀態
mysql> SHOW SLAVE STATUS\G
*************************** 1. row ***************************
Slave_IO_State: Waiting for master to send event
Master_Host: 172.16.0.166
Master_User: dt_sync
Master_Port: 3306
Connect_Retry: 60
Master_Log_File: mysql-bin.000001
Read_Master_Log_Pos: 154
Relay_Log_File: relay.000002
Relay_Log_Pos: 367
Relay_Master_Log_File: mysql-bin.000001
Slave_IO_Running: Yes
Slave_SQL_Running: Yes
Replicate_Do_DB:
Replicate_Ignore_DB:
Replicate_Do_Table:
Replicate_Ignore_Table:
Replicate_Wild_Do_Table:
Replicate_Wild_Ignore_Table:
Last_Errno: 0
Last_Error:
Skip_Counter: 0
Exec_Master_Log_Pos: 154
Relay_Log_Space: 564
Until_Condition: None
Until_Log_File:
Until_Log_Pos: 0
Master_SSL_Allowed: No
Master_SSL_CA_File:
Master_SSL_CA_Path:
Master_SSL_Cert:
Master_SSL_Cipher:
Master_SSL_Key:
Seconds_Behind_Master: 0
Master_SSL_Verify_Server_Cert: No
Last_IO_Errno: 0
Last_IO_Error:
Last_SQL_Errno: 0
Last_SQL_Error:
Replicate_Ignore_Server_Ids:
Master_Server_Id: 10
Master_UUID: 01378bf6-2b35-11e8-98fe-00163e04ca22
Master_Info_File: mysql.slave_master_info
SQL_Delay: 0
SQL_Remaining_Delay: NULL
Slave_SQL_Running_State: Slave has read all relay log; waiting for more updates
Master_Retry_Count: 86400
Master_Bind:
Last_IO_Error_Timestamp:
Last_SQL_Error_Timestamp:
Master_SSL_Crl:
Master_SSL_Crlpath:
Retrieved_Gtid_Set:
Executed_Gtid_Set:
Auto_Position: 0
Replicate_Rewrite_DB:
Channel_Name:
Master_TLS_Version:
1 row in set (0.00 sec)
主從測試
創建測試數據庫 RUNOOB 在 master
mysql> CREATE DATABASE IF NOT EXISTS RUNOOB DEFAULT CHARSET utf8 COLLATE utf8_general_ci;
Query OK, 1 row affected (0.00 sec)
mysql> show databases;
+--------------------+
| Database |
+--------------------+
| information_schema |
| RUNOOB |
| log |
| mysql |
| performance_schema |
| redolog |
| sys |
| undolog |
+--------------------+
8 rows in set (0.00 sec)
切換到 RUNOOB
mysql> use RUNOOB
Database changed
在 RUNOOB 庫中創建測試表 runoob_tbl
mysql> CREATE TABLE IF NOT EXISTS `runoob_tbl`(
-> `runoob_id` INT UNSIGNED AUTO_INCREMENT,
-> `runoob_title` VARCHAR(100) NOT NULL,
-> `runoob_author` VARCHAR(40) NOT NULL,
-> `submission_date` DATE,
-> PRIMARY KEY ( `runoob_id` )
-> )ENGINE=InnoDB DEFAULT CHARSET=utf8;
Query OK, 0 rows affected (0.01 sec)
mysql> show tables
-> ;
+------------------+
| Tables_in_RUNOOB |
+------------------+
| runoob_tbl |
+------------------+
1 row in set (0.00 sec)
在 runoob_tbl 表中插入一條數據
mysql> BEGIN;
Query OK, 0 rows affected (0.00 sec)
mysql> INSERT INTO runoob_tbl (runoob_title, runoob_author, submission_date) VALUES ("python", "人生苦短吾愛python", NOW());
Query OK, 1 row affected, 1 warning (0.00 sec)
mysql> COMMIT;
Query OK, 0 rows affected (0.00 sec)
mysql>
mysql> select * from runoob_tbl;
+-----------+--------------+---------------+-----------------+
| runoob_id | runoob_title | runoob_author | submission_date |
+-----------+--------------+---------------+-----------------+
| 1 | python | 人生苦短吾愛python | 2018-03-19 |
+-----------+--------------+---------------+-----------------+
1 row in set (0.00 sec)
查看 binlog 日誌狀態
mysql> SHOW MASTER STATUS;
+------------------+----------+--------------+------------------+------------------------------------------+
| File | Position | Binlog_Do_DB | Binlog_Ignore_DB | Executed_Gtid_Set |
+------------------+----------+--------------+------------------+------------------------------------------+
| mysql-bin.000001 | 2187 | | | 01378bf6-2b35-11e8-98fe-00163e04ca22:1-7 |
+------------------+----------+--------------+------------------+------------------------------------------+
1 row in set (0.00 sec)
查看 slave 是否已經復制數據
mysql> show databases;
+--------------------+
| Database |
+--------------------+
| information_schema |
| RUNOOB |
| log |
| mysql |
| performance_schema |
| redolog |
| sys |
| undolog |
+--------------------+
8 rows in set (0.00 sec)
mysql>
mysql> use RUNOOB;
Database changed
mysql>
mysql> show tables;
+------------------+
| Tables_in_RUNOOB |
+------------------+
| runoob_tbl |
+------------------+
1 row in set (0.00 sec)
mysql>
mysql> select * from runoob_tbl;
+-----------+--------------+---------------+-----------------+
| runoob_id | runoob_title | runoob_author | submission_date |
+-----------+--------------+---------------+-----------------+
| 2 | python | 人生苦短吾愛python | 2018-03-19 |
+-----------+--------------+---------------+-----------------+
1 row in set (0.00 sec)
mysql>
mysql> SHOW SLAVE STATUS \G
mysql> SHOW SLAVE STATUS \G
*************************** 1. row ***************************
......
Master_SSL_Crl:
Master_SSL_Crlpath:
Retrieved_Gtid_Set: 01378bf6-2b35-11e8-98fe-00163e04ca22:1-7
Executed_Gtid_Set: 01378bf6-2b35-11e8-98fe-00163e04ca22:1-7
Auto_Position: 0
......
1 row in set (0.00 sec)
mysql 5.7主從安裝和配置