一个虚拟机部署多个mariadb实例

发布时间 2023-12-18 02:05:06作者: 小刀砍大树

参考:https://www.cnblogs.com/lzpong/p/15007882.html

一、yum安装mariadb

  配置yum源: 

[rocky]
name=CentOS-Rocky
baseurl=https://mirrors.aliyun.com/centos/7/cloud/x86_64/openstack-rocky/
enable=1
gpgcheck=0
[rocky-extras]
name=CentOS-Rocky-extras
baseurl=https://mirrors.aliyun.com/centos/7/extras/x86_64/
enable=1
gpgcheck=0
[centos7]
name=Centos-7
baseurl=https://mirrors.aliyun.com/centos/7/os/x86_64/
enable=1
gpgcheck=0

  [root@192-168-43-120 ~]# yum install mariadb mariadb-server python2-PyMySQL -y

二、建立各个实例的文件夹(配置文件和数据目录)  

  [root@192-168-43-120 data]# mkdir -p /data/mariadb/{13306..13308}/etc

  [root@192-168-43-120 data]# mkdir -p /data/mariadb/{13306..13308}/data

三、拷贝配置文件,并修改

  [root@192-168-43-120 13306]# cp -Rp /etc/my.cnf* /data/mariadb/13306/etc/

  修改13306的配置文件my.cnf

# This group is read both both by the client and the server
# use it for options that affect everything
#
[client-server]

#
# This group is read by the server
#
[mysqld]
# Disabling symbolic-links is recommended to prevent assorted security risks
#symbolic-links=0
port=13306
datadir=/data/mariadb/13306/data
socket=/data/mariadb/13306/mysql.socket
log-error=/data/mariadb/13306/mariadb.err.log
pid-file=/data/mariadb/13306/mariadb.pid
#
# include all files from the config directory
#
#!includedir /etc/my.cnf.d

  13307,13308配置修改类似

四、修改目录权限

  [root@192-168-43-120 ~]# chown -R mysql:mysql /data/mariadb

  [root@192-168-43-120 13306]# chmod 755 /data/mariadb/*/etc

五、初始化数据库数据目录,生成数据库相关文件

  [root@192-168-43-120 ~]# mysql_install_db --datadir=/data/mariadb/13306/data --user=mysql --basedir=/usr

  [root@192-168-43-120 ~]# mysql_install_db --datadir=/data/mariadb/13307/data --user=mysql --basedir=/usr

  [root@192-168-43-120 ~]# mysql_install_db --datadir=/data/mariadb/13308/data --user=mysql --basedir=/usr

五、拷贝mariadb.service文件并修改

  [root@192-168-43-120 ~]# cp -a /usr/lib/systemd/system/mariadb.service /usr/lib/systemd/system/mariadb-13306.service

[Unit]
Description=MariaDB 10.1 database server
After=syslog.target
After=network.target
[Service]
Type=notify
User=mysql
Group=mysql
ExecStartPre=/usr/libexec/mysql-check-socket
ExecStartPre=/usr/libexec/mysql-prepare-db-dir %n
ExecStart=/usr/libexec/mysqld --defaults-file=/data/mariadb/13306/etc/my.cnf --basedir=/usr
ExecStartPost=/usr/libexec/mysql-check-upgrade
ExecStopPost=/usr/libexec/mysql-wait-stop
PrivateNetwork=false
KillMode=process
KillSignal=SIGTERM
SendSIGKILL=no
Restart=on-abort
RestartSec=5s
UMask=007
TimeoutSec=300
PrivateTmp=true
[Install]
WantedBy=multi-user.target

  同理mariadb-13307.service,mariadb-13308.service类似修改

六、启动服务

  [root@192-168-43-120 13307]# systemctl daemon-reload

  [root@192-168-43-120 13307]# systemctl enable mariadb-13306.service mariadb-13307.service mariadb-13308.service

  [root@192-168-43-120 13307]# systemctl start mariadb-13306.service mariadb-13307.service mariadb-13308.service

  

七、连接登陆,修改密码

  [root@192-168-43-120 13307]# mysql -uroot -h127.0.0.1 -P13306

  [root@192-168-43-120 13307]# mysqladmin -uroot -S /data/mariadb/13306/mysql.socket password "123456"