這篇文章主要介紹“MySQL主從搭建的方法教程”,在日常操作中,相信很多人在MYSQL主從搭建的方法教程問題上存在疑惑,小編查閱了各式資料,整理出簡單好用的操作方法,希望對(duì)大家解答”MYSQL主從搭建的方法教程”的疑惑有所幫助!接下來,請(qǐng)跟著小編一起來學(xué)習(xí)吧!
長白網(wǎng)站制作公司哪家好,找成都創(chuàng)新互聯(lián)!從網(wǎng)頁設(shè)計(jì)、網(wǎng)站建設(shè)、微信開發(fā)、APP開發(fā)、響應(yīng)式網(wǎng)站等網(wǎng)站項(xiàng)目制作,到程序開發(fā),運(yùn)營維護(hù)。成都創(chuàng)新互聯(lián)從2013年創(chuàng)立到現(xiàn)在10年的時(shí)間,我們擁有了豐富的建站經(jīng)驗(yàn)和運(yùn)維經(jīng)驗(yàn),來保證我們的工作的順利進(jìn)行。專注于網(wǎng)站建設(shè)就選成都創(chuàng)新互聯(lián)。
MySQL主從復(fù)制搭建主要步驟有:安裝mysql軟件、Master端配置部署、Slave端配置部署、建立主從同步
安裝操作系統(tǒng)環(huán)境:REDHAT6.5
以下內(nèi)容都是自己在虛擬機(jī)親測(cè)
安裝環(huán)境:
NODE1 主機(jī)名 master IP地址 192.168.159.128
NODE2 主機(jī)名 slave IP地址 192.168.159.129
#tar zxvf mysql-5.6.38-linux-glibc2.12-x86_64.tar.gz -C /usr/local/
# cd /usr/local/
# mv mysql-5.6.38-linux-glibc2.12-x86_64 mysql
# cd mysql
# groupadd mysql
# useradd -g mysql mysql
# passwd
mysql
# cd /usr/local/
# chown -R mysql.mysql mysql
#
./script/mysql_install_db --user=mysql
# cd /usr/local/mysql
# chown -R root:root ./
# chown -R mysql:mysql data
# cp support-files/mysql.server /etc/rc.d/init.d/mysqld
# chmod u+x /etc/rc.d/init.d/mysqld
# chkconfig --add mysqld
# /etc/rc.d/init.d/mysqld start
在這里是采用的簡易安裝,如果想要在生產(chǎn)環(huán)境使用,想自己指定需要的參數(shù),建議還是使用源碼安裝
注:主從都使用yum install 的方式安裝系統(tǒng)自帶的mysql也可以使用,親測(cè)搭建成功,只是版本會(huì)比較低
黃色部分為新添加
vi /etc/my.cnf
[mysqld]
server-id=101
log-bin=/var/lib/mysql/mysql-bin.log
log-bin-index=/var/lib/mysql/mysql-bin.index
expire_logs_days=30
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
user=mysql
# Disabling symbolic-links is recommended to prevent assorted security risks
symbolic-links=0
[mysqld_safe]
log-error=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid
說明:
log-bin :給出二進(jìn)制日志的所有文件基礎(chǔ)名
log-bin-index :給出二進(jìn)制日志文件的文件名,通常以000001開始,順序遞增。全名:master-bin.000001
server-id :mysql服務(wù)器唯一ID,在主從復(fù)制的所有服務(wù)器中必須唯一。
create user repl_user;
GRANT REPLICATION SLAVE ON *.* TO 'repl'@'%' IDENTIFIED BY PASSWORD '******';
設(shè)置密碼時(shí)會(huì)遇到報(bào)錯(cuò):
ERROR 1372 (HY000): Password hash should be a 41-digit hexadecimal number
解決辦法:用select password('你想輸入的密碼');查詢出你的密碼對(duì)應(yīng)的字符串
select password('123456');
查出的是*6BB4837EB74329105EE4568DDA7DC67ED2CA2AD9
GRANT REPLICATION SLAVE ON *.* TO 'repl_user'@'%' IDENTIFIED BY PASSWORD '*6BB4837EB74329105EE4568DDA7DC67ED2CA2AD9';
a、配置參數(shù):[mysqld]黃色部分為新添加 vi /etc/my.cnf [mysqld] server-id=102 log-bin=/var/lib/mysql/mysql-relay-bin.log log-bin-index=/var/lib/mysql/mysql-relay-bin.index relay_log_purge=on datadir=/var/lib/mysql socket=/var/lib/mysql/mysql.sock user=mysql # Disabling symbolic-links is recommended to prevent assorted security risks symbolic-links=0
[mysqld_safe] log-error=/var/log/mysqld.log pid-file=/var/run/mysqld/mysqld.pid |
(重建備庫使用該方法,備庫和主庫是正常數(shù)據(jù)同步狀態(tài))
建立主從同步可以從主庫上導(dǎo)出數(shù)據(jù),也可以從已有的從庫上導(dǎo)出數(shù)據(jù),然后再導(dǎo)入到新的從庫中,change master to建立同步。
在主庫上導(dǎo)出數(shù)據(jù):
mysqldump -u***-p***-S /data/mysql6001/mysql.sock --default-character-set=utf8 –q --single-transaction --master-data-A > /tmp/all_database.sql
(重建備庫時(shí))也可在從庫上導(dǎo)出數(shù)據(jù):(我這里是測(cè)試環(huán)境,所以對(duì)于我來說都是新建的數(shù)據(jù)庫,所以無所謂啦)
mysqldump -u***-p***-S /data/mysql6001/mysql.sock --default-character-set=utf8 -q --single-transaction --dump-slave-A > /tmp/all_database.sql
NOTES:
--master-data和--dump-slave導(dǎo)出的備份中,會(huì)包含master_log_file和master_log_pos信息。
--master-data選項(xiàng)的作用,是將二進(jìn)制的信息寫入到輸出文件中,在這里是寫入到備份的sql文件中。
--dump-slave選項(xiàng)的作用,是用戶在slave端dump數(shù)據(jù),建立新的slave,至少是第2個(gè)slave,也就是已經(jīng)有A-->B,現(xiàn)在從B上導(dǎo)出數(shù)據(jù)建立A-->C的復(fù)制,這個(gè)不但可以用于建立slave,還可用于備份中,用于讀binlog進(jìn)行roll forward的起點(diǎn)
例子:(實(shí)際直接主庫全庫導(dǎo)出即可)
mysqldump -uroot --events --all-databases > /opt/mysql.dump
mysql -u*** -p*** --default-character-set=utf8< all_database.sql
例子:
mysql -uroot 以下為建立主從同步最基本的6個(gè)項(xiàng):change master to
master_host='xxx.xxx.xxx.xxx', #
主庫IP
master_port=6001, #
主庫mysqld的端口 master_user='repl', #
主庫中創(chuàng)建的有REPLICATION SLAVE權(quán)限的用戶 master_password='xxxxxxxx', #
該用戶的密碼 master_log_file='mysql-bin.000xxx',
#
已在導(dǎo)入時(shí)指定了 master_log_pos=xxxxxx; #已在導(dǎo)入時(shí)指定了 start slave; 例子: master_log_file和master_log_pos通過在主庫上使用命令獲得: show master status \G; 在從庫上執(zhí)行: change master
to master_host='192.168.159.128', master_port=3306, master_user='repl_user', master_password='123456', master_log_file='mysql-bin.000001', master_log_pos=1071; start
slave; Another MySQL daemon already running with the same
unix socket 原因多個(gè)Mysql進(jìn)程使用了同一個(gè)socket。 兩個(gè)方法解決: 第一個(gè)是立即關(guān)機(jī) 使用命令 shutdown -h now 關(guān)機(jī),關(guān)機(jī)后在啟動(dòng),進(jìn)程就停止了。 第二個(gè)直接把mysql.sock文件改名即可。也可以刪除,推薦改名。 然后就可以啟動(dòng)mysql了。 ERROR-2013報(bào)錯(cuò)代碼,可能造成的原因是 [ERROR] Slave I/O: error connecting to master
'repl_user@192.168.159.128:3306' - retry-time: 60 retries: 86400, Error_code: 2013 iptables -F setenforce 0 Last_IO_Errno: 1045 Last_IO_Error: error connecting to master 'repl_user@192.168.159.128:3306'
- retry-time: 60 retries: 86400 必須使用以下方法授權(quán) select password('123456'); GRANT REPLICATION SLAVE ON
*.* TO 'repl_user'@'%' IDENTIFIED BY PASSWORD '*6BB4837EB74329105EE4568DDA7DC67ED2CA2AD9';4、登陸MYSQL報(bào)錯(cuò)ERROR-2002
登陸MYSQL時(shí)如果報(bào)錯(cuò): ERROR 2002 (HY000): Can't connect to local
MySQL server through socket '/tmp/mysql.sock' 解決方法: ln -s /var/lib/mysql/mysql.sock
/tmp/mysql.sock 到此,關(guān)于“MYSQL主從搭建的方法教程”的學(xué)習(xí)就結(jié)束了,希望能夠解決大家的疑惑。理論與實(shí)踐的搭配能更好的幫助大家學(xué)習(xí),快去試試吧!若想繼續(xù)學(xué)習(xí)更多相關(guān)知識(shí),請(qǐng)繼續(xù)關(guān)注創(chuàng)新互聯(lián)網(wǎng)站,小編會(huì)繼續(xù)努力為大家?guī)砀鄬?shí)用的文章!
3.3、從庫與主機(jī)建立同步
二、主從復(fù)制狀態(tài)檢查及異常處理
1、MYSQL啟動(dòng)報(bào)錯(cuò)
(1)MYSQL啟動(dòng)時(shí)報(bào)錯(cuò):
(2)在REDHAT7.0版本安裝MYSQL5.6.38時(shí)遇到以下啟動(dòng)報(bào)錯(cuò)
service mysql start
Starting MySQL.180424 22:21:31 mysqld_safe error: log-error set to '/var/log/mariadb/mariadb.log', however file don't exists. Create writable for user 'mysql'.
ERROR! The server quit without updating PID file (/var/lib/mysql/REDHAT70.pid).
解決方法:
mkdir -p /var/log/mariadb/
cd /var/log/mariadb/
touch mariadb.log
chmod -R 775 mariadb.log
chown -R mysql:mysql mariadb.log2、ERROR-2013報(bào)錯(cuò)
3、ERROR-1045報(bào)錯(cuò)
網(wǎng)站標(biāo)題:MYSQL主從搭建的方法教程
當(dāng)前地址:http://weahome.cn/article/ggedpd.html