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%';

相关推荐
在多学一点9 分钟前
MySQL_DDL的基本命令
数据库·mysql·adb
96245628 分钟前
补打一条卡,为什么要从前一天重新算:人工补录与实时重算业务复盘
java·mysql·kafka
应用市场1 小时前
用本机跑的开源音乐模型,给安卓小游戏做 20 秒无缝循环背景音乐
android·python·游戏开发·soundpool·音频处理
企业数字化笔记1 小时前
表单发布前怎么验收?版本引用、字段兼容和历史数据回归
android·数据挖掘·回归
生信分析笔记1 小时前
Nature 正刊 GPN-Star 基因组语言模型
android
渣渣盟1 小时前
Flink 状态管理深度剖析:从 KeyedState 到 RocksDB,状态如何存储、恢复与扩缩容
android·大数据·flink
余槐i1 小时前
PostgreSQL 加索引后查询反而更慢:优化器弃用索引的 3 种情形
spring boot·redis·mysql·postgresql·事务
avi91111 小时前
电影开源Jevdo - 源码介绍(vue版)没有android 和 没有wpf
android·wpf·框架·数据爬虫·meego·电影管理
OxYGC1 小时前
[工程] PHP2Shell 漏洞解析:两条 PHP 内核 RCE,为什么应用层的防护全部失效
android·开发语言·php
z06.1 小时前
MySQL存储引擎
数据库·mysql