legongju.com
我们一直在努力
2025-01-12 19:46 | 星期天

FreeBSD上MySQL多实例部署

在FreeBSD上部署MySQL多实例,可以通过以下步骤来完成:

  1. 安装MySQL

首先,确保已经安装了MySQL。如果没有,请使用以下命令安装:

pkg install mysql80-server
  1. 创建数据目录和配置文件

为每个实例创建一个单独的数据目录和配置文件。例如,我们将创建两个实例,分别为instance1instance2

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

接下来,为每个实例创建一个配置文件。这些文件通常位于/usr/local/etc/目录下,并且以.cnf结尾。

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

编辑这些文件,添加以下内容(根据需要进行修改):

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. 初始化数据目录

对于每个实例,使用mysqld命令初始化数据目录。这将创建系统表和其他必要的文件。

mysqld --defaults-file=/usr/local/etc/my.instance1.cnf --initialize-insecure
mysqld --defaults-file=/usr/local/etc/my.instance2.cnf --initialize-insecure
  1. 创建MySQL用户和组

为每个实例创建一个单独的用户和组。这些用户将运行MySQL服务器进程。

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. 更改数据目录的所有权

将每个数据目录的所有权更改为相应的MySQL用户。

chown -R mysql_instance1:mysql_instance1 /data/mysql/instance1
chown -R mysql_instance2:mysql_instance2 /data/mysql/instance2
  1. 创建启动脚本

为每个实例创建一个启动脚本。这些脚本将在系统启动时自动启动MySQL服务器。

/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"

为这些脚本添加可执行权限:

chmod +x /usr/local/etc/rc.d/mysql_instance1
chmod +x /usr/local/etc/rc.d/mysql_instance2
  1. 启动实例

现在,可以启动这些实例了。使用以下命令启动它们:

service mysql_instance1 start
service mysql_instance2 start

要在系统启动时自动启动这些实例,请将以下内容添加到/etc/rc.conf文件中:

mysql_instance1_enable="YES"
mysql_instance2_enable="YES"

现在,您已经在FreeBSD上成功部署了MySQL多实例。您可以使用不同的配置文件和端口连接到这些实例。

未经允许不得转载 » 本文链接:https://www.legongju.com/article/96632.html

相关推荐

  • 如何处理MySQL decimal类型溢出

    如何处理MySQL decimal类型溢出

    当遇到MySQL的decimal类型溢出时,可以通过以下方法来解决: 调整列的精度和小数位数:
    如果发生溢出,可能是因为给定的值超出了decimal列的精度范围。要解...

  • MySQL decimal类型与float类型区别

    MySQL decimal类型与float类型区别

    MySQL中的decimal类型和float类型都用于表示数值,但它们之间有一些关键区别: 存储方式: Decimal类型是精确数值类型,它使用字符串形式存储数值,以保证数据的...

  • 在MySQL中decimal类型如何转换

    在MySQL中decimal类型如何转换

    在 MySQL 中,可以使用 CAST() 函数或者 CONVERT() 函数将 decimal 类型转换为其他数据类型。 使用 CAST() 函数: SELECT CAST(column_name AS target_type) FRO...

  • MySQL decimal类型默认值怎么设置

    MySQL decimal类型默认值怎么设置

    在MySQL中,使用DECIMAL数据类型可以存储精确的小数值。当创建表时,可以为DECIMAL类型的列设置默认值。以下是如何设置DECIMAL类型默认值的示例:
    CREATE T...

  • 如何监控FreeBSD上的MySQL服务

    如何监控FreeBSD上的MySQL服务

    要在FreeBSD上监控MySQL服务,您可以使用以下几种方法: 使用top或htop命令:
    这些命令可以实时显示系统进程和资源使用情况。通过运行top或htop,您可以查看...

  • FreeBSD系统下MySQL日志管理

    FreeBSD系统下MySQL日志管理

    在FreeBSD系统下,MySQL日志管理主要包括以下几个方面: 日志文件位置:
    在FreeBSD系统中,MySQL的日志文件通常位于/var/log/mysql目录下。主要的日志文件有...

  • 在FreeBSD上备份与恢复MySQL

    在FreeBSD上备份与恢复MySQL

    在FreeBSD上备份和恢复MySQL数据库,可以使用mysqldump和mysql命令
    备份MySQL数据库 打开终端。 使用以下命令备份所有数据库:
    mysqldump --all-datab...

  • FreeBSDMYSQL安全设置指南

    FreeBSDMYSQL安全设置指南

    在FreeBSD上设置MySQL安全性的关键在于实施一系列最佳实践,这些实践将有助于保护您的数据库免受未授权访问和其他安全威胁。以下是一些关键步骤和最佳实践: