我有一个文件 /etc/mysql/mysqld_multi_cls.cnf,其中包含 mariadb 多个数据库实例所需的一切。
我可以使用以下命令启动这些实例:
sudo mariadbd-multi --defaults-file=/etc/mysql/mysqld_multi_cls.cnf start
但是我找不到在启动时启动这些实例的(巧妙的)方法。
在 /conf.d/ 文件夹中添加 .cnf 文件不会启动实例,除非我不知情地搞砸了。数据库在基于 Debian 的 Raspberry pi5、Raspberry Pi OS 上运行。而且我对 Linux 相当不熟悉/菜鸟。
请求后,这是.cnf文件:
# Configuration Settings for mysqld_multi , as well as separate instances.
#
[mysqld_multi]
mysqld = /usr/bin/mariadbd-safe
mysqladmin = /usr/bin/mariadb-admin
[mysqld2]
socket = /tmp/mysql.sock2
port = 3307
pid-file = /usr/local/mysql/mdb2/ansible-host1.pid2
datadir = /var/lib/mysql2
log-error = /var/log/mysql2/error.log
log-bin = /var/log/mysql2/mdb2-mysql-bin.log
server-id = 2
expire-logs-days = 72
sync_binlog = 1
innodb_flush_log_at_trx_commit = 1
innodb_flush_method = O_DIRECT
binlog_format = mixed
gtid_strict_mode = 1
[mysqld3]
socket = /tmp/mysql.sock3
port = 3308
pid-file = /usr/local/mysql/mdb3/ansible-host1.pid3
datadir = /var/lib/mysql3
log-error = /var/log/mysql3/error.log
log-bin = /var/log/mysql3/mdb3-mysql-bin.log
server-id = 3
expire-logs-days = 64
sync_binlog = 1
innodb_flush_log_at_trx_commit = 1
innodb_flush_method = O_DIRECT
binlog_format = mixed
gtid_strict_mode = 1
[mysqld4]
socket = /tmp/mysql.sock4
port = 3309
pid-file = /usr/local/mysql/mdb4/ansible-host1.pid4
datadir = /var/lib/mysql4
log-error = /var/log/mysql4/error.log
log-bin = /var/log/mysql4/mdb4-mysql-bin.log
server-id = 4
expire-logs-days = 64
sync_binlog = 1
innodb_flush_log_at_trx_commit = 1
innodb_flush_method = O_DIRECT
binlog_format = mixed
gtid_strict_mode = 1
我无法找到一种通过 mariadb 启动来启动其他实例的好方法。
几个小时变成了几天,几天变成了几周。几周变成了不眠之夜和压力食品。所以我不得不求助于 mariadb/mysql 之外的 Linux 方法。一种简单的方法是将您的命令添加到文件 /etc/rc.local。
要编辑此文件,请使用以下命令:
在“exit 0”前输入以下内容
CTRL S 保存,CTRL X 关闭。
完成后,您的实例现在在启动时启动。