單台機器啟動多個mysql實例,mysql單機多實例相互獨立

本文目錄一覽:

MySQL在一台db伺服器上面如何啟動多個實例

一、上傳RPM包到伺服器上 二、安裝mysql伺服器端rpm -ivhMySQL-server-5.5.8-1.rhel5.x86_64.rpm 三、安裝mysql客戶端 rpm -ivhMySQL-client-5.5.8-1.rhel5.x86_64.rpm 四、創建目錄 在/data下創建目錄,把原來的數據目錄/var/lib/mysql 移到/data/mysql/data1和/data/mysql/data2下,並修改mysql目錄以及子目錄許可權 PS:安裝後默認的幾個重要目錄 目錄 內容/var/lib/mysql 數據文件,日誌文件等等/usr/bin客戶端程序和腳本/usr/share/mysql 錯誤消息和字符集文件/etc/rc.d/init.d/mysql 啟動腳本文件 創建目錄 修改許可權 五、修改並上傳配置文件my.cnf 從伺服器上的/usr/share/mysql目錄中把my-innodb-heavy-4G.cnf拷貝一份到本地。編輯其內容增加數據文件和日誌文件的目錄,修改socket目錄。 六、用mysql_multi啟動多個服務 啟動:mysqld_multi –defaults-file=/etc/my.cnf start1,2 查看是否啟動:mysqld_multi –defaults-file=/etc/my.cnfreport 1 七、查看埠是否打開 八、連接進入指定的mysql伺服器 mysql -u root -S/tmp/mysql1.sock 或者mysql -uroot -P3307 -h127.0.0.1 九、記得關閉防火牆

如何在一台window機器下安裝多個MYSQL實例

首先可以去下載mysql的安裝文件,或者綠色免安裝的文件,直接下載進行安裝

安裝完畢之後,在安裝路徑下,找到mysql的目錄,進行複製,比如複製多份,兩份,分別命名MySql2 Mysql3

之後進Mysql2 Mysql3的修改,我們設定Mysql這個目錄作為master,需要對它的my.ini配置文件進行修改,添加如下:修改埠號和base目錄和數據目錄

之後開始註冊服務,進入到bin目錄下執行

mysqld install mysql2 –defaults-file=”E:\phpStudy\MySQL2\my.ini”

執行完畢之後,我們就可以看到服務註冊了

之後進入windows系統下服務目錄下,我們就能看到mysql2這個服務,在這裡我們需要將mysql2這個服務打開,設置為已啟動狀態

之後我們在控制台,執行mysql -uroot -p -P3307,輸入密碼就可以進入mysql,其他的依次類推就可以了,實現多個mysql安裝

如何在同一台機器上安裝多個MySQL的實例

這種架構一般用在以下三類場景

1. 備份多台 Server 的數據到一台如果按照數據切分方向來講,那就是垂直切分。比如圖 2,業務 A、B、C、D 是之前拆分好的業務,現在需要把這些拆分好的業務匯總起來備份,那這種需求也很適用於多源複製架構。實現方法我大概描述下:業務 A、B、C、D 分別位於 4 台 Server,每台 Server 分別有一個資料庫來隔離前端的業務數據,那這樣,在從庫就能把四台業務的數據全部匯總起來,而不需要做額外的操作。那沒有多源複製之前,要實現這類需求,只能在匯總機器上搭建多個 MySQL 實例,那這樣勢必會涉及到跨庫關聯的問題,不但性能急劇下降,管理多個實例也沒有單台來的容易。

2. 用來聚合前端多個 Server 的分片數據。

同樣,按照數據切分方向來講,屬於水平切分。比如圖 3,按照年份拆分好的數據,要做一個匯總數據展現,那這種架構也非常合適。實現方法稍微複雜些:比如所有 Server 共享同一資料庫和表,一般為了開發極端透明,前端配置有分庫分表的中間件,比如愛可生的 DBLE。

3. 匯總併合並多個 Server 的數據

