YUM安裝的MySQL(MariaDB)實現多實例運行

生產環境中,可能需要多個數據庫同時在線。但一臺服務器只運行一個數據庫實例勢必會引起資源的浪費,因此,本文介紹如何將yum安裝的MySQL多開,實現多實例運行。(二進制與編譯安裝步驟與此類似)

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

(2)
無名無名
上一篇 2018-06-12 15:59
下一篇 2018-06-12 19:32

相關推薦

  • 網絡屬性配置2

    網絡屬性配置2 一.ip命令 [root@centos7 ~]# rpm -qf /usr/sbin/ip 或[root@centos7 ~]# rpm -qf `which ip` iproute-3.10.0-87.el7.x86_64 (查看某個文件是由哪個程序包安裝生成) ip – show / manipulate routing, d…

    Linux筆記 2018-05-03
  • mysq數據庫五

    主從級聯復制;主主服務器的搭建;半同步和過濾;主從復制加密;mah高可用性;5實現galeracluster

    2018-06-15
  • 文本三劍客之一 “sed” 命令的一些用法。

    分為基本用法跟高級用法。

    Linux筆記 2018-04-22
  • linux yum 等工具詳解

    linux yum 等工具詳解

    2018-04-09
  • mysql sql語言 增刪改查

    數據庫 數據 增create insert 刪drop delete 改alter update 查 select 創建數據庫db1 查看數據庫目錄db1 刪除數據庫 查看字符集列表 查看表 創建表 查看表的定義 查看表的屬性信息 創建表 查看表的定義 查看表的具體信息 查看完整表的定義 查看user表的定義 利用別的表的信息創建表 創建一張表像另一張 表 …

    Linux筆記 2018-06-11
  • LINUX磁盤管理筆記

    磁盤組成:扇區 sector????????? 磁頭? head 柱面 cylinder就是磁道相同序列的和 磁道 ?track 硬盤使用步驟: a.分區 b.創建文件系統;格式化 c.掛載;分配目錄名   a.分區: 意義: a、優化i/o性能 ;b、提高修復速度 ;c、隔離系統和程序 d、安裝多個OS ?e、使用不同的文件格式 按柱面分區有兩種…

    Linux筆記 2018-04-29
欧美性久久久久