一臺centos7.5主機實現多實例mysql
阿新 • • 發佈:2018-09-30
mariadb mysl shutdown shu config 端口 symbol starting def 實驗:一臺centos7.5主機實現多實例mysql
規劃:
3306 3307 3308 端口,共3個實例
目錄:
/data/mysql{3306,3307,3308}
/data/mysql/330{6,7,8}/{etc,log,data,pid,bin,socket}
具體實現:
[root@c7-7 ~]# yum install mariadb-server
[root@c7-7 ~]# rpm -ql mariadb-server
/usr/libexec/mysqld //二進制程序
/usr/bin/mysql_install_db //生成初始化數據庫腳本
[root@c7-7 data]# cd /data/
[root@c7-7 data]# mkdir mysql/{3306,3307,3308}/{etc,data,socket,log,bin,pid} -pv、
[root@c7-7 ~]# ls /var/lib/mysql/ //默認數據庫文件路徑
[root@c7-7 data]# chown -R mysql.mysql mysql/
[root@c7-7 data]# /usr/bin/mysql_install_db --datadir=/data/mysql/3306/data --user=mysql //在(330{6,7,8})實例目錄下生成初始化數據庫文件。
[root@c7-7 ~]# cp /etc/my.cnf /data/mysql/3306/etc/
[root@c7-7 ~]# vi /data/mysql/3306/etc/my.cnf //把該配置文件分別復制到3307,3308實例目錄並修改成3307和3308
[mysqld]
port=3306
datadir=/data/mysql/3306/data
socket=/data/mysql/3306/socket/mysql.sock
symbolic-links=0
[mysqld_safe]
log-error=/data/mysql/3306/log/mariadb.log
pid-file=/data/mysql/3306/pid/mariadb.pid
[root@c7-7 /data/mysql/3306/bin]# rz mysqld //上傳服務腳本到330{6,7,8}/bin/目錄下並修改端口
主要修改下面兩項即可:
port=3306
mysql_basedir="/data/mysql"
[root@c7-7 3306]# bin/mysqld start //啟動成功
[root@c7-7 3307]# bin/mysqld start //啟動成功
[root@c7-7 3308]# bin/mysqld start //啟動成功
[root@c7-7 ~]# mysql -S /data/mysql/3308/socket/mysql.sock //客戶端連接到某一個服務端。
規劃:
3306 3307 3308 端口,共3個實例
目錄:
/data/mysql{3306,3307,3308}
/data/mysql/330{6,7,8}/{etc,log,data,pid,bin,socket}
具體實現:
[root@c7-7 ~]# yum install mariadb-server
[root@c7-7 ~]# rpm -ql mariadb-server
/usr/libexec/mysqld //二進制程序
/usr/bin/mysql_install_db //生成初始化數據庫腳本
[root@c7-7 data]# cd /data/
[root@c7-7 data]# mkdir mysql/{3306,3307,3308}/{etc,data,socket,log,bin,pid} -pv、
[root@c7-7 data]# chown -R mysql.mysql mysql/
[root@c7-7 data]# /usr/bin/mysql_install_db --datadir=/data/mysql/3306/data --user=mysql //在(330{6,7,8})實例目錄下生成初始化數據庫文件。
[root@c7-7 ~]# cp /etc/my.cnf /data/mysql/3306/etc/
[root@c7-7 ~]# vi /data/mysql/3306/etc/my.cnf //把該配置文件分別復制到3307,3308實例目錄並修改成3307和3308
port=3306
datadir=/data/mysql/3306/data
socket=/data/mysql/3306/socket/mysql.sock
symbolic-links=0
[mysqld_safe]
log-error=/data/mysql/3306/log/mariadb.log
pid-file=/data/mysql/3306/pid/mariadb.pid
[root@c7-7 /data/mysql/3306/bin]# rz mysqld //上傳服務腳本到330{6,7,8}/bin/目錄下並修改端口
主要修改下面兩項即可:
port=3306
mysql_basedir="/data/mysql"
[root@c7-7 3306]# bin/mysqld start //啟動成功
[root@c7-7 3308]# bin/mysqld start //啟動成功
[root@c7-7 ~]# mysql -S /data/mysql/3308/socket/mysql.sock //客戶端連接到某一個服務端。
myslqd腳本:
#!/bin/bash
#chkconfig: 345 20 80
# chkconfig --add mysqld3306 ......
port=3306
mysql_user="root"
mysql_pwd=""
cmd_path="/usr/bin"
mysql_basedir="/mysqldb"
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
一臺centos7.5主機實現多實例mysql