第三類和第一種場景類似。不一樣的是不僅僅是數據需要匯總到目標端,還得合併這些數據,這就比第一種來的相對複雜些。比如圖 4,那這樣的需求,是不是也適合多源複製呢?答案是 YES。那具體怎麼做呢?

如何在一台Windows主機上運行多個MySQL服務

1.正常安裝第一個mysql(安裝步驟省略)

2.在控制面板里停止第一個mysql服務

3.將C:\Program Files\MySQL目錄下的所有目錄和文件copy到另外一個路徑,我這裡是copy到E盤

4.創建第二個mysql的my.ini文件

第一個mysql的my.ini文件默認是在如下路徑

C:\Documents and Settings\All Users\Application Data\MySQL\MySQL Server 5.5\my.ini

copy該ini文件存放到E:\MySQL\mysql_base,這個路徑可以隨意定義,並修改如下內容:

[client]

port=3307 #第一個資料庫的默認埠是3306 這裡需要另外啟用一個埠

# The TCP/IP Port the MySQL Server will listen on

port=3307

# Path to installation directory. All paths are usually resolved relative to this.

basedir=”E:\MySQL\MySQL Server 5.5\” #第二個資料庫basedir

# Path to the database root

datadir=”E:\MySQL\MySQL Server 5.5\data\” #第二個資料庫datadir

5.創建啟動服務(此時在控制面板中可以看到增加了一個新的服務)

mysqld install MySQL2 –defaults-file=”E:\MySQL\mysql_base\ini\my.ini”

6.修改註冊表

HKEY_LOCAL_MACHINE–SYSTEM–CurrentControlSet–Services

找到剛才創建的MySQL2,將ImagePath修改成如下”:

“E:\MySQL\MySQL Server 5.5\bin\mysqld” –defaults-file=”E:\MySQL\mysql_base\ini\my.ini” MySQL2

一台機器上可以安裝多個mysql嗎

先說下,什麼是mysql的多實例,簡單的來說就是一台機器上安裝了多個mysql的服務,通過不同的埠(如3307,3308)來向外界提供服務,這些進程通過不同的socket來監聽不同的服務埠來提供個字的服務。

做個比喻:MySQL的多實例相當於房子的相當於多個卧室一樣,每個實例可以看做是一個卧室,整個伺服器就是一個房子,伺服器的硬體資源(cpu,mem,disk)就是共享的資源,相當於房子的衛生間,廚房,客廳一樣,是房子的公共資源,北漂蝸居在一起,可定是要公用上述的資源的。

好處:

當公司資金緊張,可以節約伺服器的資源。

壞處:

當某個服務並發很高或者有慢查詢的時候,整個實例會消耗整個伺服器更多的內存,cpu和各種資源,導致伺服器上的其他的實例提供的服務質量下降。這就相當於大家住在一個房子的不同卧室一樣,早晨起來刷牙,洗臉等,這樣衛生間就會長期佔用,其他人需要等一樣的道理。

下面記錄下裝一個3307的MySQL的實例的步驟:

一. 基本的需求和出現的問題

當MySQL出現故障或者需要加入一個新的MySQL的實例的時候,需要重新初始化MySQL的資料庫,也就是需要重新生成新的資料庫的文件。

Linux環境中,安裝編譯好MySQL之後,還是不能直接啟動MySQL,需要初始化Mysql的一些基本東西,包括:

初始化表日誌,基本的資料庫信息等一些基本的必須文件。

二.安裝的步驟:

  (1). 假設已經存在一個MySQL的實例,埠號為3306,現在需要重新添加一個埠號為3307埠的MySql的實例。

  假設MySQl安裝的路徑是/usr/local/mysql/下面,找一個數據磁碟比較的地方,比如/data1/目錄下,在這個目錄下面創建數據文件夾:

1 mkdir -p /data1/mysql_3307/data

2 chown -R mysql::mysql /data1/mysql_3307

  (2). 複製之前的MySQl的配置文件,到/data1/mysql_3307/目錄下面,並且進行編輯:

vim /data1/mysql_3307/my.cnf

基本的配置如下:

註:上面的路徑可能與上面的資料庫文件的存放路徑有點出入,但這個不是重點,可以自行替換一下!

