mysql 多執行個體應用配置部署指南

來源:互聯網
上載者:User

標籤:mysql   多執行個體   


一,Mysql 多執行個體的作用的問題


1,有效利用伺服器的資源

   當單個伺服器資源有剩餘的時候,可以充分利用剩餘的資源以提供更多的服務

2,節約伺服器的資源

   當公司資源緊張,但是資料庫各自需要獨立提供服務,而且需要主從同步等技術時候,此時使用多執行個體是最好的。

3,資源互相搶佔的問題

   當某個服務執行個體並發很高或者有慢查詢的時候,整個執行個體會消耗更多的CPU,記憶體,磁碟IO資源,導致伺服器上其他的執行個體提供的服務品質大大下降,相當於一個大房子,多個臥室,大家共用一個衛生間,早餐起床,一個人上廁所,長期佔用,其他人要等待一樣的道理。


二、Mysql 多執行個體的應用情境


1,資源緊張型的公司

   業務量不大,不想花錢,又有多需求,所以特別適合多執行個體

2,並發訪問不是特別大的網站

   當公司業務量不大的適合,伺服器資源沒有充分利用,有浪費的時候,就可以使用多執行個體

3,百度搜尋引擎就使用了多執行個體  ,sina 網也使用了多執行個體

   目的,節約IDC空間,資源充分利用 

   sina的配置 SATA 15000轉  4塊做raid5  48G記憶體 


三、MySQL多執行個體的配置方案

  方案一:如  推薦使用此

  這種方式的優勢邏輯簡單,配置簡單,耦合度低

  缺點是管理起來不太方便。


   650) this.width=650;" src="http://s1.51cto.com/wyfs02/M00/82/85/wKioL1dXykbxo2UUAABz9qsUEVg225.jpg" title="001.jpg" alt="wKioL1dXykbxo2UUAABz9qsUEVg225.jpg" />




方案二:單一的部署方案   不推薦,耦合性太高

     [mysqld_muti]

      即一個設定檔 啟動多個執行個體


四、開始配置MySQL多執行個體

   環境介紹:

   mysql 版本:5.6.27

   作業系統:Centos 6.5

   mysql執行個體數:2個 

   執行個體佔用連接埠分別為:3306、3307 


先配置方案一: 



1.下載:在http://dev.mysql.com/downloads/mysql/官網上下載

  

2.解壓

tar xvf mysql-5.6.27-linux-glibc2.5-x86_64.tar.gz

 

3.移動到/usr/local/mysql

 

mv mysql-5.6.27-linux-glibc2.5-x86_64 mysql

4.安裝依賴的lib包:

centos:yum install  libaio -y

5、配置使用者,目錄

shell> groupadd mysqlshell> useradd -r -g mysql mysqlshell> cd /usr/local/mysqlshell> chown -R mysql .shell> chgrp -R mysql .

6、使用/data/目錄作為MySQL多執行個體的總目錄

 mkdir -p /data/{3306,3307}/data

7、開始配置多執行個體的設定檔

vim  /data/3306/my.cnf[mysqld]  #general basedir = /usr/local/mysql datadir = /data/3306/data socket = /data/3306/mysql.sock user = mysql port = 3306 server_id = 1 log-error = /data/3306/err.log pid = /data/3306/mysql.pid #binlog  log-bin  = /data/3306/mysql-bin sync-binlog = 1 #InnoDB innodb_flush_log_at_trx_commit innodb_support_xa = 1                      #other character_set_server = utf8 default_storage_engine =InnoDB ft_min_word_len = 1 open_files_limit = 65535 auto-increment-increment = 10 auto-increment-offset = 1  log_slave_updates=1          允許備庫將其重放的事件也記錄到自身的二進位日誌中 read_only=0                阻止任何沒有特權許可權的線程修改資料 skip_slave_start [client] socket = /data/3306/mysql.sock port = 3306




vim  /data/3307/my.cnf[mysqld]  #general basedir = /usr/local/mysql datadir = /data/3307/data socket = /data/3307/mysql.sock user = mysql port = 3307 server_id = 1 log-error = /data/3307/err.log pid = /data/3307/mysql.pid #binlog  log-bin  = /data/3307/mysql-bin sync-binlog = 1 #InnoDB innodb_flush_log_at_trx_commit innodb_support_xa = 1                      #other character_set_server = utf8 default_storage_engine =InnoDB ft_min_word_len = 1 open_files_limit = 65535 auto-increment-increment = 10 auto-increment-offset = 1  log_slave_updates=1          允許備庫將其重放的事件也記錄到自身的二進位日誌中 read_only=0                阻止任何沒有特權許可權的線程修改資料 skip_slave_start [client] socket = /data/3307/mysql.sock port = 3307


8、建立多執行個體的開機檔案 。

  放到/data/3306  | /data/3307 下

  指令碼省略(mysqld)

 多執行個體開機檔案的啟動MySQL服務實質:

 

   

