一臺(tái)服務(wù)器啟動(dòng)兩個(gè)mysql實(shí)例并且配置主從

背景:由于項(xiàng)目要求,在加上服務(wù)器資源有限畜号,要盡快上線一個(gè)項(xiàng)目缴阎,因此直接搭建一套生產(chǎn)測試環(huán)境,供開發(fā)使用简软,其中涉及的到MySQL數(shù)據(jù)的主從配置蛮拔,但是服務(wù)器只有一臺(tái)。因此試著在搭建一臺(tái)服務(wù)器痹升,運(yùn)行兩個(gè)MySQL實(shí)例建炫,且配置主從。
服務(wù)器系統(tǒng)版本:Centos6.3
MySQL數(shù)據(jù)庫庫版本:5.6.36
1疼蛾、數(shù)據(jù)庫的安裝
卸載默認(rèn)安裝的MySQL數(shù)據(jù)庫

rpm -qa | grep mysql
rpm -e --nodeps 對應(yīng)的mysql版本

去官網(wǎng)下載MySQL安裝包并且上傳肛跌,然后解壓安裝

mkdir mysql && cd mysql
rz MySQL-5.6.36-1.el6.x86_64.rpm-bundle.tar
tart -xvf MySQL-5.6.36-1.el6.x86_64.rpm-bundle.tar
rpm -ivh MySQL*.rpm

2、修改配置文件、并且建立數(shù)據(jù)存儲(chǔ)目錄
首先查詢MySQL的默認(rèn)安裝目錄

#find / -name mysql -print
/var/lock/subsys/mysql
/var/lib/mysql          ##mysql庫的默認(rèn)安裝路徑
/var/lib/mysql/mysql
/usr/bin/mysql
/usr/lib64/perl5/DBD/mysql
/usr/lib64/perl5/auto/DBD/mysql
/usr/lib64/mysql
/usr/local/mysql
/usr/share/mysql        ##mysql的默認(rèn)安裝路徑
/usr/include/mysql
/usr/include/mysql/mysql
/etc/logrotate.d/mysql
/etc/rc.d/init.d/mysql

建立數(shù)據(jù)庫存儲(chǔ)目錄衍慎,添加屬主屬組

mkdir /mnt/data/{mysql-3306,mysql-3307} -pv
chown -R mysql:mysql /mnt/data

復(fù)制MySQL的主配置文件到/etc/目錄下

cp -rf /usr/share/mysql/my-default.cnf /etc/my.cnf

編輯主配置文件

vim /etc/my.cnf
# For advice on how to change settings please see
# http://dev.mysql.com/doc/refman/5.6/en/server-configuration-defaults.html
# *** DO NOT EDIT THIS FILE. It's a template which will be copied to the
# *** default location during install, and will be replaced if you
# *** upgrade to a newer version of MySQL.
[mysql-cli]
default-character-set=utf8
[mysqld]
skip-name-resolve
max_connections=1000
character-set-server=utf8
default-storage-engine=INNODB
lower_case_table_name=1
max_allowed_packet=1024M
# Remove leading # and set to the amount of RAM for the most important data
# cache in MySQL. Start at 70% of total RAM for dedicated server, else 10%.
# innodb_buffer_pool_size = 128M
             
# Remove leading # to turn on a very important data integrity option: logging
# changes to the binary log between backups.
# log_bin
    
# These are commonly set, remove the # and set as required.
# basedir = .....
# datadir = /var/lib/mysql  
 datadir = /mnt/data/mysql-3306
 port = 3388
 server_id = 1
 socket = /var/lib/mysql/mysql-3306.sock
 log-bin=mysql-bin
# Remove leading # to set options mainly useful for reporting servers.
# The server defaults are faster for transactions and fast SELECTs.
# Adjust sizes as needed, experiment to find the optimal values.
# join_buffer_size = 128M
# sort_buffer_size = 2M
# read_rnd_buffer_size = 2M 

sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES

復(fù)制一份转唉,并且重新命名

cp -rf /etc/my.cnf /etc/my3307.cnf

再次編輯,修改相關(guān)內(nèi)容

# For advice on how to change settings please see
# http://dev.mysql.com/doc/refman/5.6/en/server-configuration-defaults.html
# *** DO NOT EDIT THIS FILE. It's a template which will be copied to the
# *** default location during install, and will be replaced if you
# *** upgrade to a newer version of MySQL.
[mysql-cli]
default-character-set=utf8
[mysqld]
skip-name-resolve
max_connections=1000
character-set-server=utf8
default-storage-engine=INNODB
lower_case_table_name=1
max_allowed_packet=1024M
# Remove leading # and set to the amount of RAM for the most important data
# cache in MySQL. Start at 70% of total RAM for dedicated server, else 10%.
# innodb_buffer_pool_size = 128M