(3).確保配置文件無誤,然後開始初始化資料庫:

/usr/local/mysql/scripts/mysql_install_db –defaults-file=/data1/mysql_3307/my.cnf –datadir=/data1/mysql/ –basedir=/usr/lcoal/mysql

完成後,新的mysql 3307資料庫已經初始化好了,如果有報錯,則看下報錯的日誌,一般是由於mysql的配置文件導致的,修改即可!

(4).啟動新的MySQL的實例服務:

在上面的初始化配置確保無誤的情況下,就可以開始啟動MySQL的又一個實例了。

1 /usr/local/mysql/bin/mysqld_safe –defaults-file=/data1/mysql_3308/my.cnf

2 檢查是否啟動:

3 ps -aux | grep mysql

4 如有3308的埠 則表示成功

(5).新的 mysql沒有設置root密碼,可以通過如下 的設置:

/usr/local/mysl/bin/mysqladmin -S /tmp/mysql_3308.sock -uroot passwd ‘new-paswd’;

如上面的步驟,即可完成一個機器上多個MySQL實例的安裝與運行。

 當然了,可以將MySQL_server這個腳本放入到/rt/rc.local這個目錄下面,隨著伺服器啟動。

(6).如果想登陸的時候,需要指定MySQL的埠號,使用-P3307來指定登錄到哪台資料庫上即可。

 總結:

自己在安裝這個資料庫的時候,以為是需要再次下載一個新的資料庫的源碼包,但是其實是不用的,使用一個MySQL的源碼包,是可以安裝多個MySQL的實例的。

在一台機器上,怎樣開啟兩個mysql服務

7月26日 10:36 有些情況下你可能想要在同一台機器上運行多個伺服器。例如,你可能想要測試一個新的MySQL版本而讓你現有生產系統的設置不受到干擾,或你可能是想要為不同的客戶提供獨立的MySQL安裝一個網際網路服務供應商。

如果你想要運行多個伺服器,最容易的方法是用不同的TCP/IP埠和套接字文件重新編譯伺服器,因此他們不是偵聽同一個TCP/IP埠或套接字。

假設一個現存伺服器配置為預設埠號和套接字文件,那麼用一個這樣的configure命令行設置新的伺服器:

shell ./configure –with-tcp-port=port_number \

–with-unix-socket=file_name \

–prefix=/usr/local/mysql-3.22.9

這裡port_number和file_name應該不同於預設埠號和套接字文件路徑名,而且–prefix值應該指定一個不同於現存的MySQL安裝所在的安裝目錄。

你可以用這個命令檢查由任何當前執行的MySQL所使用的套接字和埠:

shell mysqladmin -h hostname –port=port_number variables

如果你有一個MySQL伺服器正運行在你使用了的埠上,你將得到MySQL的一些最重要的可配置變數的一張表,包括套接字名等。

你也應該編輯你機器的初始化腳本(可能是「mysql.server」)來啟動並殺死多個mysqld伺服器。

你不必重新編譯一個新MySQL伺服器,只要以一個不同的埠和套接字啟動即可。你可以通過指定在運行時safe_mysqld使用的選項來改變埠和套接字:

shell /path/to/safe_mysqld –socket=file_name –port=port_number

如果你在與開啟日誌的另一個伺服器相同的一個資料庫目錄下運行新伺服器,你也應該用safe_mysqld的–log和–log-update選項來指定日誌文件的名字,否則,兩個伺服器可能正在試圖寫入同一個日誌文件。

警告:通常你決不應該有在同一個資料庫中更新數據的2個伺服器!如果你的OS不支持無故障(fault-free)的系統鎖定,這可能導致令人驚訝的事情發生!

如果你想要為第二個伺服器使用另一個資料庫目錄,你可以使用safe_mysqld的–datadir=path選項。

原創文章,作者:NIZQ,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/148887.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
NIZQ的頭像NIZQ
上一篇 2024-11-04 17:49
下一篇 2024-11-04 17:49

相關推薦

發表回復

登錄後才能評論