基于 CentOS Mysql 安装与主从同步配置详解
CentOS Mysql 安裝
Mysql (Master/Slave) 主從同步
1、為什么要使用主從同步
1.如果主服務器出現問題,可以快速切換到從服務器提供的服務
2.可以在從服務器上執行查詢操作,降低主服務器的訪問壓力
3.可以在從服務器上執行備份,以避免備份期間影響主服務器的服務
注意:一般只有更新不頻繁的數據或者對實時性要求不高的數據可以通過從服務器查詢,實時性要求高的數據仍然需要從主服務器獲得。
Window 數據庫主從(Master/Slave)同步安裝與配置詳解
2、 CentOS安裝Mysql 5.7.19
Centos7.3 安裝Mysql并修改初始密碼
Window 安裝Mysql并修改初始密碼
3、測試環境
我這里使用parallels desktop 虛擬機安裝的Centos操作系統
數據庫版本: 5.7.19
主機A:10.211.55.3(Master)
主機B:10.211.55.4(Slave)
4、配置主服務器Master
4.1 給從服務器設置授權用戶(創建復制帳號)
建立一個帳戶javen,并且只能允許從 10.211.55.4 這個地址上來登陸,密碼是123456。
mysql> grant replication slave on *.* to 'javen'@'10.211.55.4' identified by '123456'; mysql> flush privileges;4.2 主服務器Master配置
在 etc/my.cnf的[mysqld]下添加如下內容
port=3306#[必須]啟用二進制日志 binlog-ignore-db=mysql #[必須]服務器唯一ID,默認是1 server-id= 1 #只保留7天的二進制日志,以防磁盤被日志占滿 expire-logs-days = 7 #不備份的數據庫 binlog-ignore-db=information_schema binlog-ignore-db=performation_schema binlog-ignore-db=sys binlog-ignore-db=gogs4.3 重啟MySQL服務并設置讀取鎖定
service mysqld restart在主服務器上設置讀取鎖定有效,確保沒有數據庫操作,以便獲得一個一致性的快照
mysql -u root -proot -P3306 mysql> flush tables with read lock;4.4 查看主服務器上當前的二進制日志名和偏移量值
mysql> show master status; +------------------+----------+--------------+-------------------------------------------------------+-------------------+ | File | Position | Binlog_Do_DB | Binlog_Ignore_DB | Executed_Gtid_Set | +------------------+----------+--------------+-------------------------------------------------------+-------------------+ | mysql-bin.000001 | 154 | | mysql,information_schema,performation_schema,sys,gogs | | +------------------+----------+--------------+-------------------------------------------------------+-------------------+ 1 row in set (0.00 sec)這里的 File 、Position 是在配置Salve的時候要使用到的,Binlog_Do_DB表示要同步的數據庫,Binlog_Ignore_DB 表示Ignore的數據庫,這些都是在配置的時候進行指定的。
另外:如果執行這個步驟始終為Empty set(0.00 sec),那說明前面的my.cnf 沒配置對。
5、配置從服務器Slave
5.1 修改從數據庫的配置
修改之后完整的配置如下:
# For advice on how to change settings please see # http://dev.mysql.com/doc/refman/5.7/en/server-configuration-defaults.html[mysqld] # # Remove leading # and set to the amount of RAM for the most important data # cache in MySQL. Start at 70% of total RAM for dedicated server, else 10%. # innodb_buffer_pool_size = 128M # # Remove leading # to turn on a very important data integrity option: logging # changes to the binary log between backups. # log_bin # # Remove leading # to set options mainly useful for reporting servers. # The server defaults are faster for transactions and fast SELECTs. # Adjust sizes as needed, experiment to find the optimal values. # join_buffer_size = 128M # sort_buffer_size = 2M # read_rnd_buffer_size = 2M datadir=/var/lib/mysql socket=/var/lib/mysql/mysql.sock##以下是添加的內容log-bin=mysql-bin server-id=3 binlog-ignore-db = mysql binlog-ignore-db = information_schema binlog-ignore-db = performation_schema binlog-ignore-db = sys log-slave-updates slave-skip-errors=all slave-net-timeout=60# Disabling symbolic-links is recommended to prevent assorted security risks symbolic-links=0log-error=/var/log/mysqld.log pid-file=/var/run/mysqld/mysqld.pid5.2 重啟從數據庫并設置Slave數據庫
service mysqld restart登錄從數據庫并做如下設置
mysql> stop slave; #關閉Slave mysql> change master to master_host='10.211.55.3',master_user='javen',master_password='123456',master_log_file='mysql-bin.000001', master_log_pos= 154; mysql> start slave; #開啟Slave注意:在這里指定Master的信息,master_log_file是在配置Master的時候的File選項, master_log_pos是在配置Master的Position 選項,這里要進行對應。
### 5.3 查看Slave配置的信息
6、關閉掉主數據庫的讀取鎖定
mysql> unlock tables;7、在主數據庫中創建一個表以及添加數據測試
轉載于:https://www.cnblogs.com/zyw-205520/p/7349663.html
總結
以上是生活随笔為你收集整理的基于 CentOS Mysql 安装与主从同步配置详解的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 缓存之 ACache
- 下一篇: sql server数据库查询超时报错