久久精品人人爽,华人av在线,亚洲性视频网站,欧美专区一二三

MYSQL主從搭建的方法是什么

167次閱讀
沒有評論

共計 6280 個字符,預計需要花費 16 分鐘才能閱讀完成。

這篇文章主要講解了“MYSQL 主從搭建的方法是什么”,文中的講解內容簡單清晰,易于學習與理解,下面請大家跟著丸趣 TV 小編的思路慢慢深入,一起來研究和學習“MYSQL 主從搭建的方法是什么”吧!

一、MySQL 主從復制搭建

MySQL 主從復制搭建主要步驟有:安裝 mysql 軟件、Master 端配置部署、Slave 端配置部署、建立主從同步

1、  安裝 MYSQL
a、環境準備及軟件安裝

應用需求:

雙機熱備提供備份,冗余功能

安裝環境:

NODE1 主機名 master  IP 地址  192.168.159.128

NODE2 主機名 slave  IP 地址  192.168.159.129

VIA  IP(漂移 IP)10.10.10.100

NODE1 為主節點,NODE2 為從節點,同步的數據庫名 fire9

在安裝之前請確認下面的安裝包不存在

rpm -e mysql-devel-4.1.20-1.RHEL4.1

rpm -e mysql-bench-4.1.20-1.RHEL4.1

rpm -e php-mysql-4.3.9-3.15

rpm -e libdbi-dbd-mysql-0.6.5-10.RHEL4.1

rpm -e mod_auth_mysql-2.6.1-2.2

rpm -e mysql-server-4.1.20-1.RHEL4.1

rpm -e MySQL-python-1.0.0-1.RHEL4.1.i386

rpm -e MyODBC-2.50.39-21.RHEL4.1.i386

rpm -e  qt-MySQL-3.3.3-9.3.i386

rpm -e mysqlclient10-devel-3.23.58-4.RHEL4.1.i386

rpm -e mysqlclient10-3.23.58-4.RHEL4.1

rpm -e cyrus-sasl-sql-2.1.19-5.EL4.i386

rpm -e  perl-DBD-MySQL-2.9004-3.1.i386

rpm -e mysql-4.1.20-1.RHEL4.1

安裝準備:我已經把相關的軟件和配置文件都放在工具包里面了

redhat as 4 update4 32 位

mysql-5.0.45-linux-i686-icc-glibc23.tar.gz

libnet-1.1.2.1-1.rh.el.um.1.i386.rpm

heartbeat-pils-2.0.4-1.el4.i386.rpm

heartbeat-stonith-2.0.4-1.el4.i386.rpm

heartbeat-2.0.4-1.el4.i386

perl-5.8.8.tar.gz

DBI-1.59.tar.gz

DBD-mysql-4.005.tar.gz

Time-HiRes-01.20.tar.gz

Period-1.20.tar.gz

Convert-BER-1.31.tar.gz

Mon-0.11.tar.gz

mon-0.99.3-47.tar.gz

b、安裝 MYSQL  主從都要進行安裝

# tar zxvf mysql-5.0.45-linux-i686-icc-glibc23.tar.gz -C /usr/local/

# cd /usr/local/

# mv mysql-5.0.45-linux-i686-icc-glibc23 mysql

# cd mysql

# groupadd mysql

# useradd -g mysql mysql

#passwd mysql

# ./scripts/mysql_install_db –user=mysql

# cp support-files/mysql.server /etc/rc.d/init.d/mysqld

# chmod +x /etc/rc.d/init.d/mysqld

# chkconfig –add mysqld

# /etc/rc.d/init.d/mysqld start

注:主從都使用 yum install 的方式安裝系統自帶的 mysql 也可以使用,只是版本會比較低

2、 Master 端配置部署
a、  在主服務器上的 my.cnf 配置文件中的 [mysqld] 節點下添加以下配置

黃色部分為新添加

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 :給出二進制日志的所有文件基礎名

log-bin-index :給出二進制日志文件的文件名,通常以 000001 開始,順序遞增。全名:master-bin.000001

server-id :mysql 服務器唯一 ID,在主從復制的所有服務器中必須唯一。

b、  創建用戶,并賦予權限:

create user repl_user;

GRANT REPLICATION SLAVE ON *.* TO repl @ % IDENTIFIED BY PASSWORD ******

設置密碼時會遇到報錯:

ERROR 1372 (HY000): Password hash should be a 41-digit hexadecimal number

