溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

如何進(jìn)行MySQL數(shù)據(jù)庫中的多實例配置

發(fā)布時間:2021-11-29 16:27:14 來源:億速云 閱讀:118 作者:柒染 欄目:數(shù)據(jù)庫

今天就跟大家聊聊有關(guān)如何進(jìn)行MySQL數(shù)據(jù)庫中的多實例配置,可能很多人都不太了解,為了讓大家更加了解,小編給大家總結(jié)了以下內(nèi)容,希望大家根據(jù)這篇文章可以有所收獲。

MySQL數(shù)據(jù)庫基礎(chǔ)篇之入門基礎(chǔ)命令

所有的操作都是基于單實例的,mysql多實例在實際生產(chǎn)環(huán)境也是非常實用的,因為必須要掌握。

1、什么是多實例

多實例就是一臺服務(wù)器上開啟多個不同的服務(wù)端口(默認(rèn)3306),運行多個mysql的服務(wù)進(jìn)程,這此服務(wù)進(jìn)程通過不同的socket監(jiān)聽不同的服務(wù)端口來提供各在的服務(wù),所有實例之間共同使用一套MYSQL的安裝程序,但各自使用不同的配置文件、啟動程序、數(shù)據(jù)文件,在邏輯上是相對獨立的。

多實例主要作用是:充分利用現(xiàn)有的服務(wù)器硬件資源,為不同的服務(wù)提供數(shù)據(jù)服務(wù),但是如果某個實例并發(fā)比較高的,同樣是會影響到其它實例的性能

2、安裝多實例環(huán)境準(zhǔn)備

安裝前需要先安裝mysql,但是只需將安裝過程進(jìn)行到make install即可(編譯安裝),如果使用免安裝程序,只需解壓軟件包即可,今天的環(huán)境是通過免安裝包來安裝mysql主程序(其它的安裝可以參考前面的安裝過程自行測試)

系統(tǒng)環(huán)境

[root@centos6 ~]# cat /etc/redhat-release   CentOS release 6.5 (Final)  [root@centos6 ~]# uname -r  2.6.32-431.el6.x86_64

安裝程序

mysql-5.5.52-linux2.6-x86_64.tar.gz

首先將軟件下載到本地

wget http://mirrors.sohu.com/mysql/MySQL-5.5/mysql-5.5.52-linux2.6-x86_64.tar.gz

創(chuàng)建安裝用戶

[root@centos6 ~]#groupadd mysql  [root@centos6 ~]#useradd mysql -s /sbin/nologin -g mysql -M  [root@centos6 ~]#tail -1 /etc/passwd  mysql:x:500:500::/home/mysql:/sbin/nologin

創(chuàng)建多實例的數(shù)據(jù)目錄

[root@centos6 tools]# mkdir -p /data/{3306,3307}  [root@centos6 tools]# tree /data/  /data/  +-- 3306  +-- 3307  2 directories, 0 files

3、安裝MYSQL多實例

接下來進(jìn)行安裝mysql的多實例操作

解壓軟件

[root@centos6 tools]# ll mysql-5.5.52-linux2.6-x86_64.tar.gz   -rw-r--r--. 1 root root 185855000 Aug 26 21:38 mysql-5.5.52-linux2.6-x86_64.tar.gz  [root@centos6 tools]# tar zxf mysql-5.5.52-linux2.6-x86_64.tar.gz

拷貝配置文件

[root@centos6 mysql-5.5.52-linux2.6-x86_64]# cp support-files/my-small.cnf /data/3306/my.cnf  [root@centos6 mysql-5.5.52-linux2.6-x86_64]# cp support-files/mysql.server /data/3306/mysql  [root@centos6 mysql-5.5.52-linux2.6-x86_64]# cp support-files/my-small.cnf /data/3307/my.cnf  [root@centos6 mysql-5.5.52-linux2.6-x86_64]# cp support-files/mysql.server /data/3307/mysql

為一規(guī)范安裝路徑,將免安裝包拷貝到應(yīng)用程序目錄下

