溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Mysql主從配置詳細步驟

發(fā)布時間:2020-05-13 11:23:53 來源:億速云 閱讀:273 作者:三月 欄目:MySQL數(shù)據(jù)庫

下文主要給大家?guī)?a title="Mysql" target="_blank" href="http://kemok4.com/mysql/">Mysql主從配置詳細步驟,希望這些內(nèi)容能夠帶給大家實際用處,這也是我編輯Mysql主從配置詳細步驟這篇文章的主要目的。好了,廢話不多說,大家直接看下文吧。

環(huán)境:

系統(tǒng)版本:centos6.6

mysql版本:mysql 5.6.11

ip狀態(tài)
10.0.2.87
10.0.2.111

Mysql主從配置詳細步驟

1. 數(shù)據(jù)備份

10.0.2.87

先停掉服務,使數(shù)據(jù)庫停止數(shù)據(jù)更新,然后備份數(shù)據(jù)庫

mysqldump -R -uroot -p nc_onldb > /root/nc_onldb_`date +%Y%m%d`.sql
mysqldump -R -uroot -p rxrc > /root/rxrc_`date +%Y%m%d`.sql

如果數(shù)據(jù)較大,可以考慮直接拷貝庫文件

2. 安裝mysql 5.6

從庫mysql版本與主庫不一致,重新安裝。

首先停掉原有的mysql

/etc/init.d/mysqld stop

1. 10.0.2.87拷貝mysql安裝包

cd /usr/local/src/
scp root@10.0.2.87:/home/nc_onldb/mysql-5.6.11.tar.gz ./

2. 解壓

tar xzf mysql-5.6.11.tar.gz
cd mysql-5.6.11

3. 安裝cmake

yum install cmake

4. 安裝mysql

groupadd db
useradd nc_onldb -g db
cmake \
-DCMAKE_INSTALL_PREFIX=/usr/local/mysql \
-DMYSQL_UNIX_ADDR=/var/run/mysqld/mysql.sock \
-DDEFAULT_CHARSET=utf8 \
-DDEFAULT_COLLATION=utf8_general_ci \
-DWITH_MYISAM_STORAGE_ENGINE=1 \
-DWITH_INNOBASE_STORAGE_ENGINE=1 \
-DWITH_ARCHIVE_STORAGE_ENGINE=1 \
-DWITH_BLACKHOLE_STORAGE_ENGINE=1 \
-DWITH_MEMORY_STORAGE_ENGINE=1 \
-DWITH_READLINE=1 \
-DENABLED_LOCAL_INFILE=1 \
-DMYSQL_DATADIR=/home/nc_onldb/DATA \
-DMYSQL_USER=nc_onldb \
-DMYSQL_TCP_PORT=3306 

可能會出現(xiàn)的錯誤:

1. -- Could NOT find Curses (missing:  CURSES_LIBRARY CURSES_INCLUDE_PATH)

CMake Error at cmake/readline.cmake:82 (MESSAGE):

  Curses library not found.  Please install appropriate package,

      remove CMakeCache.txt and rerun cmake.On Debian/Ubuntu, package name is libncurses5-dev, on Redhat and derivates it is ncurses-devel.

====安裝 ncurses-devel,然后刪除CMakeCache.txt,重新編譯即可

yum install ncurses-devel
rm -f CMakeCache.txt

2. CMake Error: CMAKE_CXX_COMPILER not set, after EnableLanguage

CMake Error: Internal CMake error, TryCompile configure of cmake failed

-- Performing Test HAVE_PEERCRED - Failed

====缺少gcc相關的包,然后刪除CMakeCache.txt,重新編譯

yum install gcc gcc-c++
rm -f CMakeCache.txt
make && make install

5. 初始化數(shù)據(jù)庫

/usr/local/mysql/scripts/mysql_install_db --user=nc_onldb --basedir=/usr/local/mysql --datadir=/home/nc_onldb/DATA --pid-file=/var/run/mysqld/mysqld.pid

初始化時可能會出現(xiàn)錯誤:

