大家來參考。MySQL多例項配置 一

2021-06-26 11:14:53 字數 3612 閱讀 8080

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。

對不同的例項配置ip位址,相關的訪問協議,埠等等。

例項的可訪問性需要啟動該例項對應的相關服務。此處需要注意的是例項名和例項的服務名並不是相同的。

預設的例項的服務名為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工具來進行管理。

3、初始化例項

5、啟動關閉多例項

suse11:~ # mysqld_multi report

reporting mysql servers

mysql server from group: mysqld3306 is not running

mysql server from group: mysqld3406 is not running

mysql server from group: mysqld3506 is not running

suse11:~ # mysqld_multi start 3306

suse11:~ # mysqld_multi start 3406,3506     #可以同時啟動多個例項

suse11:~ # netstat -ntlp  | grep mysql

tcp        0      0 :::3306                 :::*                    listen      14786/mysqld        

tcp        0      0 :::3406                 :::*                    listen      15103/mysqld        

tcp        0      0 :::3506                 :::*                    listen      15371/mysqld 

suse11:/tmp # ls *.sock

mysql3306.sock  mysql3406.sock  mysql3506.sock

#為新例項修改密碼及建立賬戶

suse11:/tmp # mysql -uroot -p*** -s ./mysql3306.sock  #3306已經有初始密碼

root@localhost[(none

)]> grant shutdown on *.* to 

'admin'@'localhost'

identified by '***' with grant option;

suse11:/tmp # mysql -uroot -p -s ./mysql3406.sock

enter password:  #此時密碼為空

root@localhost[(none

)]> set password for 

'root'@'localhost'=password('***'

);root@localhost[(none

)]> grant shutdown on *.* to 

'admin'@'localhost'

identified by '***' with grant option;

suse11:/tmp # mysql -uroot -p -s ./mysql3506.sock 

enter password:  #此時密碼為空

root@localhost[(none

)]> set password for 

'root'@'localhost'=password('***'

);root@localhost[(none

)]> grant shutdown on *.* to 

'admin'@'localhost'

identified by '***' with grant option;

#使用tcp方式登入測試

suse11:/tmp # mysql -uroot -p*** -p3506

root@localhost[(none

)]> 

#檢查多例項的狀態

suse11:/tmp # mysqld_multi report

reporting mysql servers

mysql server from group: mysqld3306 is running

mysql server from group: mysqld3406 is running

mysql server from group: mysqld3506 is running

#停止多例項伺服器

suse11:~ # mysqld_multi stop 3306

suse11:~ # mysqld_multi report 3306

reporting mysql servers

mysql server from group: mysqld3306 is not running

suse11:~ # mysqld_multi stop 3406

suse11:~ # mysqld_multi stop 3506

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多例項配置 二

mysql資料庫的集中化運維,可以通過在一台mysql資料庫伺服器上,部署多個mysql例項。該功能是通過mysqld multi來實現。mysqld multi用於管理多個mysqld的服務程序,這些mysqld服務程序程式可以用不同的socket或是監聽於不同的埠,同時將資料檔案分布到不同的磁碟...