[root@centos6 tools]# mv mysql-5.5.52-linux2.6-x86_64 /application/mysql  [root@centos6 tools]# ll /application/mysql  total 72  drwxr-xr-x.  2 root root   4096 Dec  9 17:15 bin  -rw-r--r--.  1 7161 31415 17987 Aug 26 19:24 COPYING  drwxr-xr-x.  3 root root   4096 Dec  9 17:15 data  drwxr-xr-x.  2 root root   4096 Dec  9 17:15 docs  drwxr-xr-x.  3 root root   4096 Dec  9 17:15 include  -rw-r--r--.  1 7161 31415   301 Aug 26 19:24 INSTALL-BINARY  drwxr-xr-x.  3 root root   4096 Dec  9 17:15 lib  drwxr-xr-x.  4 root root   4096 Dec  9 17:15 man  drwxr-xr-x. 10 root root   4096 Dec  9 17:15 mysql-test  -rw-r--r--.  1 7161 31415  2496 Aug 26 19:24 README  drwxr-xr-x.  2 root root   4096 Dec  9 17:15 scripts  drwxr-xr-x. 27 root root   4096 Dec  9 17:15 share  drwxr-xr-x.  4 root root   4096 Dec  9 17:15 sql-bench  drwxr-xr-x.  2 root root   4096 Dec  9 17:15 support-files

修改配置文件與啟動文件

因為是多實例,其中參數(shù)需要修改,修改后的配置文件如下:配置文件my.cnf

[client]  port = 3307  socket = /data/3307/mysql.sock  [mysql]  no-auto-rehash  [mysqld] user = mysql  port = 3307  socket = /data/3307/mysql.sock  basedir = /application/mysql  datadir = /data/3307/data  #log_long_format  #log-error = /data/3307/error.log  #log-slow-queries = /data/3307/slow.log  pid-file = /data/3307/mysql.pid  server-id = 3      [mysqld_safe]  log-error=/data/3307/mysql3307.err  pid-file=/data/3307/mysqld.pid

啟動程序文件mysql

[root@backup 3307]# cat mysql  #!/bin/sh  init port=3307  mysql_user="root"  mysql_pwd="migongge"  CmdPath="/application/mysql/bin"  mysql_sock="/data/${port}/mysql.sock"  #startup  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 stopped...\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

其它的配置可參考配置文件進(jìn)行修改即可

多實例初始化操作

[root@centos6 3306]# /application/mysql/scripts/mysql_install_db --basedir=/application/mysql --datadir=/data/3306/data --user=mysql  Installing MySQL system tables...  161209 18:02:17 [Warning] 'THREAD_CONCURRENCY' is deprecated and will be removed in a future release.  161209 18:02:17 [Note] /application/mysql/bin/mysqld (mysqld 5.5.52-log) starting as process 3336 ...  OK  Filling help tables...  161209 18:02:17 [Warning] 'THREAD_CONCURRENCY' is deprecated and will be removed in a future release.  161209 18:02:17 [Note] /application/mysql/bin/mysqld (mysqld 5.5.52-log) starting as process 3343 ...  OK  To start mysqld at boot time you have to copy  support-files/mysql.server to the right place for your system  PLEASE REMEMBER TO SET A PASSWORD FOR THE MySQL root USER !  To do so, start the server, then issue the following commands:  /application/mysql/bin/mysqladmin -u root password 'new-password'  /application/mysql/bin/mysqladmin -u root -h centos6 password 'new-password'  Alternatively you can run:  /application/mysql/bin/mysql_secure_installation  which will also give you the option of removing the test  databases and anonymous user created by default.  This is  strongly recommended for production servers.  See the manual for more instructions.  You can start the MySQL daemon with:  cd /application/mysql ; /application/mysql/bin/mysqld_safe &  You can test the MySQL daemon with mysql-test-run.pl  cd /application/mysql/mysql-test ; perl mysql-test-run.pl  Please report any problems at http://bugs.mysql.com/

初始化成功后,會在數(shù)據(jù)目錄下產(chǎn)生一個數(shù)據(jù)目錄data和一些文件

