0、首先要安裝好MySQL
yum install mariadb-server
1、創建好多實例需要使用的文件夾,此處以將要開通的端口號命名
mkdir -pv /mysqldb/{3306,3307,3308}/{etc,socket,pid,log,data}
2、為數據庫文件夾設置好權限
chown -R mysql.mysql /mysqldb/
3、在下列文件夾中生成數據庫文件
mysql_install_db –datadir=/mysqldb/3306/data –user=mysql
mysql_install_db –datadir=/mysqldb/3307/data –user=mysql
mysql_install_db –datadir=/mysqldb/3308/data –user=mysql
4、將配置文件范本復制到對應文件夾下
cp /etc/my.cnf /mysqldb/3306/etc/
cp /etc/my.cnf /mysqldb/3307/etc/
cp /etc/my.cnf /mysqldb/3308/etc/
5、并分別對其進行修改
vim /mysqldb/3306/etc/my.cnf
vim /mysqldb/3307/etc/my.cnf
vim /mysqldb/3308/etc/my.cnf
修改如下部分:
如果使用vim編輯器,可在命令模式下輸入:s%/3306/目標端口號,即可實現批量替換
port=3306 #←端口號需要根據各文件夾進行調整
datadir=/mysqldb/3306/data
socket=/mysqldb/3306/socket/mysql.sock
log-error=/mysqldb/3306/log/mariadb.log
pid-file=/mysqldb/3306/pid/mariadb.pid
#!includedir /etc/my.cnf.d? #這一行要注釋掉,不然會造成干擾
6、將預先寫好的服務腳本上傳到系統(本文是家目錄),然后分別拷貝到指定數據庫的文件夾下
rz #啟動腳本見附錄
cp mysqld /mysqldb/3306/
cp mysqld /mysqldb/3307/
cp mysqld /mysqldb/3308/
7、并分別賦予(root)以執行權限
chmod 700 /mysqldb/3308/mysqld
chmod 700 /mysqldb/3307/mysqld
chmod 700 /mysqldb/3306/mysqld
8、修改啟動腳本中對應的路徑及端口號,修改方法同理,vim下查找替換可大幅提高效率
vim /mysqldb/3306/mysqld
vim /mysqldb/3307/mysqld
vim /mysqldb/3308/mysqld
修改:
port=3306
cmd_path=“/usr/bin”
9、需要停止現有正在運行的實例,避免干擾
systemctl stop mariadb #停止現有正在運行的實例
10、嘗試啟動三個實例
/mysqldb/3308/mysqld start
/mysqldb/3307/mysqld start
/mysqldb/3306/mysqld start
11、查看對應端口是否打開,確認服務是否正常運行
ss -utln
ss -utln | grep 3306
ss -utln | grep 3307
ss -utln | grep 3308
12、連接想要連接的數據庫,開始使用吧
mysql -S /mysqldb/3308/socket/mysql.sock
————————————————————分割線————————————————————
13、附錄:啟動服務腳本(僅供參考):
#!/bin/bash
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
本文來自投稿,不代表Linux運維部落立場,如若轉載,請注明出處:http://www.www58058.com/100916