# Remove leading # to turn on a very important data integrity option: logging
# changes to the binary log between backups.
# log_bin

# These are commonly set, remove the # and set as required.
# basedir = .....
# datadir = /var/lib/mysql  
 datadir = /mnt/data/mysql-3307
 port = 3307
 server_id = 2
 socket = /var/lib/mysql/mysql-3307.sock
 log-bin=mysql-bin
# Remove leading # to set options mainly useful for reporting servers.
# The server defaults are faster for transactions and fast SELECTs.
# Adjust sizes as needed, experiment to find the optimal values.
# join_buffer_size = 128M
# sort_buffer_size = 2M
# read_rnd_buffer_size = 2M 

sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES

建庫,并且賦予對應(yīng)權(quán)限

mysql_install_db -datadir=/mnt/data/mysql-3306 --user=mysql
chmod -R 777 /mnt/data/mysql-3306 
mysql_install_db -datadir=/mnt/data/mysql-3307 --user=mysql
chmod -R 777 /mnt/data/mysql-3307 

啟動(dòng)端口為3306的MySQL數(shù)據(jù)庫

service mysql start

啟動(dòng)端口為3307的MySQL數(shù)據(jù)庫

/usr/bin/mysqld_safe --defaults-file=/etc/my3307.cnf &

檢查端口

#ss -tnl
Recv-Q Send-Q                        Local Address:Port                                         Peer Address:Port 
0      128                                 :::3306                                                  :::*   
0      128                                 :::3307                                                   :::*

3稳捆、配置數(shù)據(jù)庫的主從服務(wù)
登錄3306數(shù)據(jù)庫

mysql -uroot -p -S /var/lib/mysql/mysql-3306.sock

更改root默認(rèn)密碼

set password for 'root'@'localhost' =password('123456');

授權(quán)root遠(yuǎn)程登錄

grant all privileges on *.* to root@'%' identified by '123456' with grant option;
flush privileges;

登錄3307數(shù)據(jù)庫

mysql -uroot -p -S /var/lib/mysql/mysql-3307.sock

更改root默認(rèn)密碼

set password for 'root'@'localhost' =password('123456');

授權(quán)root遠(yuǎn)程登錄

grant all privileges on *.* to root@'%' identified by '123456' with grant option;
flush privileges;

4赠法、配置主從復(fù)制
在主服務(wù)器上建立帳戶并授權(quán)slave:

mysql>GRANT REPLICATION SLAVE ON *.* to 'mysync'@'%' identified by 'q123456';
登錄主服務(wù)器的mysql,查詢master的狀態(tài)
   mysql>show master status;
   +------------------+----------+--------------+------------------+
   | File             | Position | Binlog_Do_DB | Binlog_Ignore_DB |
   +------------------+----------+--------------+------------------+
   | mysql-bin.000002 |      399 |              |                  |
   +------------------+----------+--------------+------------------+
   1 row in set (0.00 sec)
   注:執(zhí)行完此步驟后不要再操作主服務(wù)器MYSQL乔夯,防止主服務(wù)器狀態(tài)值變化

配置從服務(wù)器Slave:

 mysql>change master to master_host='localhost',master_user='mysync',master_password='q123456',master_port='3306',master_log_file='mysql-bin.000002',master_log_pos=399;   //注意不要斷開砖织,399數(shù)字前后無單引號(hào)。

 mysql>start slave;    //啟動(dòng)從服務(wù)器復(fù)制功能

檢查從服務(wù)器復(fù)制功能狀態(tài):

mysql> show slave status\G
*************************** 1. row ***************************
               Slave_IO_State: Waiting for master to send event
                  Master_Host: localhost
                  Master_User: mysync
                  Master_Port: 3306
                Connect_Retry: 60
              Master_Log_File: mysql-bin.000002
          Read_Master_Log_Pos: 399
               Relay_Log_File: MasService-relay-bin.000002
                Relay_Log_Pos: 399
        Relay_Master_Log_File: mysql-bin.000002
             Slave_IO_Running: Yes
            Slave_SQL_Running: Yes
...................................................
注:Slave_IO及Slave_SQL進(jìn)程必須正常運(yùn)行驯嘱,即YES狀態(tài)镶苞,否則都是錯(cuò)誤的狀態(tài)(如:其中一個(gè)NO均屬錯(cuò)誤)。

5鞠评、主從服務(wù)器測試:

