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

相关推荐
jason.zeng@15022075 分钟前
canal做mysql的异步传输工具
数据库·mysql·linq
Shadow(⊙o⊙)33 分钟前
MySQL C/C++链接MySQL使用
数据库·sql·mysql
FYKJ_201037 分钟前
springboot手工蜀绣在线销售系统60947-计算机课程设计、毕业设计
java·spring boot·后端·python·mysql·spark·课程设计
Mortalbreeze39 分钟前
MySQL 基础篇(五):数据操作基础 —— CRUD
linux·服务器·数据库·mysql
Shadow(⊙o⊙)40 分钟前
mysql为创建普通用户并创建库赋权
数据库·sql·mysql
Q26433650231 小时前
【有源码】基于springboot的知识产权管理系统-知识产权咨询问答管理系统-知识产权价值评估管理系统
java·spring boot·mysql·spring·毕业设计·javaweb·课程设计
java1234_小锋12 小时前
【技术专题】Mysql8 数据库 - Mysql8 数据类型简介
数据库·mysql
JosieBook12 小时前
【数据库】MySQL 实战精通系列 · 第10篇:分库分表与分布式事务实战
数据库·分布式·mysql
做运维的阿瑞16 小时前
多表查询基础:INNER JOIN、LEFT JOIN、RIGHT JOIN
数据库·sql·mysql·算法
夜雪一千18 小时前
MySQL 中什么是条件注释
数据库·mysql