您好,登錄后才能下訂單哦!
本文主要給大家簡單講講Linux系統mysql 主從配置搭建,相關專業術語大家可以上網查查或者找一些相關書籍補充一下,這里就不涉獵了,我們就直奔主題吧,希望Linux系統mysql 主從配置搭建這篇文章可以給大家帶來一些實際幫助。
一 mysql 主從介紹
mysql 主從又叫replication ,AB復制。簡單講就是A和B兩臺機器做主從后,在A上寫數據,另外一臺B也會跟著寫數據,兩者數據實時同步的。
MySQL主從是基于binlog的,主上須開啟binlog才能實現
具體過程為:1)主將更改操作記錄在binlog里
2)從將主的binlog事件(sql語句)同步到本機上,并記錄在relaylog里
3)從按順序執行relaylog里面的sql語句
主上有一個log dump線程,用來和從的I/O線程傳遞binlog,從上有兩個線程,其中I/O線程用來同步主的binlog并生成 relaylog,另外的SQL線程用來把relaylog里面的sql語句落地
我們在一臺機子上再裝一個mysql
之前我們的mysql 放在 /usr/lcoal/mysql 下,
1 拷貝basedir重新初始化下
cd /usr/local cp -r mysql mysql_2 cd mysql_2 ./scripts/mysql_install_db --user=mysql --datadir=/data/mysql2
2 重新定義配置文件
vim /usr/local/mysql_2/my.cnf basedir=/usr/local/msyql_2 datadir=/data/mysql2 port=3307 socket=/tmp/mysql2.sock
注意: basedir,datadir ,port,socket 要跟之前裝的mysql嚴格區分開
3 重新定義啟動腳本
cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqld2 vim /etc/init.d/mysqld2 basedir=/usr/local/mysql_2 datadir=/data/mysql2 找到下面的$bindir/mysqld_safe,插入--defaults-file=$basedir/my.cnf $bindir/mysqld_safe --defaults-file=$basedir/my.cnf --datadir="$datadir" --pid-file="$mysqld_pid_file_path" $other_args >/dev/null & wait_for_pid created "$!" "$mysqld_pid_file_path"; return_value=$?
我們將端口3306的mysql作為主庫,主上操作如下:
1 編輯配置文件,增加server-id 打開binlog功能
vim /etc/my.cnf 增加下面兩句 server-id=1 (我們設置主為1,從為2) log_bin=lv
2 準備一個測試庫
修改完配置文件后,重啟mysqld服務 /etc/init.d/mysqld restart 先給root用戶一個密碼 mysqladmin -uroot -S /tmp/mysql.sock password 'lvlinux' mysqldump -uroot -S /tmp/mysql.sock -plvlinux mysql > /tmp/mysql.sql mysql -uroot -S /tmp/mysql.sock -plvlinux -e “create database lv” mysql -uroot -S /tmp/mysql.sock -plvlinux lv < /tmp/mysql.sql
3 創建用作同步數據的用戶
mysql -uroot -S /tmp/mysql.sock -plvlinux grant replication slave on *.* to 'repl'@127.0.0.1 identified by 'lvlinux'; flush tables with read lock; show master status; 備注,repl后面跟的ip為從庫的來源ip,因為是同一臺機器,所以寫本機ip
我們將端口為3307的mysql作為從庫
從上操作如下
1.編輯配置文件,定義server-id
vim /usr/local/mysql_2/my.cnf 增加一行,server-id=2
2 從上面配置主從關系
修改完配置文件后,重啟mysqld服務。
先給從mysql root 用戶一個密碼
mysqladmin -uroot -S /tmp/mysql2.sock password 'lvlinux'
把主上的lv庫搬到從庫
mysql -uroot -S /tmp/mysql2.sock -plvlinux -e “create database lv” mysql -uroot -S /tmp/mysql2.sock -plvlinux lv < /tmp/mysql.sql
登錄從庫,進行如下操作
mysql -uroot -S /tmp/mysql2.sock -plvlinux stop slave; change master to master_host='127.0.0.1', master_port=3306,master_user='repl', master_password='lvlinux', master_log_file='lvlinux.000001', master_log_pos=429; start slave; 還要到主上執行 unlock tables
備注:master_log_file 和 master_log_pos依次填寫主上show master status 得到的信息
3 查看主從狀態
在從上操作
show slave status\G;
兩個線程運行正常,則標示主從配置成功。如果出錯關注
Seconds_Behind_Master: 0 //為主從延遲的時間
Last_IO_Errno: 0
Last_IO_Error:
Last_SQL_Errno: 0
Last_SQL_Error:
主云服務器上
binlog-do-db= //僅同步指定的庫
binlog-ignore-db= //忽略指定庫
從云服務器上
replicate_do_db=
replicate_ignore_db=
replicate_do_table=
replicate_ignore_table=
replicate_wild_do_table=
replicate_wild_ignore_table=
最后總結,我們在做主從時,首先要將從庫備份到跟主庫一致。在主從開啟時,要避免再從庫上寫數據。如果要重啟主庫,需要先關閉主從,也就是在從庫上執行stop slave 。重啟完之后,再start slave
Linux系統mysql 主從配置搭建就先給大家講到這里,對于其它相關問題大家想要了解的可以持續關注我們的行業資訊。我們的板塊內容每天都會捕捉一些行業新聞及專業知識分享給大家的。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。