主服務(wù)器Mysql茂蚓,建立數(shù)據(jù)庫,并在這個(gè)庫中建表插入一條數(shù)據(jù):
 mysql> create database hi_db;
  Query OK, 1 row affected (0.00 sec)

  mysql> use hi_db;
  Database changed

  mysql>  create table hi_tb(id int(3),name char(10));
  Query OK, 0 rows affected (0.00 sec)
 
  mysql> insert into hi_tb values(001,'bobu');
  Query OK, 1 row affected (0.00 sec)

  mysql> show databases;
   +--------------------+
   | Database           |
   +--------------------+
   | information_schema |
   | hi_db                |
   | mysql                |
   | test                 |
   +--------------------+
   4 rows in set (0.00 sec)

從服務(wù)器Mysql查詢:

   mysql> show databases;

   +--------------------+
   | Database               |
   +--------------------+
   | information_schema |
   | hi_db                 |       //I'M here剃幌,大家看到了吧
   | mysql                 |
   | test          |
   +--------------------+
   4 rows in set (0.00 sec)

   mysql> use hi_db
   Database changed
   mysql> select * from hi_tb;           //查看主服務(wù)器上新增的具體數(shù)據(jù)
   +------+------+
   | id   | name |
   +------+------+
   |    1 | bobu |
   +------+------+
   1 row in set (0.00 sec)

6聋涨、從服務(wù)器配置只讀屬性

從服務(wù)器“read_only=1”只讀模式開啟的解鎖命令為設(shè)定“read_only=0”;設(shè)定全局鎖“flush tables with read lock;”,對應(yīng)的解鎖模式命令為:“unlock tables;”

 set global read_only=1;####給從服務(wù)器設(shè)置只讀
 set global read_only=0;####取消設(shè)置只讀屬性

7负乡、完成:

    編寫一shell腳本牍白,用nagios監(jiān)控slave的兩個(gè)yes(Slave_IO及Slave_SQL進(jìn)程),如發(fā)現(xiàn)只有一個(gè)或零個(gè)yes抖棘,就表明主從有問題了茂腥,發(fā)短信警報(bào)吧。
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末切省,一起剝皮案震驚了整個(gè)濱河市最岗,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌朝捆,老刑警劉巖般渡,帶你破解...
    沈念sama閱讀 216,591評論 6 501
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異芙盘,居然都是意外死亡驯用,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,448評論 3 392
  • 文/潘曉璐 我一進(jìn)店門儒老,熙熙樓的掌柜王于貴愁眉苦臉地迎上來蝴乔,“玉大人,你說我怎么就攤上這事贷盲√哉猓” “怎么了剥扣?”我有些...
    開封第一講書人閱讀 162,823評論 0 353
  • 文/不壞的土叔 我叫張陵巩剖,是天一觀的道長铝穷。 經(jīng)常有香客問我,道長佳魔,這世上最難降的妖魔是什么曙聂? 我笑而不...
    開封第一講書人閱讀 58,204評論 1 292
  • 正文 為了忘掉前任,我火速辦了婚禮鞠鲜,結(jié)果婚禮上宁脊,老公的妹妹穿的比我還像新娘。我一直安慰自己贤姆,他們只是感情好榆苞,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,228評論 6 388
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著霞捡,像睡著了一般坐漏。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上碧信,一...
    開封第一講書人閱讀 51,190評論 1 299
  • 那天赊琳,我揣著相機(jī)與錄音,去河邊找鬼砰碴。 笑死躏筏,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的呈枉。 我是一名探鬼主播趁尼,決...
    沈念sama閱讀 40,078評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼猖辫!你這毒婦竟也來了酥泞?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 38,923評論 0 274
  • 序言:老撾萬榮一對情侶失蹤住册,失蹤者是張志新(化名)和其女友劉穎婶博,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體荧飞,經(jīng)...
    沈念sama閱讀 45,334評論 1 310
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡凡人,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,550評論 2 333
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了叹阔。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片挠轴。...
    茶點(diǎn)故事閱讀 39,727評論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖耳幢,靈堂內(nèi)的尸體忽然破棺而出岸晦,到底是詐尸還是另有隱情欧啤,我是刑警寧澤,帶...
    沈念sama閱讀 35,428評論 5 343
  • 正文 年R本政府宣布启上,位于F島的核電站邢隧,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏冈在。R本人自食惡果不足惜倒慧,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,022評論 3 326
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望包券。 院中可真熱鬧纫谅,春花似錦、人聲如沸溅固。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,672評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽侍郭。三九已至询吴,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間励幼,已是汗流浹背汰寓。 一陣腳步聲響...
    開封第一講書人閱讀 32,826評論 1 269
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留苹粟,地道東北人有滑。 一個(gè)月前我還...
    沈念sama閱讀 47,734評論 2 368
  • 正文 我出身青樓,卻偏偏與公主長得像嵌削,于是被迫代替她去往敵國和親毛好。 傳聞我的和親對象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,619評論 2 354

推薦閱讀更多精彩內(nèi)容