最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

MySQL系列之二 多實(shí)例配置

 更新時(shí)間:2021年07月02日 16:43:56   作者:生生不息.連綿不絕  
MySQL多實(shí)例就是在一臺服務(wù)器上同時(shí)開啟多個(gè)不同的服務(wù)端口,本文就介紹一下MySQL多實(shí)例配置,感興趣的可以了解一下

系列教程

MySQL系列之開篇 MySQL關(guān)系型數(shù)據(jù)庫基礎(chǔ)概念
MySQL系列之一 MariaDB-server安裝
MySQL系列之三 基礎(chǔ)篇
MySQL系列之四 SQL語法
MySQL系列之五 視圖、存儲(chǔ)函數(shù)、存儲(chǔ)過程、觸發(fā)器
MySQL系列之六 用戶與授權(quán)
MySQL系列之七 MySQL存儲(chǔ)引擎
MySQL系列之八 MySQL服務(wù)器變量
MySQL系列之九 mysql查詢緩存及索引
MySQL系列之十 MySQL事務(wù)隔離實(shí)現(xiàn)并發(fā)控制
MySQL系列之十一 日志記錄
MySQL系列之十二 備份與恢復(fù)
MySQL系列之十三 MySQL的復(fù)制
MySQL系列之十四 MySQL的高可用實(shí)現(xiàn)
MySQL系列之十五 MySQL常用配置和性能壓力測試

什么是MySQL多實(shí)例?

簡單地說,MySQL多實(shí)例就是在一臺服務(wù)器上同時(shí)開啟多個(gè)不同的服務(wù)端口(如:3306,3307),同時(shí)運(yùn)行多個(gè)MySQL服務(wù)進(jìn)程,這些服務(wù)進(jìn)程通過不同的socket監(jiān)聽不同的服務(wù)端口來提供服務(wù)。

這些MySQL多實(shí)例共用一套MySQL安裝程序,使用不同的my.cnf(也可以相同)配置文件、啟動(dòng)程序(也可以相同)和數(shù)據(jù)文件。在提供服務(wù)時(shí),多實(shí)例MySQL在邏輯上看來是各自獨(dú)立的,它們根據(jù)配置文件的對應(yīng)設(shè)定值,獲得服務(wù)器相應(yīng)數(shù)量的硬件資源。

打個(gè)比方吧,MySQL多實(shí)例就相當(dāng)于房子的多個(gè)臥室,每個(gè)實(shí)例可以看作一間臥室,整個(gè)服務(wù)器就是一套房子,服務(wù)器的硬件資源(cpu,men,disk)、軟件資源(CentOS操作系統(tǒng))可以看作房子的衛(wèi)生間、廚房、客廳,是房子的共用資源。若你是北漂的小伙伴,與朋友一起租房子,相信更好理解,大家蝸居在一起,休息在自己的臥室,出來活動(dòng)肯定是要共用上述公共資源。這樣就可以很好的理解MySQL多實(shí)例了。

其實(shí)很多網(wǎng)絡(luò)服務(wù)都是可以配置多實(shí)例的,例如nginx、Apache、haproxy、redis等都可以配置多實(shí)例。這在門戶網(wǎng)站使用都很廣泛。

在一臺物理機(jī)中需要多個(gè)測試環(huán)境,那么就需要用到了搭建數(shù)據(jù)庫的多個(gè)實(shí)例,多個(gè)實(shí)例的意思就是運(yùn)行多份程序,實(shí)例與實(shí)例之間沒有影響。要注意監(jiān)聽的端口需要不同。

環(huán)境:CentOS7.5,編譯安裝MariaDB-10.2.15版本,軟件安裝目錄:/app/mysql/

​ 1)創(chuàng)建運(yùn)行的目錄環(huán)境

[root@centos7 ~]# mkdir -p /mysqldb/{3306,3307,3308}/{etc,socket,pid,log,data,bin}
[root@centos7 ~]# chown -R mysql:mysql /mysqldb/

​ 2)初始化數(shù)據(jù)庫

[root@centos7 ~]# cd /app/mysql/
[root@centos7 mysql]# scripts/mysql_install_db --datadir=/mysqldb/3306/data/ --user=mysql --basedir=/app/mysql/ 
[root@centos7 mysql]# scripts/mysql_install_db --datadir=/mysqldb/3307/data/ --user=mysql --basedir=/app/mysql/
[root@centos7 mysql]# scripts/mysql_install_db --datadir=/mysqldb/3308/data/ --user=mysql --basedir=/app/mysql/

以上是編譯安裝的,安裝目錄為/app/mysql/,需要先進(jìn)入軟件的安裝目錄然后執(zhí)行初始化腳本,如果是yum安裝的包,則直接運(yùn)行mysql_install_db命令即可

​ 3)提供配置文件并按需要修改

