mysql資料庫的集中化運維,可以通過在一台mysql資料庫伺服器上,部署多個mysql例項。該功能是通過mysqld_multi來實現。mysqld_multi用於管理多個mysqld的服務程序,這些mysqld服務程序程式可以用不同的socket或是監聽於不同的埠,同時將資料檔案分布到不同的磁碟以分散io。mysqld_multi提供簡單的命令用於啟動,關閉和報告所管理的伺服器的狀態。從而減少生產環境的維護成本,方便後續的遷移和清理等工作,借助多例項繫結的方式提高伺服器的整體資源利用率.對於多例項的配置有2種方式,一種是在my.cnf為所有例項提供配置,一種是使用每乙個例項乙個配置檔案。本文主要描述第二種方式。
第一種多例項配置方式請參考:mysql多例項配置(一)
有關mysql單例項的安裝請參考:linux 下mysql原始碼安裝完整版
1、各資料庫多例項的差異
mssql
mssql中的例項指的是乙個sql server伺服器上僅有乙個預設例項。預設例項名即為機器名servername(或ip)。
如果在同一臺機器上再安裝sql server,我們可以對例項命名如servername/instancename。
即一台sql server伺服器上可以存在多個不同的例項。乙個例項下可以存在多個不同的資料庫。
對於不同例項下的資料庫的訪問,使用servername/instancename:portno即可實現訪問,預設例項為servername:portno。
例項的可訪問性需要啟動該例項對應的相關服務。此處需要注意的是例項名和例項的服務名並不是相同的。
預設的例項的服務名為mssqlserver,而命名例項的服務名為mssql$instance_name。
oracle
乙個oracle server由乙個oracle例項和乙個oracle資料庫組成。即:oracle server = oracle instance + oracle database
在oracle的例項主要是由sga,pga以及一堆的後台程序來組成,此稱之為例項。
一系列物理檔案的集合包括控制檔案、資料檔案、聯機日誌檔案、引數檔案、密碼檔案等稱之為資料庫。
乙個例項只能訪問乙個資料庫,乙個資料庫可以被多個例項訪問。
mysql
mysql例項的概念與mssql差不多,乙個mysql例項下可以存在或訪問n個資料庫。
不同的例項間可以用不同的埠號來區分,各個例項的資料可以使用不同的磁碟目錄。
mysql多例項通過mysqld_multi工具來進行管理。
2、現有的環境
mysql埠號: 3306
mysql 版本:5.6.12 source distribution
os 環境:suse linux enterprise server 11 sp3 (x86_64)
3、初始化例項
#為新例項建立資料目錄並賦權
#初始化例項
# author : leshami
# blog :
4、配置各例項的my.cnf檔案
[mysqld]
socket = /tmp/mysql3606.sock
port = 3606
user = mysql
server-id=3606
[client]
port = 3606
socket = /tmp/mysql3606.sock
[mysql]
no-auto-rehash
socket = /tmp/mysql3606.sock
prompt=\\u@\\h[\\d]> \\
[mysqld]
socket = /tmp/mysql3706.sock
port = 3706
user = mysql
server-id=3706
[client]
port = 3706
socket = /tmp/mysql3706.sock
[mysql]
no-auto-rehash
socket = /tmp/mysql3706.sock
prompt=\\u@\\h[\\d]> \\
5、啟動關閉多例項
suse11:~ # netstat -nltp|grep mysql
tcp 0 0 :::3606 :::* listen 64277/mysqld
tcp 0 0 :::3706 :::* listen 64597/mysqld
suse11:~ # mysqladmin -uroot password '***' -s /tmp/mysql3606.sock
suse11:~ # mysqladmin -uroot password '***' -s /tmp/mysql3706.sock
#下面使用套接字方式連線到例項
suse11:~ # mysql -uroot -p*** -s /tmp/mysql3606.sock
root@localhost[(none)]>
suse11:~ # mysql -uroot -p*** -s /tmp/mysql3706.sock
root@localhost[(none)]>
#下面使用tcp方式連線到例項
suse11:~ # mysql -uroot -p*** -p3606 --protocol=tcp
root@localhost[(none)]> exit
suse11:~ # mysql -uroot -p*** -p3706 --protocol=tcp
root@localhost[(none)]>
#關閉mysql例項
suse11:~ # mysqladmin -uroot -p*** -s /tmp/mysql3606.sock shutdown
suse11:~ # mysqladmin -uroot -p*** -s /tmp/mysql3706.sock shutdown
mysql多例項配置
1 mysql安裝參考 2 建立 例項的資料檔案目錄 cd data mkdir p data 3 copy mysql軟體到對應例項目錄下 cd data cp r mysql dbdata1 cp r mysql dbdata2 4 編輯配置檔案my.cnf cd data dbdata1 vi...
mysql多例項配置 MySQL多例項資料庫配置
mysql多例項資料庫配置 1 登入進入mysql,在mysql 5.7.18 bin目錄下執行命令 mysql uroot p s usr local mysql 5.7.18 data 3307 mysql.sock 其中 p 是指定密碼,如果沒有密碼則可以不寫 p,s是指定sock檔案,mys...
mysql單機多例項配置
主機安排 1.什麼是多例項 在一台物理主機上執行多個資料庫服務,可以節約運維成本,提高硬體利用率 1 解壓軟體 修改目錄名 root mysql wget root mysql tar xvf mysql 5.7.28 linux glibc2.12 i686.tar.gz root mysql m...