MySQL主從服務(wù)安裝步驟

MySQL主從服務(wù)安裝步驟

安裝MySQL

安裝epel源和remi源

安裝MySQL

yum install -y --enablerepo=remi  mysql-libs  mysql-devel  mysql  mysql-server

創(chuàng)建MySQL服務(wù)所需的目錄

mkdir -p /opt/data/mysql  &&  chown -R  mysql:mysql  /opt/data/mysql
mkdir -p /var/log/mysql && chown -R mysql.mysql /var/log/mysql

將下列代碼替換/etc/my.cnf

[mysqld]
user                    = mysql
bind-address            = 10.0.0.104    #監(jiān)聽I(yíng)P
port                    = 3306      #監(jiān)聽端口
character_set_server    = utf8      #默認(rèn)字符集編碼    
max_connect_errors      = 100000
max_connections         = 500
server-id               = 1000
skip_name_resolve
datadir                 = /opt/data/mysql
log-error               = /var/log/mysql/mysql-error.log
socket                  = /var/lib/mysql/mysql.sock
pid-file                = /var/run/mysqld/mysqld.pid
back_log                = 2000  #創(chuàng)建TCP連接時(shí),允許的最大同時(shí)未完成的連接個(gè)數(shù)(主要適用于短連接場(chǎng)景)
binlog-format           = MIXED     #Binlog寫入格式,共有ROW/STATEMENT/MIXED三種可選。一般使用MIXED
log-bin                 = /opt/data/mysql/mysql-bin.log #Binlog日志保存路徑
expire_logs_days        = 3     #Binlog保留時(shí)間(單位:天)
max_binlog_size         = 100M      #每個(gè)binlog日志大小
binlog_cache_size       = 4M        #binlong緩存大小
max_binlog_cache_size   = 512   #最大binlog緩存大小
symbolic-links          = 0

修改MySQL數(shù)據(jù)安裝路徑

mysql_install_db --user=mysql --datadir=/opt/data/mysql

這里的--datadir路徑和/etc/my.cnf里參數(shù)datadir一致

啟動(dòng)MySQL

service mysqld start

創(chuàng)建新的授權(quán)帳號(hào)root

grant all on *.* to 'root'@'%' with grant option;
flush privileges;

清理垃圾帳號(hào)

delete from mysql.user where user = '';
delete from mysql.user where host = '::1';
flush privileges;

數(shù)據(jù)庫(kù)主從配置

配置主從需要特注意一點(diǎn),就是主庫(kù)和從庫(kù)配置文件里的參數(shù)server-id必須都保持唯一

主庫(kù)server-id:


主庫(kù)server-id
主庫(kù)server-id

從庫(kù)server-id:


從庫(kù)server-id
從庫(kù)server-id

創(chuàng)建主從同步帳號(hào)

grant replication slave, replication client on *.* to  'replication'@'%' identified by '123456';

導(dǎo)出主庫(kù)

mysqldump -h10.0.0.104 -uroot -p --all-databases --master-data=2 --routines --events --quick> 10.0.0.104.sql
  • --master-data=2表示需要記錄導(dǎo)出數(shù)據(jù)當(dāng)時(shí)主庫(kù)的binlog位置
  • --routines表示導(dǎo)出存儲(chǔ)過程(可視實(shí)際庫(kù)表決定是否使用)
  • --events表示導(dǎo)出事件(可根據(jù)實(shí)際庫(kù)表決定是否使用)
  • --quick表示讓服務(wù)端不將結(jié)果集一次發(fā)送,而是分批發(fā)送,可減輕壓力
    另外,加上--master-data后默認(rèn)是鎖庫(kù)的,可確保數(shù)據(jù)一致性,即導(dǎo)出數(shù)據(jù)和binlog位置的一致。
    對(duì)于Innodb引擎,可增加--single-transaction取消鎖庫(kù)并利用Innodb事務(wù)特性確保數(shù)據(jù)一致

將導(dǎo)出的數(shù)據(jù)庫(kù)導(dǎo)入到從庫(kù)

mysql -uroot < 10.0.0.104.sql

設(shè)置同步主庫(kù)參數(shù)

登錄到從庫(kù)

CHANGE MASTER TO MASTER_LOG_FILE='mysql-bin.000002', MASTER_LOG_POS=277, master_host='10.0.0.104', master_port=3306, master_user='replication', master_password='123456';

上面MASTER_LOG_FILEMASTER_LOG_POS參數(shù)可以從導(dǎo)出主庫(kù)的sql語(yǔ)句頭部找到。

`MASTER_LOG_FILE`,`MASTER_LOG_POS`參數(shù)
`MASTER_LOG_FILE`,`MASTER_LOG_POS`參數(shù)

檢查slave同步的參數(shù)信息是否正確

show slave status;
檢查slave同步的參數(shù)信息是否正確
檢查slave同步的參數(shù)信息是否正確

開始同步

start slave;

檢查同步是否正常

show slave status;
檢查同步是否正常
檢查同步是否正常

如果上圖中Slave_IO_RunningSlave_SQL_Running兩個(gè)參數(shù)狀態(tài)都為Yes,則說(shuō)明同步正常

另可通過監(jiān)控工具來(lái)監(jiān)控這兩個(gè)參數(shù)狀態(tài)是否都為YES,來(lái)判斷從庫(kù)是否同步正常

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容