之前介绍过相关的基本命令操作:MySQL数据库基础入门基本命令所有操作都是基于单实例的,mysql多实例在实际生产环境中也非常实用,因为必须要掌握。1、什么是多实例?多实例就是在一台服务器上开启多个不同的服务端口(默认3306),运行多个mysql服务进程。这些服务进程通过不同的socket监听不同的服务端口,提供各种服务。所有实例共享一套MYSQL安装程序,但各自使用不同的配置文件、启动程序、数据文件,逻辑上相对独立。多实例的主要作用是充分利用现有的服务器硬件资源,为不同的服务提供数据服务,但是如果某个实例的并发比较高,也会影响其他实例的性能。2、安装多实例环境和准备安装需要先安装mysql,安装过程只需要makeinstall(编译安装)即可。如果使用免费安装程序,只需解压软件包即可。今天的环境是通过免费安装包安装mysql的主程序(其他安装可以参考前面的安装过程进行测试)系统环境[root@centos6~]#cat/etc/redhat-releaseCentOSrelease6.5(Final)[root@centos6~]#uname-r2.6.32-431.el6.x86_64installermysql-5.5.52-linux2.6-x86_64.tar.gz首先下载软件到本地wgethttp://mirrors.sohu.com/mysql/MySQL-5.5/mysql-5.5.52-linux2.6-x86_64.tar.gz创建安装用户[root@centos6~]#groupaddmysql[root@centos6~]#useraddmysql-s/sbin/nologin-gmysql-M[root@centos6~]#tail-1/etc/passwdmysql:x:500:500::/home/mysql:/sbin/nologin创建多实例数据目录[root@centos6tools]#mkdir-p/data/{3306,3307}[root@centos6tools]#tree/data//data/+--3306+--33072目录,0个文件3.安装MYSQL多实例接下来安装mysql多实例运行解压软件[root@centos6tools]#llmysql-5.5.52-linux2.6-x86_64.tar.gz-rw-r--r--。1rootroot185855000Aug2621:38mysql-5.5.52-linux2.6-x86_64.tar.gz[root@centos6tools]#tarzxfmysql-5.5.52-linux2.6-x86_64.tar.gz复制配置文件[root@centos6mysql-5.5.52-linux2.6-x86_64]#cpsupport-files/my-small.cnf/data/3306/my.cnf[root@centos6mysql-5.5.52-linux2.6-x86_64]#cpsupport-files/mysql.server/data/3306/mysql[root@centos6mysql-5.5.52-linux2.6-x86_64]#cp支持-files/my-small.cnf/data/3307/my.cnf[root@centos6mysql-5.5.52-linux2.6-x86_64]#cpsupport-files/mysql.server/data/3307/mysql是一个规范安装路径,将免安装包复制到应用目录下[root@centos6tools]#mvmysql-5.5.52-linux2.6-x86_64/application/mysql[root@centos6tools]#ll/application/mysqltotal72drwxr-xr-x。2rootroot4096Dec917:15bin-rw-r--r--。1716131415179878月26日19:24复制drwxr-xr-x。3rootroot4096Dec917:15datadrwxr-xr-x。2rootroot4096Dec917:15docsdrwxr-xr-x。3rootroot4096Dec917:15include-rw-r--r--。17161314153018月26日19:24安装-二进制drwxr-xr-x。3rootroot4096Dec917:15libdrwxr-xr-x。4根根4096Dec917:15mandrwxr-xr-X。10rootroot4096Dec917:15mysql-test-rw-r--r--。171613141524968月26日19:24READMEdrwxr-xr-x。2rootroot4096Dec917:15scriptsdrwxr-xr-x。27rootroot4096Dec917:15sharedrwxr-xr-x。4rootroot4096Dec917:15sql-benchdrwxr-xr-x。2rootroot4096Dec917:15support-filesmodification因为配置文件和启动文件是多实例的,所以需要修改参数。修改后的配置文件如下:配置文件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启动程序文件mysql[root@backup3307]#catmysql#!/bin/shinitport=3307mysql_user="root"mysql_pwd="migongge"CmdPath="/application/mysql/bin"mysql_sock="/data/${port}/mysql.sock"#startupfunction_start_mysql(){iF[!-e"$mysql_sock"];然后printf"StartingMySQL...\n"/bin/sh${CmdPath}/mysqld_safe--defaults-file=/data/${port}/my.cnf2>&1>/dev/null&elseprintf"MySQL正在运行...\n"exitfi}#stopfunctionfunction_stop_mysql(){if[!-e"$mysql_sock"];thenprintf"MySQL已停止...\n"exitelseprintf"正在停止MySQL...\n"${CmdPath}/mysqladmin-u${mysql_user}-p${mysql_pwd}-S/data/${port}/mysql.sockshutdownfi}#restartfunctionfunction_restart_mysql(){printf"RestartingMySQL...\n"function_stop_mysqlsleep2function_start_mysql}case$1instart)function_start_mysql;;stop)function_stop_mysql;;restart)function_restart_mysql;;*)printf"Usage:/data/${port}/mysql{start|stop|restart}\n"esac其它的配置可参考配置文件进行修改即可多实例初始化操作[root@centos63306]#/application/mysql/scripts/mysql_install_db--basedir=/application/mysql--datadir=/data/3306/data--user=mysqlInstallingMySQL系统表...16120918:02:17[警告]'THREAD_CONCURRENCY'is已弃用并将在未来的版本中删除。16120918:02:17[注意]/application/mysql/bin/mysqld(mysqld5.5.52-log)startingasprocess3336...OKFillinghelptables...16120918:02:17[警告]'THREAD_CONCURRENCY'已弃用,将在未来的版本中删除。16120918:02:17[注意]/application/mysql/bin/mysqld(mysqld5.5.52-log)从进程3343开始...确定要在启动时启动mysqld,您必须将support-files/mysql.server复制到系统的正确位置请记住为MySQLroot用户设置密码!为此,启动服务器,然后发出以下命令:/application/mysql/bin/mysqladmin-urootpassword'new-password'/application/mysql/bin/mysqladmin-uroot-hcentos6password'new-password'或者你可以运行:/application/mysql/bin/mysql_secure_installation还可以让您选择删除默认创建的测试数据库和匿名用户。强烈推荐给生产服务器。请参阅手册以获取更多说明。您可以使用以下命令启动MySQL守护程序:cd/application/mysql;/application/mysql/bin/mysqld_safe&YoucantesttheMySQLdaemonwithmysql-test-run.plcd/application/mysql/mysql-test;perlmysql-test-run.pl有问题请到http://bugs.mysql.com/初始化成功后会在数据目录下生成一个数据目录data和一些文件[root@centos63306]#ll/data/3306/数据/总计1136drwx------。2mysqlroot4096Dec918:02mysql-rw-rw----。1mysqlmysql2769312月9日18:02mysql-bin。000001-rw-rw----。1mysqlmysql111454612月9日18:02mysql-bin。000002-rw-rw----。1mysqlmysql38Dec918:02mysql-bin.indexdrwx------。2mysqlmysql4096Dec918:02performance_schemadrwx------。2mysqlroot4096Dec918:02test另一个实例的初始化,请参考上述操作,操作过程不再一一介绍[root@centos63307]#ll/data/3307/data/总计1136drwx------。2mysqlroot4096Dec918:40mysql-rw-rw----。1mysqlmysql27693Dec918:40mysql-bin.000001-rw-rw----。1mysqlmysql111454612月9日18:40mysql-bin.000002-rw-rw----。1mysqlmysql38Dec918:40mysql-bin.indexdrwx------。2mysqlmysql4096Dec918:40performance_schemadrwx------。2mysqlroot4096Dec918:40test4,启动多实例登录启动服务[root@backup3307]#/data/3306/mysqlstartStartingMySQL...[root@backup3307]#lsof-i:3306COMMANDPIDUSERFDTYPEDEVICESIZE/OFFNODENAMEmysqld19986mysql10uIPv4909670t0TCP*:mysql(LISTEN)[root@backup3307]#/data/3307/mysqlstartStartingMySQL...[root@backup3307]#lsof-i:3307COMMANDPIDUSERFDTYPEDEVICESIZE/OFFNODENAMEmysqld21648mysql11uIPv4928990t0TCP*:opsession-prxy(LISTEN)检查端口[root@backup3307]#netstat-lntup|grepmysqltcp000.0.0.0:33070.0.0.0:*LISTEN21648/mysqldtcp000.0.0.0:33060.0.0.0:*LISTEN19986/mysqld登录多实例数据库[root@backup~]#mysql-S/data/3306/mysql.sock欢迎使用MySQL监视器。命令以;结尾或\g.您的MySQL连接ID是1Serverversion:5.5.51-logSourcedistributionCopyright(c)2000,2016,Oracleand/oritsaffiliates.版权所有。Oracle是OracleCorporation和/或其附属公司的注册商标。其他名称可能是其各自所有者的商标。键入“帮助;”或'\h'寻求帮助。输入'\c'清除当前输入语句。mysql>createdatabasedata3306;QueryOK,1rowaffected(0.00sec)mysql>showdatabases;+--------------------+|数据库|+--------------------+|信息模式||数据3306||数据库||性能模式||test|+--------------------+5rowsinset(0.00sec)mysql>quitBye[root@backup~]#mysql-S/data/3307/mysql.sock欢迎使用MySQL监视器。命令以;结尾或\g。您的MySQL连接ID是1Server版本:5.5.51源分发版权所有(c)2000、2016、Oracle和/或其附属公司。版权所有。Oracle是OracleCorporation和/或其附属公司的注册商标。其他名称可能是商标其各自所有者的rks。键入“帮助;”或'\h'寻求帮助。输入'\c'清除当前输入语句。mysql>showdatabases;+--------------------+|数据库|+--------------------+|信息模式||数据库||性能模式||test|+------------------+4rowsinset(0.05sec)成功登录,并在3306实例中创建了数据库,但查看了3307实例未创建的数据,表示两个实例是独立的注:如果需要再添加一个实例,基本配置步骤同上,只需要修改端口号和数据目录的路径即可相应配置文件和启动程序文件,最后可以添加多个实例数据库启动命令已添加,开机自动启动。更多关于Mysql的技术文章,请继续关注民工技术之路。如果需要关注更多其他技术方向的文章,也可以关注米公公个人微信公众号公众号:米公公技术之路微信关注米公公技术之路公众号对话框回复关键字:1024即可获取一份最新技术干货:包括系统运维、数据库、redis、MogoDB、电子书、Java基础课程、Java实战项目、架构师综合教程、架构师实战项目、大数据、Docker容器、ELKStack、机器学习、BAT面试精讲视频等。
