FreeBSD上MySQL多實(shí)例部署

小樊
82
2024-09-08 13:21:33
欄目: 云計(jì)算

在FreeBSD上部署MySQL多實(shí)例,可以通過以下步驟來完成:

  1. 安裝MySQL

首先,確保已經(jīng)安裝了MySQL。如果沒有,請(qǐng)使用以下命令安裝:

pkg install mysql80-server
  1. 創(chuàng)建數(shù)據(jù)目錄和配置文件

為每個(gè)實(shí)例創(chuàng)建一個(gè)單獨(dú)的數(shù)據(jù)目錄和配置文件。例如,我們將創(chuàng)建兩個(gè)實(shí)例,分別為instance1instance2。

mkdir -p /data/mysql/instance1/{data,log}
mkdir -p /data/mysql/instance2/{data,log}

接下來,為每個(gè)實(shí)例創(chuàng)建一個(gè)配置文件。這些文件通常位于/usr/local/etc/目錄下,并且以.cnf結(jié)尾。

touch /usr/local/etc/my.instance1.cnf
touch /usr/local/etc/my.instance2.cnf

編輯這些文件,添加以下內(nèi)容(根據(jù)需要進(jìn)行修改):

my.instance1.cnf:

[mysqld]
datadir=/data/mysql/instance1/data
socket=/tmp/mysql_instance1.sock
port=3307
log-error=/data/mysql/instance1/log/error.log
pid-file=/var/run/mysql_instance1.pid

my.instance2.cnf:

[mysqld]
datadir=/data/mysql/instance2/data
socket=/tmp/mysql_instance2.sock
port=3308
log-error=/data/mysql/instance2/log/error.log
pid-file=/var/run/mysql_instance2.pid
  1. 初始化數(shù)據(jù)目錄

對(duì)于每個(gè)實(shí)例,使用mysqld命令初始化數(shù)據(jù)目錄。這將創(chuàng)建系統(tǒng)表和其他必要的文件。

mysqld --defaults-file=/usr/local/etc/my.instance1.cnf --initialize-insecure
mysqld --defaults-file=/usr/local/etc/my.instance2.cnf --initialize-insecure
  1. 創(chuàng)建MySQL用戶和組

為每個(gè)實(shí)例創(chuàng)建一個(gè)單獨(dú)的用戶和組。這些用戶將運(yùn)行MySQL服務(wù)器進(jìn)程。

pw groupadd mysql_instance1
pw useradd -n mysql_instance1 -g mysql_instance1 -d /nonexistent -s /bin/false
pw groupadd mysql_instance2
pw useradd -n mysql_instance2 -g mysql_instance2 -d /nonexistent -s /bin/false
  1. 更改數(shù)據(jù)目錄的所有權(quán)

將每個(gè)數(shù)據(jù)目錄的所有權(quán)更改為相應(yīng)的MySQL用戶。

chown -R mysql_instance1:mysql_instance1 /data/mysql/instance1
chown -R mysql_instance2:mysql_instance2 /data/mysql/instance2
  1. 創(chuàng)建啟動(dòng)腳本

為每個(gè)實(shí)例創(chuàng)建一個(gè)啟動(dòng)腳本。這些腳本將在系統(tǒng)啟動(dòng)時(shí)自動(dòng)啟動(dòng)MySQL服務(wù)器。

/usr/local/etc/rc.d/mysql_instance1:

#!/bin/sh

# PROVIDE: mysql_instance1
# REQUIRE: DAEMON
# KEYWORD: shutdown

. /etc/rc.subr

name="mysql_instance1"
rcvar=${name}_enable

command="/usr/local/libexec/mysqld"
command_args="--defaults-file=/usr/local/etc/my.instance1.cnf"

load_rc_config $name
run_rc_command "$1"

/usr/local/etc/rc.d/mysql_instance2:

#!/bin/sh

# PROVIDE: mysql_instance2
# REQUIRE: DAEMON
# KEYWORD: shutdown

. /etc/rc.subr

name="mysql_instance2"
rcvar=${name}_enable

command="/usr/local/libexec/mysqld"
command_args="--defaults-file=/usr/local/etc/my.instance2.cnf"

load_rc_config $name
run_rc_command "$1"

為這些腳本添加可執(zhí)行權(quán)限:

chmod +x /usr/local/etc/rc.d/mysql_instance1
chmod +x /usr/local/etc/rc.d/mysql_instance2
  1. 啟動(dòng)實(shí)例

現(xiàn)在,可以啟動(dòng)這些實(shí)例了。使用以下命令啟動(dòng)它們:

service mysql_instance1 start
service mysql_instance2 start

要在系統(tǒng)啟動(dòng)時(shí)自動(dòng)啟動(dòng)這些實(shí)例,請(qǐng)將以下內(nèi)容添加到/etc/rc.conf文件中:

mysql_instance1_enable="YES"
mysql_instance2_enable="YES"

現(xiàn)在,您已經(jīng)在FreeBSD上成功部署了MySQL多實(shí)例。您可以使用不同的配置文件和端口連接到這些實(shí)例。

0