MySQL多实例的配置

步骤1 环境准备

安装多实例数据库

1)安装好数据库mariadb

yum -y install mariadb-server

2)创建mysql多实例数据文件目录

mkdir /data/mysql/3307/{data,etc,socket,log,bin,pid} -pv

mkdir /data/mysql/3308/{data,etc,socket,log,bin,pid} --pv

chown -R mysql.mysql /data/mysql

mysql_install_db --datadir=/data/mysql/3307/data/ --user=mysql

mysql_install_db --datadir=/data/mysql/3308/data/ --user=mysql

步骤2 创建配置文件

cp -a /etc/my.cnf /data/mysql/3307/etc/

vi /data/mysql/3307/etc/my.cnf

[mysqld]

port=3307

datadir=/data/mysql/3307/data

socket=/data/mysql/3307/socket/mysql.sock

[mysqld_safe]

log-error=/data/mysql/3307/log/mariadb.log

pid-file=/data/mysql/3307/pid/mariadb.pid

cp /data/mysql/3307/etc/my.cnf /data/mysql/3308/etc/

vi /data/mysql/3308/etc/my.cnf

编辑启动脚本

vi /data/mysql/3307/bin/mysqld

#!/bin/bash

port=3307

mysql_user="root"

mysql_pwd=""

cmd_path="/usr/bin"

mysql_basedir="/data/mysql"

mysql_sock="{mysql_basedir}/{port}/socket/mysql.sock"

function_start_mysql()

{

if [ ! -e "$mysql_sock" ];then

printf "Starting MySQL...\n"

{cmd_path}/mysqld_safe --defaults-file={mysql_basedir}/${port}/etc/my.cnf &> /dev/null &

else

printf "MySQL is running...\n"

exit

fi

}

function_stop_mysql()

{

if [ ! -e "$mysql_sock" ];then

printf "MySQL is stopped...\n"

exit

else

printf "Stoping MySQL...\n"

{cmd_path}/mysqladmin -u {mysql_user} -p{mysql_pwd} -S {mysql_sock} shutdown

fi

}

function_restart_mysql()

{

printf "Restarting MySQL...\n"

function_stop_mysql

sleep 2

function_start_mysql

}

case $1 in

start)

function_start_mysql

;;

stop)

function_stop_mysql

;;

restart)

function_restart_mysql

;;

*)

printf "Usage: {mysql_basedir}/{port}/bin/mysqld {start|stop|restart}\n"

esac

vi /data/mysql/3308/bin/mysqld

#!/bin/bash

port=3308

mysql_user="root"

mysql_pwd=""

cmd_path="/usr/bin"

mysql_basedir="/data/mysql"

mysql_sock="{mysql_basedir}/{port}/socket/mysql.sock"

function_start_mysql()

{

if [ ! -e "$mysql_sock" ];then

printf "Starting MySQL...\n"

{cmd_path}/mysqld_safe --defaults-file={mysql_basedir}/${port}/etc/my.cnf &> /dev/null &

else

printf "MySQL is running...\n"

exit

fi

}

function_stop_mysql()

{

if [ ! -e "$mysql_sock" ];then

printf "MySQL is stopped...\n"

exit

else

printf "Stoping MySQL...\n"

{cmd_path}/mysqladmin -u {mysql_user} -p{mysql_pwd} -S {mysql_sock} shutdown

fi

}

function_restart_mysql()

{

printf "Restarting MySQL...\n"

function_stop_mysql

sleep 2

function_start_mysql

}

case $1 in

start)

function_start_mysql

;;

stop)

function_stop_mysql

;;

restart)

function_restart_mysql

;;

*)

printf "Usage: {mysql_basedir}/{port}/bin/mysqld {start|stop|restart}\n"

esac

chmod +x /data/mysql/3307/bin/mysqld

chmod +x /data/mysql/3308/bin/mysqld

步骤3 数据库启动

cd /usr/bin

./mysqld_safe --defaults-file=/data/mysql/3307/etc/my.cnf &

chmod 644 /data/mysql/3307/etc/my.cnf

./mysqld_safe --defaults-file=/data/mysql/3307/etc/my.cnf &

ps -elf|grep mariadb

netstat -tanp | grep 3307

./mysqld_safe --defaults-file=/data/mysql/3308/etc/my.cnf &

chmod 644 /data/mysql/3308/etc/my.cnf

./mysqld_safe --defaults-file=/data/mysql/3308/etc/my.cnf &

ps -elf|grep mariadb

netstat -tanp | grep 3308

步骤4 多实例验证

登录多实例数据库

mysql -uroot -S /data/mysql/3307/socket/mysql.sock

show variables like '%port%';

mysql -uroot -S /data/mysql/3308/socket/mysql.sock

show variables like '%port%';

相关推荐
哈里谢顿4 小时前
记录一次sql优化记录
mysql
数据大魔方4 小时前
【期货量化实战】日内动量策略:顺势而为的短线交易法(Python源码)
开发语言·数据库·python·mysql·算法·github·程序员创富
Chasing Aurora5 小时前
数据库连接+查询优化
数据库·sql·mysql·prompt·约束
诸神黄昏EX6 小时前
Android Build系列专题【篇六:VINTF机制】
android
浪客川6 小时前
安卓日志工具类
android
萧曵 丶7 小时前
Next-Key Lock、记录锁、间隙锁浅谈
数据库·sql·mysql·mvcc·可重复读·幻读
csj507 小时前
安卓基础之《(14)—数据存储(4)应用组件Application》
android
李坤林7 小时前
Android Binder 详解(6) Binder 客户端的创建
android·binder
北京自在科技7 小时前
苹果iOS 26.3实现跨安卓数据无缝迁移
android·ios·findmy
_道隐_7 小时前
Android里面的layer、DisplayList和hardwarebuffer之间是什么关系
android