mysql 多实例应用配置部署指南
一,Mysql 多實(shí)例的作用的問(wèn)題
1,有效利用服務(wù)器的資源
? ?當(dāng)單個(gè)服務(wù)器資源有剩余的時(shí)候,可以充分利用剩余的資源以提供更多的服務(wù)
2,節(jié)約服務(wù)器的資源
? ?當(dāng)公司資源緊張,但是數(shù)據(jù)庫(kù)各自需要獨(dú)立提供服務(wù),而且需要主從同步等技術(shù)時(shí)候,此時(shí)使用多實(shí)例是最好的。
3,資源互相搶占的問(wèn)題
? ?當(dāng)某個(gè)服務(wù)實(shí)例并發(fā)很高或者有慢查詢(xún)的時(shí)候,整個(gè)實(shí)例會(huì)消耗更多的CPU,內(nèi)存,磁盤(pán)IO資源,導(dǎo)致服務(wù)器上其他的實(shí)例提供的服務(wù)質(zhì)量大大下降,相當(dāng)于一個(gè)大房子,多個(gè)臥室,大家共用一個(gè)衛(wèi)生間,早餐起床,一個(gè)人上廁所,長(zhǎng)期占用,其他人要等待一樣的道理。
二、Mysql 多實(shí)例的應(yīng)用場(chǎng)景
1,資源緊張型的公司
? ?業(yè)務(wù)量不大,不想花錢(qián),又有多需求,所以特別適合多實(shí)例
2,并發(fā)訪(fǎng)問(wèn)不是特別大的網(wǎng)站
? ?當(dāng)公司業(yè)務(wù)量不大的適合,服務(wù)器資源沒(méi)有充分利用,有浪費(fèi)的時(shí)候,就可以使用多實(shí)例
3,百度搜索引擎就使用了多實(shí)例 ?,sina 網(wǎng)也使用了多實(shí)例
? ?目的,節(jié)約IDC空間,資源充分利用?
? ?sina的配置 SATA 15000轉(zhuǎn) ?4塊做raid5 ?48G內(nèi)存?
三、MySQL多實(shí)例的配置方案
? 方案一:如下圖 ?推薦使用此
? 這種方式的優(yōu)勢(shì)邏輯簡(jiǎn)單,配置簡(jiǎn)單,耦合度低
? 缺點(diǎn)是管理起來(lái)不太方便。
? ?
方案二:單一的部署方案 ??不推薦,耦合性太高
? ? ?[mysqld_muti]
? ? ? 即一個(gè)配置文件 啟動(dòng)多個(gè)實(shí)例
四、開(kāi)始配置MySQL多實(shí)例
? ?環(huán)境介紹:
? ?mysql 版本:5.6.27
? ?操作系統(tǒng):Centos 6.5
? ?mysql實(shí)例數(shù):2個(gè)?
? ?實(shí)例占用端口分別為:3306、3307?
先配置方案一:?
1.下載:在http://dev.mysql.com/downloads/mysql/官網(wǎng)上下載
??
2.解壓
| 1 | tar?xvf?mysql-5.6.27-linux-glibc2.5-x86_64.tar.gz |
?
3.移動(dòng)到/usr/local/mysql
?
| 1 | mv?mysql-5.6.27-linux-glibc2.5-x86_64?mysql |
4.安裝依賴(lài)的lib包:
| 1 | centos:yum?install??libaio?-y |
5、配置用戶(hù),目錄
| 1 2 3 4 5 | shell>?groupadd?mysql shell>?useradd?-r?-g?mysql?mysql shell>?cd?/usr/local/mysql shell>?chown?-R?mysql?. shell>?chgrp?-R?mysql?. |
6、使用/data/目錄作為MySQL多實(shí)例的總目錄
| 1 | ?mkdir?-p?/data/{3306,3307}/data |
7、開(kāi)始配置多實(shí)例的配置文件
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 | 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??????????允許備庫(kù)將其重放的事件也記錄到自身的二進(jìn)制日志中 ?read_only=0????????????????阻止任何沒(méi)有特權(quán)權(quán)限的線(xiàn)程修改數(shù)據(jù) ?skip_slave_start? [client] ?socket?=?/data/3306/mysql.sock ?port?=?3306 |
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 | 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??????????允許備庫(kù)將其重放的事件也記錄到自身的二進(jìn)制日志中 ?read_only=0????????????????阻止任何沒(méi)有特權(quán)權(quán)限的線(xiàn)程修改數(shù)據(jù) ?skip_slave_start? [client] ?socket?=?/data/3307/mysql.sock ?port?=?3307 |
8、創(chuàng)建多實(shí)例的啟動(dòng)文件 。
? 放到/data/3306 ?| /data/3307 下
??腳本省略(mysqld)
?多實(shí)例啟動(dòng)文件的啟動(dòng)MySQL服務(wù)實(shí)質(zhì):
?
? ?
| 1 2 | mysqld_safe?--defaults-file=/data/3306/my.cnf?2>&1?>/dev/null?& mysqld_safe?--defaults-file=/data/3307/my.cnf?2>&1?>/dev/null?& |
??
?多實(shí)例啟動(dòng)文件的停止MySQL服務(wù)實(shí)質(zhì):
| 1 2 | ?mysqladmin?-u?root?-p?passwd?-S?/data/3306/mysql.sock?shutdown ?mysqladmin?-u?root?-p?passwd?-S?/data/3306/mysql.sock?shutdown??平滑停止 |
9,授權(quán)MySQL用戶(hù),和組管理整個(gè)多實(shí)例目錄
| 1 | ?chown?-R?mysql.mysql?/data |
10,配置MySQL全局環(huán)境變量
| 1 2 | ?echo?"export?PATH=$PATH:/usr/local/mysql/bin/"??>>?/etc/profile ?source??/etc/profile |
11,開(kāi)始初始化數(shù)據(jù)庫(kù)
?
| 1 2 3 | ?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/ |
?什么初始化數(shù)據(jù)庫(kù)?
?a,初始化的主要目的就是創(chuàng)建基礎(chǔ)的數(shù)據(jù)庫(kù)文件,例如生成MySQL的庫(kù)表
?b,初始化后,產(chǎn)看目錄,可以看到一些表文件
12,啟動(dòng)| 停止 MySQL服務(wù)
?如果有腳本,則使用腳本啟動(dòng)
| 1 2 | /data/3306/mysql??start? /data/3307/mysql??start |
?如果沒(méi)有腳本,則使用以下啟動(dòng)
| 1 | mysqld_safe?--defaults-file=/data/3306/my.cnf?2>&1?>/dev/null?& |
| 1 2 3 4 5 6 7 | mysqld_safe?--defaults-file=/data/3307/my.cnf?2>&1?>/dev/null?& 如果沒(méi)有腳本,則使用一下啟動(dòng)停止 mysqladmin?-u?root?-p?passwd?-S?/data/3306/mysql.sock?shutdown mysqladmin?-u?root?-p?passwd?-S?/data/3306/mysql.sock?shutdown??平滑停止| |
13,檢查
? 登陸:
?mysql -S /data/3306/mysql.sock?
管理的話(huà),在本地都是采用 -S /data/3306/mysql.sock,如果在遠(yuǎn)程可以通過(guò)不同的端口連接上去坐管理操作。其他的和單實(shí)例的管理沒(méi)什么區(qū)別!
#######################################################################################
再來(lái)看第二種通過(guò)官方自帶的mysqld_multi來(lái)實(shí)現(xiàn)多實(shí)例實(shí)戰(zhàn):
這里的mysql安裝以及數(shù)據(jù)庫(kù)的初始化和前面的步驟一樣,就不再贅述。
mysqld_multi的配置
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 | vim?/etc/my.cnf [mysqld_multi] mysqld?=?/usr/local/mysql/bin/mysqld_safe mysqladmin?=?/usr/local/mysql/bin/mysqladmin user?=?admin password?=?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??????????允許備庫(kù)將其重放的事件也記錄到自身的二進(jìn)制日志中 ?read_only=0????????????????阻止任何沒(méi)有特權(quán)權(quán)限的線(xiàn)程修改數(shù)據(jù) ?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??????????允許備庫(kù)將其重放的事件也記錄到自身的二進(jìn)制日志中 ?read_only=0????????????????阻止任何沒(méi)有特權(quán)權(quán)限的線(xiàn)程修改數(shù)據(jù) ?skip_slave_start? [client] ?socket?=?/data/3307/mysql.sock ?port?=?3307 [mysql] no-auto-rehash prompt=\\u@\\d?\\R:\\m> [mysqld_safe] open-files-limit?=?8192 |
mysqld_multi啟動(dòng)
| 1 2 3 4 5 6 7 8 9 10 11 | /usr/local/mysql/bin/mysqld_multi?start?1 /usr/local/mysql/bin/mysqld_multi?start?2 ?? 停止MySQL實(shí)例 mysqladmin?-uroot?-p?-S?/data/3306/mysql.sock?shutdown mysqladmin?-uroot?-p?-S?/data/3307/mysql.sock?shutdown 更改原來(lái)密碼 mysqladmin?-uroot?password?'123456'?-S?/data/3306/mysql.sock mysqladmin?-uroot?password?'123456'?-S?/data/3307/mysql.sock |
測(cè)試登陸
| 1 2 | mysql?-uroot?-p?-S?/data/3306/mysql.sock? mysql?-uroot?-p?-S?/data/3307/mysql.sock |
#########################################################################################
多實(shí)例MySQL忘記密碼,修改密碼的方法:
1,停掉原有實(shí)例進(jìn)程?
| 1 | mysqladmin?-uroot?-p?-S?/data/3306/mysql.sock?shutdown |
2,加參數(shù)登錄MySQL,此時(shí)跳過(guò)密碼驗(yàn)證
| 1 | mysqld_safe??--defaults-file=/data/3306/my.cnf??--skip-grant-tables??& |
3,登錄,并修改密碼?
?
| 1 | mysql?-uroot?-p?-S?/data/3306/mysql.sock???登錄時(shí)空密碼 |
?修改密碼:
| 1 2 | update?mysql.user?set?passowrd=password("123456")?where?user='root'; flush?privileges; |
4,重啟MySQL,使用新密碼登錄
?
| 1 2 | mysqladmin?-uroot?-p?-S?/data/330/mysql.sock?shutdown mysqld_safe?--defaults-file=/data/3306/my.cnf?2>&1?>/dev/null?& |
本文轉(zhuǎn)自crazy_charles 51CTO博客,原文鏈接:http://blog.51cto.com/douya/1787516,如需轉(zhuǎn)載請(qǐng)自行聯(lián)系原作者
總結(jié)
以上是生活随笔為你收集整理的mysql 多实例应用配置部署指南的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: Linux系统中网络配置详解
- 下一篇: 怎么查看linux文件夹下有多少个文件(