1. 程式人生 > >centos6 mysql5.5 多實例

centos6 mysql5.5 多實例

lee local user pat 規劃 不同的 chm 創建 dir


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 多實例