解決辦法:用 select password(你想輸入的密碼 查詢出你的密碼對應的字符串

select password(123456

查出的是 *6BB4837EB74329105EE4568DDA7DC67ED2CA2AD9

GRANT REPLICATION SLAVE ON *.* TO repl_user @ % IDENTIFIED BY PASSWORD *6BB4837EB74329105EE4568DDA7DC67ED2CA2AD9

2、Slave 端配置部署
a、配置參數:[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

3、建立主從同步

(重建備庫也是使用該方法)

建立主從同步可以從主庫上導出數據,也可以從已有的從庫上導出數據,然后再導入到新的從庫中,change master to 建立同步。

3.1、導出數據

在主庫上導出數據:

mysqldump -u***-p***-S /data/mysql6001/mysql.sock   –default-character-set=utf8 –q –single-transaction –master-data-A   /tmp/all_database.sql

(或者)在從庫上導出數據:

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 導出的備份中,會包含 master_log_file 和 master_log_pos 信息。

例子:

mysqldump -uroot –events –all-databases /opt/mysql.dump

3.2、從庫導入數據

mysql -u*** -p*** –default-character-set=utf8 all_database.sql

例子:

mysql -uroot mysql.dump /mysql.dump

3.3、從庫與主機建立同步

以下為建立主從同步最基本的 6 個項:change master to

master_host= xxx.xxx.xxx.xxx ,  #  主庫 IP

master_port=6001,  #  主庫 mysqld 的端口

master_user= repl ,  #  主庫中創建的有 REPLICATION SLAVE 權限的用戶

master_password= xxxxxxxx ,  #  該用戶的密碼

master_log_file= mysql-bin.000xxx , #  已在導入時指定了

master_log_pos=xxxxxx;  #已在導入時指定了

start slave;

 

例子:

master_log_file 和 master_log_pos 通過在主庫上使用命令獲得:

show master status \G;

在從庫上執行:

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;

 

二、主從復制狀態檢查及異常處理
1、主從復制狀態檢查

主庫查看 show master status\G

File: mysql-bin.000303

Binlog_Do_DB:

show master status\G

Position: 18711563

從庫:

Master_Log_File: mysql-bin.000303–IO_threadRead_Master_Log_Pos: 18711563–IO_threadRelay_Master_Log_File: mysql-bin.000303–sql_threadExec_Master_Log_Pos: 18711163–sql_thread span =

b、通過 show slave status\G 查看錯誤信息:show slave status\G

Last_SQL_Errno: 1062

Last_SQL_Error: Error Duplicate entry 1 for key PRIMARY on query. Default database:

test . Query: insert into test values(1,2,3,4,5,6)

 

c、通過錯誤日志查看錯誤信息:

140828 16:27:51 [ERROR] Slave SQL: Error Duplicate entry 1 for key PRIMARY on query.

Default database: test . Query: insert into test values(1,2,3,4,5,6) ,

Error_code: 1062

140828 16:27:51 [Warning] Slave: Duplicate entry 1 for key PRIMARY Error_code: 1062

140828 16:27:51 [ERROR] Error running query, slave SQL thread aborted. Fix the problem,

and restart the slave SQL thread with SLAVE START . We stopped at log

mysql-bin.000303 position 18711163

根據這些報錯信息,往往就能夠定位到發生異常的原因。如果我們了解產生異常的具體事件,而且能夠掌控,可以通過設置 sql_slave_skip_counter 參數來跳過當前錯誤。set global sql_slave_skip_counter=1;

a、直接 set global sql_slave_skip_counter=n;(n 設置很大的值,即:跳過所有錯誤),

b、設置 slave_skip_errors=all; 跳過所有類型的錯誤

c、直接查看主庫的 binlog,然后在從庫上直接執行 change master to。

這些方法都會導致主從數據不一致。

如果發現從庫與主庫差異太大,無法通過手動操作或數據修改重新建立同步。可以參考上述 MySQL 主從復制搭建 重新搭建從庫。

4、主從復制延遲

主從復制延遲,可能的原因有:

a、主從同步延遲與系統時間的關系,查看主從兩臺機器間系統時間差

b、主從同步延遲與壓力、網絡、機器性能的關系,查看從庫的 io,cpu,mem 及網絡壓力

c、主從同步延遲與 lock 鎖的關系(myisam 表讀時會堵塞寫),盡量避免使用 myisam 表。一個實例里面盡量減少數據庫的數量。

d、主從復制發生異常而中斷,過很久之后才發現復制異常。可通過查看 master 與 slave 的 status 估算相差的日志。如果相差太大,則可以考慮重做從庫。

5、MYSQL 啟動報錯

MYSQL 啟動時報錯:

Another MySQL daemon already running with the same unix socket

原因多個 Mysql 進程使用了同一個 socket。

兩個方法解決:

第一個是立即關機 使用命令 shutdown -h now 關機,關機后在啟動,進程就停止了。

第二個直接把 mysql.sock 文件改名即可。也可以刪除,推薦改名。

然后就可以啟動 mysql 了。

6、ERROR-2013 報錯

ERROR-2013 報錯代碼,可能造成的原因是

[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

7、ERROR-1045 報錯

Last_IO_Errno: 1045

Last_IO_Error: error connecting to master repl_user@192.168.159.128:3306 – retry-time: 60  retries: 86400

必須使用以下方法授權

select password(123456

GRANT REPLICATION SLAVE ON *.* TO repl_user @ % IDENTIFIED BY PASSWORD *6BB4837EB74329105EE4568DDA7DC67ED2CA2AD9

感謝各位的閱讀,以上就是“MYSQL 主從搭建的方法是什么”的內容了,經過本文的學習后,相信大家對 MYSQL 主從搭建的方法是什么這一問題有了更深刻的體會,具體使用情況還需要大家實踐驗證。這里是丸趣 TV,丸趣 TV 小編將為大家推送更多相關知識點的文章,歡迎關注!

正文完
 
丸趣
版權聲明:本站原創文章,由 丸趣 2023-07-20發表,共計6280字。
轉載說明:除特殊說明外本站除技術相關以外文章皆由網絡搜集發布,轉載請注明出處。
評論(沒有評論)
主站蜘蛛池模板: 江达县| 福贡县| 靖西县| 宝山区| 通化市| 吉安县| 太仓市| 博客| 潞城市| 当阳市| 汤原县| 称多县| 武义县| 五家渠市| 正宁县| 竹山县| 怀仁县| 吉安市| 化州市| 绥德县| 新巴尔虎左旗| 万宁市| 札达县| 军事| 井冈山市| 丘北县| 临漳县| 屏边| 辛集市| 安徽省| 宝坻区| 淳化县| 平江县| 禄丰县| 旺苍县| 浙江省| 乐东| 邹平县| 闽侯县| 顺平县| 大邑县|