mysqld_safe --defaults-file=/data/3306/my.cnf 2>&1 >/dev/null &mysqld_safe --defaults-file=/data/3307/my.cnf 2>&1 >/dev/null &

  

 多執行個體開機檔案的停止MySQL服務實質:

 mysqladmin -u root -p passwd -S /data/3306/mysql.sock shutdown mysqladmin -u root -p passwd -S /data/3306/mysql.sock shutdown  平滑停止

9,授權MySQL使用者,和組管理整個多執行個體目錄

 chown -R mysql.mysql /data

10,配置MySQL全域環境變數

 echo "export PATH=$PATH:/usr/local/mysql/bin/"  >> /etc/profile source  /etc/profile

11,開始初始化資料庫

 

 cd/usr/local/mysql/scripts/ ./mysql_install_db --user=mysql  --datadir=/data/3306/data/ --basedir=/usr/local/mysql/ ./mysql_install_db --user=mysql  --datadir=/data/3307/data/ --basedir=/usr/local/mysql/

 什麼初始化資料庫?

 a,初始化的主要目的就是建立基礎的資料庫檔案,例如產生MySQL的庫表

 b,初始化後,產看目錄,可以看到一些表檔案



12,啟動| 停止 MySQL服務

 如果有指令碼,則使用指令碼啟動

/data/3306/mysql  start /data/3307/mysql  start

 如果沒有指令碼,則使用一下啟動

mysqld_safe --defaults-file=/data/3306/my.cnf 2>&1 >/dev/null &
mysqld_safe --defaults-file=/data/3307/my.cnf 2>&1 >/dev/null &如果沒有指令碼,則使用一下啟動停止mysqladmin -u root -p passwd -S /data/3306/mysql.sock shutdownmysqladmin -u root -p passwd -S /data/3306/mysql.sock shutdown  平滑停止|

13,檢查

  登陸:

 mysql -S /data/3306/mysql.sock 


管理的話,在本地都是採用 -S /data/3306/mysql.sock,如果在遠程可以通過不同的連接埠串連上去坐管理操作。其他的和單一實例的管理沒什麼區別!


#######################################################################################


再來看第二種通過官方內建的mysqld_multi來實現多執行個體實戰:

這裡的mysql安裝以及資料庫的初始化和前面的步驟一樣,就不再贅述。


mysqld_multi的配置

vim /etc/my.cnf[mysqld_multi]mysqld = /usr/local/mysql/bin/mysqld_safemysqladmin = /usr/local/mysql/bin/mysqladminuser = adminpassword = password[mysqld1]  #general basedir = /usr/local/mysql/ datadir = /data/3306/data/ socket = /data/3306/mysql.sock user = mysql port = 3306 server_id = 1 log-error = /data/3306/ pid = /data/3306/ #binlog  log-bin  = /data/3306/mysql-bin sync-binlog = 1 #InnoDB innodb_flush_log_at_trx_commit innodb_support_xa = 1                      #other character_set_server = utf8 default_storage_engine =InnoDB ft_min_word_len = 1 open_files_limit = 65535 auto-increment-increment = 10 auto-increment-offset = 1  log_slave_updates=1          允許備庫將其重放的事件也記錄到自身的二進位日誌中 read_only=0                阻止任何沒有特權許可權的線程修改資料 skip_slave_start [client] socket = /data/3306/mysql.sock port = 3306[mysqld2] #general basedir = /usr/local/mysql/ datadir = /data/3307/data/ socket = /data/3307/mysql.sock user = mysql port = 3307 server_id = 2 log-error = /data/3307/ pid = /data/3307/ #binlog  log-bin  = /data/3307/mysql-bin sync-binlog = 1 #InnoDB innodb_flush_log_at_trx_commit innodb_support_xa = 1                      #other character_set_server = utf8 default_storage_engine =InnoDB ft_min_word_len = 1 open_files_limit = 65535 auto-increment-increment = 10 auto-increment-offset = 1  log_slave_updates=1          允許備庫將其重放的事件也記錄到自身的二進位日誌中 read_only=0                阻止任何沒有特權許可權的線程修改資料 skip_slave_start [client] socket = /data/3307/mysql.sock port = 3307[mysql]no-auto-rehashprompt=\\[email protected]\\d \\R:\\m>[mysqld_safe]open-files-limit = 8192


mysqld_multi啟動

/usr/local/mysql/bin/mysqld_multi start 1/usr/local/mysql/bin/mysqld_multi start 2 停止MySQL執行個體mysqladmin -uroot -p -S /data/3306/mysql.sock shutdownmysqladmin -uroot -p -S /data/3307/mysql.sock shutdown更改原來密碼mysqladmin -uroot password ‘123456‘ -S /data/3306/mysql.sockmysqladmin -uroot password ‘123456‘ -S /data/3307/mysql.sock

測試登陸

mysql -uroot -p -S /data/3306/mysql.sock mysql -uroot -p -S /data/3307/mysql.sock


本文出自 “crazy_sir” 部落格,請務必保留此出處http://douya.blog.51cto.com/6173221/1787516

mysql 多執行個體應用配置部署指南

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.