日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > 数据库 >内容正文

数据库

mysql 半同步 主主_MySQL主从,半同步,主主复制

發布時間:2024/9/27 数据库 28 豆豆
生活随笔 收集整理的這篇文章主要介紹了 mysql 半同步 主主_MySQL主从,半同步,主主复制 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

MySQL Replication

我們知道,MySQL數據庫的二進制日志記錄著每一個明確或者潛在可能導致數據庫發生改變的sql語句,因此我們可以基于二進制日志來實現mysql的主從一致。而我們在此提到的mysql的復制的簡單過程就是:

首先mysql的主服務器(Master)上有一個叫dump的線程,負責將二進制日志讀取進來,發送給slave.

而后mysql的從服務器(Slave)上有個I/O線程 ,負責接收Master傳送過來的二進制日志數據,并且將此寫入到本地的中繼日志中,此時會有一個SQL線程,每次中繼日志讀取一句sql語句, 并在從Slave上應用,以實現主從服務器的一致。

首先需要提供2臺mysql版本一致的mysql服務器,在此選用的mysql-5.5.20,平臺為RedHat5.4

一、安裝mysql-5.5.20

# groupadd -r mysql

# useradd -g mysql -r -s /sbin/nologin –M mysql

//新建用戶以安全方式運行進程

# chown -R mysql:mysql /mydata/data

# tar xf mysql-5.5.20-linux2.6-i686.tar.gz -C /usr/local

//將下載好的mysql軟件解壓安裝

# cd /usr/local/

# ln -sv mysql-5.5.20-linux2.6-i686? mysql

# cd mysql

# chown -R mysql:mysql? .

# scripts/mysql_install_db --user=mysql --datadir=/mydata/mysql

//初始化mysql,此處使用的/mydata/mysql存放mysql的數據,建議將/mydata掛載至一個邏輯卷,方便數據備份

# chown -R root? .

# cd /usr/local/mysql

# cp support-files/my-large.cnf? /etc/my.cnf

#vim /etc/my.cnf

thread_concurrency = 2??????? //修改此項,我們的cpu為雙核的

datadir = /mydata/data??????? //添加此項,指定數據存放的目錄

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

# chkconfig --add mysqld

# chkconfig mysqld on

二:為使用mysql的安裝符合系統使用規范,并將其開發組件導出給系統使用,需如下操作

#vim/etc/man.config??????????? //輸出mysql的man手冊至man命令的查找路徑

MANPATH? /usr/local/mysql/man???? //添加此行

# ln -sv /usr/local/mysql/include? /usr/include/mysql

//輸出mysql的頭文件至系統頭文件路徑/usr/include

# echo '/usr/local/mysql/lib' > /etc/ld.so.conf.d/mysql.conf

//輸出mysql的庫文件給系統庫查找路徑

# ldconfig??????????? //讓系統重新載入系統庫

#vim /etc/profile????????? //修改PATH環境變量,讓系統可以直接使用mysql的相關命令

PATH=$PATH:/usr/local/mysql/bin????? //添加此行

三:實現主從復制

master ip:192.168.1.10

slave ip:192.168.1.11

On Master :(在主服務器的操作)

#vim /etc/my.cnf??? 確保證如下選項:

server-id = 1?? //主服務器的身份標識

log-bin=mysql-bin? //開啟二進制日志

sync_binlog=1?????? //事務提交立即寫入到二進制日志

innodb_flush_logs_at_trx_commit=1 //事務提交之時,立即將二進制日志寫入磁盤

#mysql –uroot –p

mysql> grant replication client,replication slave on *.* to cclo@’192.168.1.%’ identified by ‘12345’;

//此處創建一個用戶名為cclo,密碼為12345的用戶,其權限為client和replication

mysql> flush privileges;

mysql> show grants for cclo@’192.168.1.%’; //驗證此用戶的權限

On Slave:(在從服務器的操作)

#vim /etc/my.cnf

[mysqld]

server-id?????? = 11??? // 數值只要保證和Master不同即可

#log-bin=mysql-bin???? //slave的二進制日志一般用不到,暫時關閉

relay-log=relay-bin??? //開啟中繼日志

relay-log-index=relay-bin.index

read_only=1??????????? //此項為阻止普通用戶寫從服務器

skip_slave_start=1

//mysql服務關閉后,當服務開啟時跳過自動啟動主從復制(如需自動啟動,此項略過)

#service mysqld restart

#mysql –uroot –p

mysql> show master status;

+------------------+----------+--------------+------------------+

| File???????????? | Position | Binlog_Do_DB | Binlog_Ignore_DB |

+------------------+----------+--------------+------------------+

| MySQL-bin.000003 |????? 374 |????????????? |????????????????? |

+------------------+----------+--------------+------------------+

1 row in set (0.00 sec)

mysql> change master to master_host='192.168.1.10',master_user='cclo',master_password='12345',master_log_file='mysql-bin.000003',master_log_pos=374;

//指定Master的ip及復制的用戶及二進制日志的位置

mysq> start slave;??????????????? //啟動主從復制

mysql > show slave status;?????? //查詢從服務器的工作屬性,確保以下2項

Slave_IO_Runing: Yes

?Slave_SQL_Runing: Yes??????? //確保此2項為Yes的狀態

總結

以上是生活随笔為你收集整理的mysql 半同步 主主_MySQL主从,半同步,主主复制的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。