[root@centos7 mysql]# cp support-files/my-huge.cnf /mysqldb/3306/etc/my.cnf
[root@centos7 mysql]# cp support-files/my-huge.cnf /mysqldb/3307/etc/my.cnf
[root@centos7 mysql]# cp support-files/my-huge.cnf /mysqldb/3308/etc/my.cnf
[root@centos7 mysqldb]# cd /mysqldb/
[root@centos7 mysqldb]# vim 3306/etc/my.cnf
[mysqld]
port        = 3306
datadir     = /mysqldb/3306/data
socket      = /mysqldb/3306/socket/mysql.sock
[root@centos7 mysqldb]# vim 3307/etc/my.cnf  #按以上配置示例更改
[root@centos7 mysqldb]# vim 3308/etc/my.cnf

​ 4)提供服務(wù)啟動(dòng)腳本

[root@centos7 ~]# cat mysqld  #腳本示例
#!/bin/bash

port=3306  #需要修改為當(dāng)前實(shí)例的端口號
mysql_user="root"
mysql_pwd=""
cmd_path="/app/mysql/bin"  #安裝目錄下的bin
mysql_basedir="/mysqldb"  #實(shí)例數(shù)據(jù)庫文件所在目錄
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
[root@centos7 ~]# cp mysqld /mysqldb/3306/bin/
[root@centos7 ~]# cp mysqld /mysqldb/3307/bin/
[root@centos7 ~]# cp mysqld /mysqldb/3308/bin/
[root@centos7 ~]# vim /mysqldb/3306/bin/mysqld
port=3306
[root@centos7 ~]# vim /mysqldb/3307/bin/mysqld
port=3307
[root@centos7 ~]# vim /mysqldb/3308/bin/mysqld
port=3308

​ 5)修改腳本文件權(quán)限,防止密碼被別人看到

[root@centos7 ~]# chmod 700 /mysqldb/3306/bin/mysqld 
[root@centos7 ~]# chmod 700 /mysqldb/3307/bin/mysqld  
[root@centos7 ~]# chmod 700 /mysqldb/3308/bin/mysqld 

​ 6)啟動(dòng)服務(wù)

[root@centos7 ~]# service mysqld stop  #保證自己原來的服務(wù)停止,釋放3306端口
[root@centos7 ~]# /mysqldb/3306/bin/mysqld start  #啟動(dòng)服務(wù)
[root@centos7 ~]# /mysqldb/3307/bin/mysqld start
[root@centos7 ~]# /mysqldb/3308/bin/mysqld start
[root@centos7 ~]# ss -tnl  #如果看到三個(gè)實(shí)例監(jiān)聽的端口都打開后說明服務(wù)啟動(dòng)正常
LISTEN 0 80 :::3306 :::*
LISTEN 0 80 :::3307 :::*
LISTEN 0 80 :::3308 :::*

​ 7)連接測試

[root@centos7 ~]# mysql -S /mysqldb/3306/socket/mysql.sock  #使用-S指定套接字文件
Server version: 10.2.15-MariaDB-log Source distribution
MariaDB [(none)]> show variables like '%port';  #查看端口是否是3306
+---------------------+-------+
| Variable_name       | Value |
+---------------------+-------+
| extra_port          | 0     |
| large_files_support | ON    |
| port                | 3306  |
| report_port         | 3306  |
+---------------------+-------+
4 rows in set (0.00 sec)

[root@centos7 ~]# mysql -S /mysqldb/3307/socket/mysql.sock  #再連接測試一下3307和3308
Server version: 10.2.15-MariaDB-log Source distribution
MariaDB [(none)]> show variables like '%port';
+---------------------+-------+
| Variable_name       | Value |
+---------------------+-------+
| extra_port          | 0     |
| large_files_support | ON    |
| port                | 3307  |
| report_port         | 3307  |
+---------------------+-------+
4 rows in set (0.00 sec)

[root@centos7 ~]# mysql -S /mysqldb/3308/socket/mysql.sock
Server version: 10.2.15-MariaDB-log Source distribution
MariaDB [(none)]> show variables like '%port';
+---------------------+-------+
| Variable_name       | Value |
+---------------------+-------+
| extra_port          | 0     |
| large_files_support | ON    |
| port                | 3308  |
| report_port         | 3308  |
+---------------------+-------+
4 rows in set (0.00 sec)

多實(shí)例搭建成功!

​ 8)使用這條命令來停止實(shí)例

[root@centos7 ~]# /mysqldb/3306/bin/mysqld stop

​ 9)最后一步:給root用戶加個(gè)密碼把~

[root@centos7 ~]# mysql -S /mysqldb/3307/socket/mysql.sock 
Server version: 10.2.15-MariaDB-log Source distribution

