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
posted @   _Ong  阅读(361)  评论(0编辑  收藏  举报
编辑推荐:
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
历史上的今天:
2016-07-13 [笔记]linux下和windows下的 创建线程函数
点击右上角即可分享
微信分享提示