MySQL數(shù)據(jù)庫(kù)入門(mén)之多實(shí)例配置方法詳解
本文實(shí)例講述了MySQL數(shù)據(jù)庫(kù)入門(mén)之多實(shí)例配置方法。分享給大家供大家參考,具體如下:
前面介紹了相關(guān)的基礎(chǔ)命令操作:MySQL數(shù)據(jù)庫(kù)基礎(chǔ)篇之入門(mén)基礎(chǔ)命令
所有的操作都是基于單實(shí)例的,mysql多實(shí)例在實(shí)際生產(chǎn)環(huán)境也是非常實(shí)用的,因?yàn)楸仨氁莆铡?/p>1、什么是多實(shí)例
多實(shí)例就是一臺(tái)服務(wù)器上開(kāi)啟多個(gè)不同的服務(wù)端口(默認(rèn)3306),運(yùn)行多個(gè)mysql的服務(wù)進(jìn)程,這此服務(wù)進(jìn)程通過(guò)不同的socket監(jiān)聽(tīng)不同的服務(wù)端口來(lái)提供各在的服務(wù),所有實(shí)例之間共同使用一套MYSQL的安裝程序,但各自使用不同的配置文件、啟動(dòng)程序、數(shù)據(jù)文件,在邏輯上是相對(duì)獨(dú)立的。
多實(shí)例主要作用是:充分利用現(xiàn)有的服務(wù)器硬件資源,為不同的服務(wù)提供數(shù)據(jù)服務(wù),但是如果某個(gè)實(shí)例并發(fā)比較高的,同樣是會(huì)影響到其它實(shí)例的性能
2、安裝多實(shí)例環(huán)境準(zhǔn)備安裝前需要先安裝mysql,但是只需將安裝過(guò)程進(jìn)行到make install即可(編譯安裝),如果使用免安裝程序,只需解壓軟件包即可,今天的環(huán)境是通過(guò)免安裝包來(lái)安裝mysql主程序(其它的安裝可以參考前面的安裝過(guò)程自行測(cè)試)
系統(tǒng)環(huán)境
[root@centos6 ~]# cat /etc/redhat-release CentOS release 6.5 (Final)[root@centos6 ~]# uname -r2.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/passwdmysql:x:500:500::/home/mysql:/sbin/nologin
創(chuàng)建多實(shí)例的數(shù)據(jù)目錄
[root@centos6 tools]# mkdir -p /data/{3306,3307}[root@centos6 tools]# tree /data//data/+-- 3306+-- 33072 directories, 0 files3、安裝MYSQL多實(shí)例
接下來(lái)進(jìn)行安裝mysql的多實(shí)例操作
解壓軟件
[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/mysqltotal 72drwxr-xr-x. 2 root root 4096 Dec 9 17:15 bin-rw-r--r--. 1 7161 31415 17987 Aug 26 19:24 COPYINGdrwxr-xr-x. 3 root root 4096 Dec 9 17:15 datadrwxr-xr-x. 2 root root 4096 Dec 9 17:15 docsdrwxr-xr-x. 3 root root 4096 Dec 9 17:15 include-rw-r--r--. 1 7161 31415 301 Aug 26 19:24 INSTALL-BINARYdrwxr-xr-x. 3 root root 4096 Dec 9 17:15 libdrwxr-xr-x. 4 root root 4096 Dec 9 17:15 mandrwxr-xr-x. 10 root root 4096 Dec 9 17:15 mysql-test-rw-r--r--. 1 7161 31415 2496 Aug 26 19:24 READMEdrwxr-xr-x. 2 root root 4096 Dec 9 17:15 scriptsdrwxr-xr-x. 27 root root 4096 Dec 9 17:15 sharedrwxr-xr-x. 4 root root 4096 Dec 9 17:15 sql-benchdrwxr-xr-x. 2 root root 4096 Dec 9 17:15 support-files
修改配置文件與啟動(dòng)文件
因?yàn)槭嵌鄬?shí)例,其中參數(shù)需要修改,修改后的配置文件如下:配置文件my.cnf
[client]port = 3307socket = /data/3307/mysql.sock[mysql]no-auto-rehash[mysqld] user = mysqlport = 3307socket = /data/3307/mysql.sockbasedir = /application/mysqldatadir = /data/3307/data#log_long_format#log-error = /data/3307/error.log#log-slow-queries = /data/3307/slow.logpid-file = /data/3307/mysql.pidserver-id = 3 [mysqld_safe]log-error=/data/3307/mysql3307.errpid-file=/data/3307/mysqld.pid
啟動(dòng)程序文件mysql
[root@backup 3307]# cat mysql#!/bin/shinit port=3307mysql_user='root'mysql_pwd='migongge'CmdPath='/application/mysql/bin'mysql_sock='/data/${port}/mysql.sock'#startupfunction_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'exitfi}#stop functionfunction_stop_mysql() {if [ ! -e '$mysql_sock' ];thenprintf 'MySQL is stopped...n'exitelseprintf 'Stoping MySQL...n'${CmdPath}/mysqladmin -u ${mysql_user} -p${mysql_pwd} -S /data/${port}/mysql.sock shutdownfi}#restart functionfunction_restart_mysql() { printf 'Restarting MySQL...n' function_stop_mysql sleep 2 function_start_mysql}case $1 instart)function_start_mysql;;stop)function_stop_mysql;;restart)function_restart_mysql;;*)printf 'Usage: /data/${port}/mysql {start|stop|restart}n'esac
其它的配置可參考配置文件進(jìn)行修改即可
多實(shí)例初始化操作
[root@centos6 3306]# /application/mysql/scripts/mysql_install_db --basedir=/application/mysql --datadir=/data/3306/data --user=mysqlInstalling 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 ...OKFilling 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 ...OKTo start mysqld at boot time you have to copysupport-files/mysql.server to the right place for your systemPLEASE 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_installationwhich will also give you the option of removing the testdatabases and anonymous user created by default. This isstrongly 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.plcd /application/mysql/mysql-test ; perl mysql-test-run.plPlease report any problems at http://bugs.mysql.com/
初始化成功后,會(huì)在數(shù)據(jù)目錄下產(chǎn)生一個(gè)數(shù)據(jù)目錄data和一些文件
[root@centos6 3306]# ll /data/3306/data/total 1136drwx------. 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.indexdrwx------. 2 mysql mysql 4096 Dec 9 18:02 performance_schemadrwx------. 2 mysql root 4096 Dec 9 18:02 test
另一個(gè)實(shí)例的初始化請(qǐng)參考上述操作進(jìn)行,操作過(guò)程不再一一介紹
[root@centos6 3307]# ll /data/3307/data/total 1136drwx------. 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.indexdrwx------. 2 mysql mysql 4096 Dec 9 18:40 performance_schemadrwx------. 2 mysql root 4096 Dec 9 18:40 test4 、啟動(dòng)多實(shí)例并登錄
啟動(dòng)服務(wù)
[root@backup 3307]# /data/3306/mysql startStarting MySQL...[root@backup 3307]# lsof -i :3306COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAMEmysqld 19986 mysql 10u IPv4 90967 0t0 TCP *:mysql (LISTEN)[root@backup 3307]# /data/3307/mysqlstart Starting MySQL...[root@backup 3307]# lsof -i :3307COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAMEmysqld 21648 mysql 11u IPv4 92899 0t0 TCP *:opsession-prxy (LISTEN)
檢查端口
[root@backup 3307]# netstat -lntup|grep mysqltcp 0 0 0.0.0.0:3307 0.0.0.0:* LISTEN 21648/mysqldtcp 0 0 0.0.0.0:3306 0.0.0.0:* LISTEN 19986/mysqld
登陸多實(shí)例數(shù)據(jù)庫(kù)
[root@backup ~]# mysql -S /data/3306/mysql.sockWelcome to the MySQL monitor. Commands end with ; or g.Your MySQL connection id is 1Server version: 5.5.51-log Source distributionCopyright (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> quitBye[root@backup ~]# mysql -S /data/3307/mysql.sockWelcome to the MySQL monitor.Commands end with ; or g.Your MySQL connection id is 1Server version: 5.5.51 Source distributionCopyright (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實(shí)例中創(chuàng)建數(shù)據(jù)庫(kù),但是3307實(shí)例上查看并沒(méi)有創(chuàng)建過(guò)的數(shù)據(jù),說(shuō)明兩個(gè)實(shí)例是獨(dú)立的
注:如果再需要新增一個(gè)實(shí)例,基本的配置步驟同上述一樣,只需要相應(yīng)修改配置文件與啟動(dòng)程序文件中的端口號(hào)與數(shù)據(jù)目錄的路徑即可,最后可以將多實(shí)例數(shù)據(jù)庫(kù)啟動(dòng)命令加入開(kāi)機(jī)自啟動(dòng)。
更多關(guān)于MySQL相關(guān)內(nèi)容感興趣的讀者可查看本站專題:《MySQL查詢技巧大全》、《MySQL常用函數(shù)大匯總》、《MySQL日志操作技巧大全》、《MySQL事務(wù)操作技巧匯總》、《MySQL存儲(chǔ)過(guò)程技巧大全》及《MySQL數(shù)據(jù)庫(kù)鎖相關(guān)技巧匯總》
希望本文所述對(duì)大家MySQL數(shù)據(jù)庫(kù)計(jì)有所幫助。
相關(guān)文章:
1. Centos7 下mysql重新啟動(dòng)MariaDB篇2. MariaDB性能調(diào)優(yōu)工具mytop的使用詳解3. centos 7安裝mysql5.5和安裝 mariadb使用的命令4. Window7安裝MariaDB數(shù)據(jù)庫(kù)及系統(tǒng)初始化操作分析5. SQLite教程(二):C/C++接口簡(jiǎn)介6. MariaDB數(shù)據(jù)庫(kù)的外鍵約束實(shí)例詳解7. SQL案例學(xué)習(xí)之字符串的合并與拆分方法總結(jié)8. MariaDB的安裝與配置教程9. SQLite 性能優(yōu)化實(shí)例分享10. SQLite教程(十二):鎖和并發(fā)控制詳解