[root@centos6 3306]# ll /data/3306/data/  total 1136  drwx------. 2 mysql root     4096 Dec  9 18:02 mysql  -rw-rw----. 1 mysql mysql   27693 Dec  9 18:02 mysql-bin.000001  -rw-rw----. 1 mysql mysql 1114546 Dec  9 18:02 mysql-bin.000002  -rw-rw----. 1 mysql mysql      38 Dec  9 18:02 mysql-bin.index  drwx------. 2 mysql mysql    4096 Dec  9 18:02 performance_schema  drwx------. 2 mysql root     4096 Dec  9 18:02 test

另一個實例的初始化請參考上述操作進(jìn)行,操作過程不再一一介紹

[root@centos6 3307]# ll /data/3307/data/  total 1136  drwx------. 2 mysql root     4096 Dec  9 18:40 mysql  -rw-rw----. 1 mysql mysql   27693 Dec  9 18:40 mysql-bin.000001  -rw-rw----. 1 mysql mysql 1114546 Dec  9 18:40 mysql-bin.000002  -rw-rw----. 1 mysql mysql      38 Dec  9 18:40 mysql-bin.index  drwx------. 2 mysql mysql    4096 Dec  9 18:40 performance_schema  drwx------. 2 mysql root     4096 Dec  9 18:40 test

4 、啟動多實例并登錄

啟動服務(wù)

[root@backup 3307]# /data/3306/mysql start  Starting MySQL...  [root@backup 3307]# lsof -i :3306  COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME  mysqld 19986 mysql 10u IPv4 90967 0t0 TCP *:mysql (LISTEN)  [root@backup 3307]# /data/3307/mysql  start Starting MySQL...  [root@backup 3307]# lsof -i :3307  COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME  mysqld 21648 mysql 11u IPv4 92899 0t0 TCP *:opsession-prxy (LISTEN)

檢查端口

[root@backup 3307]# netstat -lntup|grep mysql  tcp 0 0 0.0.0.0:3307 0.0.0.0:* LISTEN 21648/mysqld tcp 0 0 0.0.0.0:3306 0.0.0.0:* LISTEN 19986/mysqld

登陸多實例數(shù)據(jù)庫

[root@backup ~]# mysql -S /data/3306/mysql.sock  Welcome to the MySQL monitor. Commands end with ; or \g.  Your MySQL connection id is 1  Server version: 5.5.51-log Source distribution  Copyright (c) 2000, 2016, Oracle and/or its affiliates. All rights reserved. Oracle is a registered trademark of Oracle Corporation and/or its affiliates. Other names may be trademarks of their respective owners. Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.  mysql> create database data3306;  Query OK, 1 row affected (0.00 sec)  mysql> show databases;  +--------------------+  | Database |  +--------------------+  | information_schema |  | data3306 |  | mysql |  | performance_schema |  | test |  +--------------------+  5 rows in set (0.00 sec)  mysql> quit  Bye  [root@backup ~]# mysql -S /data/3307/mysql.sock  Welcome to the MySQL monitor.  Commands end with ; or \g.  Your MySQL connection id is 1  Server version: 5.5.51 Source distribution  Copyright (c) 2000, 2016, Oracle and/or its affiliates. All rights reserved. Oracle is a registered trademark of Oracle Corporation and/or its affiliates. Other names may be trademarks of their respective owners. Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.  mysql> show databases;  +--------------------+  | Database |  +--------------------+  | information_schema |  | mysql |  | performance_schema |  | test |  +--------------------+  4 rows in set (0.05 sec)

成功登陸,并在3306實例中創(chuàng)建數(shù)據(jù)庫,但是3307實例上查看并沒有創(chuàng)建過的數(shù)據(jù),說明兩個實例是獨立的

注:如果再需要新增一個實例,基本的配置步驟同上述一樣,只需要相應(yīng)修改配置文件與啟動程序文件中的端口號與數(shù)據(jù)目錄的路徑即可,最后可以將多實例數(shù)據(jù)庫啟動命令加入開機(jī)自啟動。

看完上述內(nèi)容,你們對如何進(jìn)行MySQL數(shù)據(jù)庫中的多實例配置有進(jìn)一步的了解嗎?如果還想了解更多知識或者相關(guān)內(nèi)容,請關(guān)注億速云行業(yè)資訊頻道,感謝大家的支持。

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI