centos6 mysql5.5 多實例
mysql 多實例
這裏選擇多個配置文件,多個啟動文件,多個數據文件這個方案
還有一種方案就是同一配置文件裏做
采用/data 目錄作為mysql多實例總的根目錄,然後規劃不同的mysql
實例端口號作為/data 下面的二級目錄,不同的端口號就是不同實例目錄,
以區別不同的實例,二級目錄下包含mysql數據文件,配置文件和啟動文件的目錄
1.創建mysql多實例的目錄:
mkdir -p /data/{3306,3307}/data
[[email protected] 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 多實例