centos6 mysql5.5 多实例


mysql 多实例

这里选择多个配置文件,多个启动文件,多个数据文件这个方案
还有一种方案就是同一配置文件里做

 

采用/data 目录作为mysql多实例总的根目录,然后规划不同的mysql
实例端口号作为/data 下面的二级目录,不同的端口号就是不同实例目录,
以区别不同的实例,二级目录下包含mysql数据文件,配置文件和启动文件的目录

1.创建mysql多实例的目录:
mkdir -p /data/{3306,3307}/data
[root@localhost mysql]# tree /data
/data
├── 3306
│   ├── data
│   └── my.cnf
└── 3307
├── data
└── my.cnf
chkconfig mysqld off
rm -f /etc/init.d/mysqld

/bin/cp /soft/src/mysql-5.5.55/support-files/my-small.cnf /data/3306/my.cnf
/bin/cp /soft/src/mysql-5.5.55/support-files/my-small.cnf /data/3307/my.cnf


多实例启动文件的启动mysql服务实质:
mysqld_safe --defaults-file=/data/3306/my.cnf 2>&1 > /dev/null
mysqld_safe --defaults-file=/data/3307/my.cnf 2>&1 > /dev/null

多实例启动文件的停止mysql服务实质:(平滑停止数据库)
mysqladmin -u root -p123456 -S /data/3306/mysql.sock shutdown
mysqladmin -u root -p123456 -S /data/3307/mysql.sock shutdown


开发启动脚本:
vi /data/3306/db
cp /data/3306/db /data/3307/db


脚本如下:
#!/bin/bash


#init
port=3307
mysql_user="root"
mysql_pwd="123456"
CmdPath="/install/mysql/bin"
mysql_sock="/data/${port}/mysql.sock"

#startup function

function_start_mysql()
{
if [ ! -e "$mysql_sock" ];then
printf "Starting MySQL...\n";
/bin/sh ${CmdPath}/mysqld_safe --defaults-file=/data/${port}/my.cnf 2>&1 > /dev/null &
else
printf "MySQL is running...\n"
exit
fi
}


#stop function
function_stop_mysql()
{
if [ ! -e "$mysql_sock" ];then
printf "MySQL is stoped...\n"
exit
else
printf "Stoping MySQL...\n"
${CmdPath}/mysqladmin -u ${mysql_user} -p${mysql_pwd} -S /data/${port}/mysql.sock shutdown
fi
}


#restart function
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: /data/${port}/mysql {start|stop|restart}\n"
esac


授权:
chown -R mysql.mysql /data
find /data/ -type f -name "db"|xargs chmod 700


初始化:
cd /install/mysql/scripts/
./mysql_install_db --basedir=/install/mysql --datadir=/data/3306/data --user=mysql
./mysql_install_db --basedir=/install/mysql --datadir=/data/3307/data --user=mysql

mysql 多实例登录数据库 要加大S 指定socket
mysql -S /data/3306/mysql.sock
mysql -S /data/3307/mysql.sock


多实例设置密码
mysqladmin -u root -S /data/3306/mysql.sock password '123456'
mysqladmin -u root -S /data/3307/mysql.sock password '123456'

本地:
mysql -uroot -p123456 -S /data/3306/mysql.sock
mysql -uroot -p123456 -S /data/3307/mysql.sock

远程:
mysql -uremoteuser -p123456 -h host -p 3306
mysql -uremoteuser -p123456 -h host -p 3307

posted @ 2017-05-19 23:18  shijiu520  阅读(98)  评论(0编辑  收藏  举报