mysql主從複製 一

2021-08-01 22:20:40 字數 2622 閱讀 9256

mysql的複製操作:

1. 主伺服器將資料的改變記錄到二進位制日誌中(binary log)

2. 從伺服器將主伺服器的binlog複製到它的中繼日誌中 relay-log

3. 從伺服器重做主伺服器的事件,將資料的改變保持與主伺服器同步

2. 建立mysql安裝程式的目錄和資料檔案的目錄

mkdir -p /usr/local/mysql

mkdir -p /usr/local/mysql/cata

groupadd mysql

useradd -r -g mysql mysql

3. 解壓原始檔

tar -zxvf mysql-5.6

.tar

.gz cd mysql-5.6

cmake . #編譯原始碼

4. 修改mysql安裝目錄的許可權

chown -r mysql.mysql /usr/local/mysql

5. 安裝原始碼

cd /usr/local/mysql/scripts

./mysql_install_db --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data

cd /usr/local/mysql/support-files

cp mysql.server /etc/rc.d/init.d/mysql

cp my-default.cnf /etc/my.cnf

chkconfig --add mysql

chkconfig mysql on

6. 啟動mysql

service mysql start

為了本機測試方便,可以使用mysqld_multi開啟多個mysql例項

1. service mysql stop #關閉正在執行的mysql程序

2. lsof -i :3306 檢測埠是否已釋放,mysql是否成功關閉

3. 把常用工具新增到/usr/bin下

ln -s /usr/local/mysql/bin/mysqld_multi /usr/bin/mysqld_multi

ln -s /usr/local/mysql/bin/mysqld_install_db /usr/bin/mysql_install_db

4. 初始化資料目錄並安裝3個mysql服務

cd /usr/local/mysql

mkdir -p /usr/local/var/mysql1

mkdir -p /usr/local/var/mysql2

mkdir -p /usr/local/var/mysql3

5. 從mysql的原始碼中把mysql.server複製到/etc/init.d目錄下,然後執行

cp my-default.cnf /etc/my.cnf

6. 配置/etc/my.cnf

#the mysql server

[mysqld_multi]

mysqld = /usr/local

/mysql/bin

/mysqld_safe

mysqladmin = /usr

/local/mysql

/bin/mysqladmin

user = root

[mysqld1]

port = 3306

[mysqld2]

port = 3307

socket = /tmp/mysql2.sock

datadir = /usr/local

/var/mysql2

[mysqld3]

port = 3308

socket = /tmp/mysql3.sock

datadir = /usr/local

/var/mysql3

[mysqld]

...7. 檢視資料庫的狀態

mysqld_multi --defaults-extra-file=/etc/my.cnf report

8. 使用mysqld_multi啟動mysql服務

mysqld_multi --defaults-extra-file=/etc/my.cnf stop

mysqld_multi --defaults-extra-file=/etc/my.cnf start

mysqld_multi --defaults-extra-file=/etc/my.cnf report

9. 登入資料庫

mysql -uroot -p -p3306

mysql -uroot -p -p3307

mysql -uroot -p -p3308

show variables like 'socket' 檢視資料庫的pid和socket狀態

此時發現3個資料庫的pid和socket都一樣,可以使用mysql -u root -s /tmp/mysql2.sock用-s引數來指定

然後登入檢視可以發現pid和socket檔案都已經改變

10. 重啟資料庫

mysqld_multi --defaults-extra-file=/etc/my.cnf stsrt 1-3

mysql主從複製

罪過啊,博主最近好久沒有更新部落格了,轉有道雲筆記了,筆記裡還有些乾貨,最近慢慢分享出來吧。博主最近發現有好多想學,但是發現精力有限啊,博主本來是搞個開發的,但是偏偏想把運維,dba的技術全都學了 mysql集群,nginx等等等 但是發現精力有限,所以簡單了解一下,mysql的主從複製,後面還有m...

MySQL 主從複製

1.概念 將主伺服器的資料複製到另外一台或多台伺服器的過程。也即將主資料庫的ddl和dml操作通過二進位制日誌傳到復 務器上,然後在從伺服器上對這些日誌進行重新執行,從而 保持資料同步。2.作用 降低主伺服器的訪問壓力 避免主伺服器因故障導致資料丟失。3.操作步驟 1 主伺服器將資料的改變記錄到二進...

MySQL 主從複製

資料分布。負載均衡 備份高可用性和故障切換 mysql公升級測試 mysql實現複製可以看做是三個步驟 在主庫上把資料更改記錄到二進位制日誌 binary log 中 這些記錄被稱為二進位制日誌事件 在每次準備提交事務完成資料更新前,主庫將資料更新的事件記錄到二進位制日誌中,在記錄二進位制日誌後,主...