MariaDB [(none)]> update mysql.user set password=PASSWORD("your_password") where user='root';
Query OK, 4 rows affected (0.00 sec)
MariaDB [(none)]> flush privileges;
Query OK, 0 rows affected (0.00 sec)
MariaDB [(none)]> select user,host,password from mysql.user;
+------+-----------+-------------------------------------------+
| user | host      | password                                  |
+------+-----------+-------------------------------------------+
| root | localhost | *9E72259BA9214F692A85B240647C4D95B0F2E08B |
| root | centos7   | *9E72259BA9214F692A85B240647C4D95B0F2E08B |
| root | 127.0.0.1 | *9E72259BA9214F692A85B240647C4D95B0F2E08B |
| root | ::1       | *9E72259BA9214F692A85B240647C4D95B0F2E08B |
|      | localhost |                                           |
|      | centos7   |                                           |
+------+-----------+-------------------------------------------+
6 rows in set (0.00 sec)

[root@centos7 ~]# mysql -S /mysqldb/3307/socket/mysql.sock -uroot -p'your_password' #指定密碼,再次登錄OK~

最后將你的密碼加入bin/mysqld腳本文件中,防止服務(wù)無法啟動(dòng)

到此這篇關(guān)于MySQL系列之二 多實(shí)例配置的文章就介紹到這了,更多相關(guān)MySQL 多實(shí)例配置內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • CentOS 6.5安裝mysql5.7教程

    CentOS 6.5安裝mysql5.7教程

    這篇文章主要為大家詳細(xì)介紹了CentOS 6.5安裝mysql5.7教程,包括mysal舊版本的卸載、新版本的升級,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2017-04-04
  • 阿里云ESC 安裝 MYSQL8.0的教程

    阿里云ESC 安裝 MYSQL8.0的教程

    這篇文章主要介紹了阿里云ESC 安裝 MYSQL8.0的教程,本文給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2019-12-12
  • 在idea中如何操作MySQL數(shù)據(jù)庫

    在idea中如何操作MySQL數(shù)據(jù)庫

    這篇文章主要介紹了在idea中如何操作MySQL數(shù)據(jù)庫問題,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-06-06
  • 安裝的mysql中沒有my.ini文件的解決方法

    安裝的mysql中沒有my.ini文件的解決方法

    本文主要介紹了安裝的mysql中沒有my.ini文件的解決方法,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2023-03-03
  • mysql錯(cuò)誤代碼之1064的解決方案

    mysql錯(cuò)誤代碼之1064的解決方案

    這篇文章主要介紹了mysql錯(cuò)誤代碼之1064的解決方案,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2021-01-01
  • MySQL中JOIN算法的具體使用

    MySQL中JOIN算法的具體使用

    JOIN操作是SQL查詢中至關(guān)重要的部分,它能夠?qū)⒍鄠€(gè)表中的數(shù)據(jù)根據(jù)指定的條件組合起來,本文主要介紹了MySQL中JOIN算法的具體使用,感興趣的可以了解一下
    2024-08-08
  • Oracle開啟和關(guān)閉的四種模式

    Oracle開啟和關(guān)閉的四種模式

    這篇文章主要介紹了Oracle開啟和關(guān)閉的四種模式 ,本文給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2019-05-05
  • MySQL InnoDB表空間加密示例詳解

    MySQL InnoDB表空間加密示例詳解

    這篇文章主要給大家介紹了關(guān)于MySQL InnoDB表空間加密的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對大家學(xué)習(xí)或者使用MySQL具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-08-08
  • MySQL中查詢當(dāng)天數(shù)據(jù)中離時(shí)間點(diǎn)最近的數(shù)據(jù)(兩種方法)

    MySQL中查詢當(dāng)天數(shù)據(jù)中離時(shí)間點(diǎn)最近的數(shù)據(jù)(兩種方法)

    在 MySQL 中,你可以使用 ORDER BY 和 LIMIT 語句來查詢當(dāng)天數(shù)據(jù)中離指定時(shí)間最近的數(shù)據(jù),本文給大家介紹MySQL中查詢當(dāng)天數(shù)據(jù)中離時(shí)間點(diǎn)最近的數(shù)據(jù),感興趣的朋友一起看看吧
    2023-12-12
  • MySQL數(shù)據(jù)庫備份恢復(fù)實(shí)現(xiàn)代碼

    MySQL數(shù)據(jù)庫備份恢復(fù)實(shí)現(xiàn)代碼

    這篇文章主要介紹了MySQL數(shù)據(jù)庫備份恢復(fù)實(shí)現(xiàn)代碼,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-06-06

最新評論

灵武市| 六盘水市| 阆中市| 阜新| 大庆市| 奉新县| 邵阳市| 海安县| 沈阳市| 萨迦县| 沂源县| 乌鲁木齐市| 正宁县| 汉寿县| 西和县| 阜宁县| 长岛县| 白玉县| 台南县| 宜君县| 新乡县| 佛学| 阳谷县| 大港区| 龙江县| 铜陵市| 临城县| 彩票| 察隅县| 泾源县| 灵山县| 遵义县| 罗江县| 瑞金市| 关岭| 噶尔县| 翁源县| 漳平市| 措美县| 阳西县| 宁波市|