首页 > 代码库 > centos6 mysql5.5 多实例
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
centos6 mysql5.5 多实例