MariaDB 多实例启动

【MariaDB 多实例(服务)启动】

计划开放端口3307、3308:
服务名 端口 文件夹

mariadb3307 3307 /data/mariadb/3307
mariadb3308 3308 /data/mariadb/3308

1.建立各个实例的文件夹

mkdir -p /data/mariadb/3307/etc
mkdir -p /data/mariadb/3308/etc

#mkdir -p /data/mariadb/3307/etc/my.cnf.d #第4步生成数据库会自动创建目录
#mkdir -p /data/mariadb/3307/data #第3步生成数据库会自动创建目录
#mkdir -p /data/mariadb/3308/etc/my.cnf.d
#mkdir -p /data/mariadb/3308/data


2.更改目录权限和所属者所属组

chown -R mysql.mysql /data/mariadb
chmod -R 771 /data/mariadb/
chmod 755 /data/mariadb/*/etc

3.使用数据库生成脚本,对各个数据库存放目录分别进行数据库生成

mysql_install_db --datadir=/data/mariadb/3307/data --user=mysql --basedir=/usr
mysql_install_db --datadir=/data/mariadb/3308/data --user=mysql --basedir=/usr

4.拷贝/etc/my.cnf至目录下自建的/etc

cp -Rp /etc/my.cnf* /data/mariadb/3307/etc/
cp -Rp /etc/my.cnf* /data/mariadb/3308/etc/

拷贝后进行更改

[mysqld]
port=3307
datadir=/data/mariadb/3307/data
socket=/data/mariadb/3307/mysql.socket

[musqld_safe]
log-error=/data/mariadb/3307/mariadb.err.log
pid-file=/data/mariadb/3307/mariadb.pid

#注释或更改掉此项,
#!includedir /etc/my.conf.d
!includedir /data/mariadb/3307/etc/my.conf.d

**3308 的照例更改**
**etc/my.cnf.d/server.cnf 注意内存分配等**
**多实例下 各个实例的 socket 文件 配置不能再是默认路径了,不然是默认路径的实例先启动的话,其他实例无法启动**

5.更改mysqld服务脚本

原路径: /usr/lib/systemd/system/mariadb.service
改成分别是 `mariadba.service` 和 `mariadbb.service`
** mysqld_safe 的 basedir参数不要需修改, `/usr/share/mysql` 目录会找不到**

Description=MariaDB database server
After=syslog.target
After=network.target

[Service]
Type=simple
User=mysql
Group=mysql

ExecStartPre=/usr/libexec/mariadb-prepare-db-dir %n
# Note: we set --basedir to prevent probes that might trigger SELinux alarms,
# per bug #547485
#ExecStart=/usr/bin/mysqld_safe --defaults-file=/data/3308/etc/my.cnf --basedir=/usr
ExecStart=/usr/bin/mysqld_safe --defaults-file=/data/3307/etc/my.cnf --basedir=/usr
ExecStartPost=/usr/libexec/mariadb-wait-ready $MAINPID

# Give a reasonable amount of time for the server to start up/shut down
TimeoutSec=300

LimitNOFILE=102400

# Place temp files in a secure directory, not /tmp
PrivateTmp=true

[Install]
WantedBy=multi-user.target

6.其他

服务操作

systemctl daemon-reload
systemctl enable mariadb3307 #开机启动mariadb3307
systemctl start mariadb3307
systemctl stop mariadb3307
systemctl restart mariadb3307
systemctl status mariadb3307

连入mysql
mysql -uroot -p -h127.0.0.1 -P3308

修改root密码
mysqladmin -uroot -S /app/mysql/3308/mysql.sock password "mariadb"

原文地址:https://www.cnblogs.com/lzpong/p/15007882.html