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"
--- auth:lzpong