/usr/local/mysql/bin/mysqld: File './mysql-bin.index' not found (Errcode: 13 - Permission denied)

2016-10-19 15:06:48 30553 [ERROR] Aborting

2016-10-19 15:06:48 30553 [Note] Binlog end

2016-10-19 15:06:48 30553 [Note] /usr/local/mysql/bin/mysqld: Shutdown complete

====先將原有的mysql服務停掉再進行初始化。

6. 復制服務啟動腳本

由于有老版本的mysql啟動腳本,復制到/etc/init.d時需注意區(qū)分

cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysql

7. 修改配置文件

mv /etc/my.cnf /etc/my.cnf.bak
vi /usr/local/mysql/my.cnf
[mysqld]
 
sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES
 
datadir=/home/nc_onldb/DATA
socket=/var/run/mysqld/mysql.sock
user=nc_onldb
# 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

啟動mysql

/etc/init.d/mysql start 

啟動過程可能報錯

Starting MySQL.. ERROR! The server quit without updating PID file (/home/nc_onldb/DATA/xxx.pid).

====原因可能是配置的pid目錄權限問題,此目錄跟原有mysqlpid目錄一樣,但權限是原有mysql的用戶,將/var/run/mysqld的所屬用戶和所屬組改成nc_onldb

chown -R nc_onldb:nc_onldb /var/run/mysqld

3. 設置mysql主從

1. 配置主(10.0.2.87)

vi /usr/local/mysql/my.cnf
添加如下內(nèi)容:
server-id=87
log-bin=mysql-bin

重啟mysql

/etc/init.d/mysql restart 

設置權限

/usr/local/mysql/bin/mysql -uroot
>grant replication slave on *.* to 'repl'@'10.0.2.111' identified by 'aabbcc';
>flush privileges;
>flush tables with read lock;  #數(shù)據(jù)庫加讀取鎖
>show master status; #查看主庫狀態(tài),記住內(nèi)容,配置從時會用到

2. 配置從(10.0.2.111)

vi /usr/local/mysql/my.cnf
添加如下內(nèi)容:
server-id=111

重啟mysql

/etc/init.d/mysql restart
/usr/local/mysql/bin/mysql -uroot
>stop slave;
>change master to master_host='10.0.2.87', master_port=3306, master_user='repl', master_password='aabbcc', master_log_file='mysql-bin.xxxx', master_log_pos=xxxx;
>start slave;

10.0.2.87上:

unlock tables;

再到從上看mysql的狀態(tài)

show slave status\G   (\G表示以列的形式顯示)

更新主從關系(bin-log發(fā)生變化):

在從上:

>stop slave;
>reset slave;
>start slave;

刪除主從關系

在從上:

>stop slave;
>reset slave all;

4. mysql清理bin-log

(1)自動清理方法:編輯my.cnf

expire_logs_days = 7 // 表示日志保留7天,超過7天則設置為過期的
#/usr/local/mysql/bin/mysql -uroot
>show binary logs;
>show variables like '%log%';
>set global expire_logs_days = 7;

(2)手動清理

如果沒有主從,可以通過下面命令重置數(shù)據(jù)庫日志:

>reset master;

如果有主從復制,應通過purge命令來清理:

/usr/local/mysql/bin/mysql -uroot
>purge master logs to 'mysql-bin.010'; //清除mysql-bin.010日志以前的(不包括010)
>purge master logs before '2016-02-28 13:00:00'; //清除2016-02-28 13:00:00前的日志
>purge master logs before date_sub(now(), interval 3 day); //清除3天前的bin日志

注意,不要輕易手動去刪除binlog,會導致binlog.index和真實存在的binlog不匹配,而導致expire_logs_day失效。

對于以上關于Mysql主從配置詳細步驟,大家是不是覺得非常有幫助。如果需要了解更多內(nèi)容,請繼續(xù)關注我們的行業(yè)資訊,相信你會喜歡上這些內(nèi)容的。

向AI問一下細節(jié)

免責聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權內(nèi)容。

AI