Mysql利用mysql_multi配置一台主机多个实例
mysql单实例多库与多实例单库

mysql单实例多库与多实例单库⼀、单实例多库:⼀个mysql实例,创建多个数据⽬录。
规划:实例路径:/usr/local/mysql数据⽬录路径:(1)/usr/local/mysql/data(2)/usr/local/mysql/data2步骤:安装mysql。
配置f⽂件。
初始化各个数据库。
⽤mysqld_multi启动。
1、安装mysql。
平常安装。
2、f⽂件:修改数据⽬录,端⼝号,⽇志路径等。
添加模块:[mysqld_multi]mysqld = /usr/local/mysql/bin/mysqld_safemysqladmin =/usr/local/mysql/bin/mysqladminlog =/usr/local/mysql/mysqld_multi.log如分别放在:[mysqld1]server-id = 1port = 13306datadir = /usr/local/mysql/datasocket = /usr/local/mysql/mysql.sockpid-file=/usr/local/mysql/data/mysql.pidlog-error=/usr/local/mysql/data/mysqld.loglog-bin=mysql-bin[mysqld2]server-id = 2port = 13307datadir = /usr/local/mysql/data1socket = /usr/local/mysql/mysql1.sockpid-file=/usr/local/mysql/data/mysql1.pidlog-error=/usr/local/mysql/data1/mysqld.loglog-bin=mysql1-bin两个模块下。
3、初始化数据库(两个数据库⽬录):./mysqld --initialize --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data./mysqld --initialize --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data14、启动:./mysqld_multi start 1-2如果需要关闭数据库,使⽤:mysqladmin -uroot -p123456 -P 13307 -S /usr/local/mysql/mysql1.sock shutdown 关闭单个数据库。
MySQL启多个实例

很多朋友都想在一台服务器上运行多个MySQL Instance,究竟怎么做呢?首先要明晰几个原理,简称为mysqld读取f的顺序:第一搜,首先读取/etc/f,多实例这个配置文件不会存在。
:-(第二搜,$datadir/f,在data目录下寻找此配置文件。
第三搜,defaultfile=/path/f 通常写在命令行上,mysqld_safe defaultfile=/tmp/f &等执行。
第四搜,~/f 当前用户下的配置文件。
mysqld多进程运行的必要条件,就是pid文件,datadir,socket,port是独立分开的。
| Variable_name | Value || datadir | /home/mysql/ || Variable_name | Value || socket | /home/mysql/mysql.sock || Variable_name | Value || pid_file | /home/mysql/mysql.pid || Variable_name | Value || port | 3306 |单一版本实现多实例#pwd/usr/local/#touch my_f#cat my_f[mysqld_multi]mysqld = /usr/bin/mysqld_safemysqladmin = /usr/bin/mysqladminuser = root[mysqld1]socket = /tmp/mysql_3301.sockport = 3301pid-file = /usr/local/mysql_3301/data/mysql_3301.piddatadir = /usr/local/mysql_3301/data/log = /usr/local/mysql_3301/data/mysql_3301.loguser = mysql[mysqld2]socket = /tmp/mysql_3302.sockport = 3302pid-file = /usr/local/mysql_3302/data/mysql_3302.piddatadir = /usr/local/mysql_3302/data/log = /usr/local/mysql_3302/data/mysql_3302.loguser = mysql启动mysqld 的两个实例/usr/bin/mysqld_multi –config-file=./my_f start 1,2Starting mysqld daemon with databases from /usr/local/mysql_3301/data/Starting mysqld daemon with databases from /usr/local/mysql_3302/data/查看3301,3302端口是否被监听# netstat -lt |grep 33tcp 0 0 *:3301 *:* LISTENtcp 0 0 *:3302 *:* LISTEN测试mysql是否可以连通#pwd/usr/local/通过/tmp/mysql_3301.sock连接3001端口的mysqld# bin/mysql -u root -S /tmp/mysql_3301.sock -e “SELECT @@VERSION;”停止3001端口的mysqld# /usr/bin/mysqld_multi –config-file=./my_f stop 1STOPPING server from pid file /usr/local/mysql_3301/data/mysql_3301.pid091010 11:56:04 mysqld ended再次连接,系统会提示错误# bin/mysql -u root -S /tmp/mysql_3301.sock -e “SELECT @@VERSION;”ERROR 2002 (HY000):Can‟t connect to local MySQL server through socket …/tmp/mysql_3301.sock‟ (2)相同的步骤测试3002端口的mysqld,输出与上面相同。
MySQL中的多实例和容灾设计

MySQL中的多实例和容灾设计MySQL是一款常用的开源关系型数据库管理系统,被广泛应用于各种规模的企业和互联网应用中。
在大量的数据操作和业务处理中,MySQL的高可用性和容灾设计尤为重要。
本文将探讨MySQL中的多实例和容灾设计,以及它们在保证数据库的稳定性和可用性方面的作用和应用。
一、多实例的概念与作用多实例是指在一台服务器上运行多个独立的MySQL实例。
每个实例拥有独立的进程、内存和数据文件,并且可以有不同的配置参数和访问权限。
多实例的主要作用是在一台服务器上同时运行多个MySQL数据库,提高服务器资源利用率,增强系统的性能和扩展性。
同时,多实例还可以实现数据的隔离和资源的分离,提高系统的安全性和稳定性。
1. 多实例的资源利用率:通过合理配置服务器资源,可以在一台物理服务器上运行多个MySQL实例,充分利用硬件资源,提高服务器的整体性能。
多实例还可以根据不同的业务需求,定制每个实例的配置参数和缓冲区大小,提升数据库的效率和响应速度。
2. 数据隔离和安全性:在一些特定的场景下,不同的业务需求可能需要独立的数据库环境。
例如,在一个大型电商平台中,可以使用多实例技术将商品、订单和用户等数据分离到不同的实例中,降低数据冲突和故障风险,提高系统的安全性和稳定性。
3. 灵活的数据库管理:在多实例环境下,可以方便地进行数据库的管理和维护。
每个实例可以独立进行备份、恢复和性能优化等操作,不会对其他实例产生影响。
同时,多实例还可以实现不同版本或不同配置的数据库共存,方便进行测试和升级。
二、多实例的部署和配置要实现多实例的部署和配置,需要注意以下几个方面:1. 资源分配和规划:根据业务需求和服务器硬件条件,合理分配和规划每个实例的资源。
包括CPU、内存、磁盘空间和网络带宽等。
在多实例的环境下,不同实例之间共享服务器资源,需要根据实际情况进行权衡和调整,避免资源的过分占用和竞争。
2. 配置文件的修改与管理:每个MySQL实例都需要一个独立的配置文件,包括端口号、数据目录、日志文件、缓冲区大小等。
MySQL-单机中的单实例和多实例

MySQL-单机中的单实例和多实例⼀、aboutcentos7.3 + mysql5.7.20MySQL多实例的本质在⼀台机器上开启多个不同的MySQL实例,也就是各实例监听不同的端⼝,提供不同的服务。
多个实例公⽤⼀套MySQL安装程序,启动程序和配置⽂件可以是⼀个也可以是多个(推荐多个);各⾃的数据⽂件隔离;逻辑上各实例彼此隔离。
为什么要使⽤多实例?优缺点?物理机性能强⼤,单个实例⽆法充分利⽤硬件资源资源隔离,减少相互影响分担连接数,MySQL随着连接数的上升,性能会下降更充分的利⽤资源,不同业务错⾼峰混跑有优点,也有缺点,⽐如多个实例会存在资源相互抢占的问题,当某个实例的并发较⾼或者存在慢查询时,它会消耗更多的硬件资源,这就可能影响到别的实例的性能多实例的应⽤场景资⾦⽐较紧张的公司并发访问不⼤的业务MySQL多实例常见配置⽅案(推荐)通过多个配置⽂件及多个启动程序来实现多实例。
单⼀配置⽂件⽅案,即⼀个配置⽂件中写多个实例的配置。
⼆、必要的准备⽬录规划1 /opt/software/mysql # MySQL的安装⽬录2 /data/mysql/ # 所有的MySQL实例的数据⽬录、备份⽬录、⽇志⽬录,都在该⽬录下,各个实例以端⼝号命名3 /etc/my.conf # MySQL 3306实例的默认配置⽂件依赖下载1 # 如果你的系统曾经安装过mariadb,请先卸载2yum remove -y mariadb*3yum install -y epel-release4yum update -y5yum install -y cmake gcc-c++ ncurses-devel perl-Data-Dumper boost-doc boost-devel libaio-devel6yum install -y net-tools tree bash-completion lrzsz三、单实例配置3.1、下载安装mysql1 [root@cs ~]# mkdir -p /opt/software && cd /opt/software2 [root@cs software]# pwd3 /opt/software4 [root@cs software]# wget https:///archives/get/p/23/file/mysql-5.7.20-linux-glibc2.12-x86_64.tar.gz5 [root@cs software]# tar -xvf mysql-5.7.20-linux-glibc2.12-x86_64.tar.gz6 [root@cs software]# mv mysql-5.7.20-linux-glibc2.12-x86_64 mysql7 [root@cs software]# rm -rf mysql-5.7.20-linux-glibc2.12-x86_64.tar.gz && ls8 mysql3.2 添加环境变量1 [root@cs software]# vim /etc/profile23 export PATH=/opt/software/mysql/bin:$PATH45 [root@cs software]# source /etc/profile3.3 创建相关⽬录和MySQL⽤户MySQL服务运⾏在⾮root⽤户环境,所以,我们先创建⼀个mysql⽤户,然后在创建相关的数据⽬录:创建数据⽬录,并且授权更改⽤户属组,MySQL的安装⽬录授权1 [root@cs software]# useradd mysql2 [root@cs software]# mkdir -p /data/mysql/330{6,7,8,9}/{data,logs,backup}3 [root@cs software]# tree /data/mysql/330*4 /data/mysql/33065├── backup6├── data7└── logs8 /data/mysql/33079├── backup10├── data11└── logs12 /data/mysql/330813├── backup14├── data15└── logs16 /data/mysql/330917├── backup18├── data19└── logs202112 directories, 0 files22 [root@cs software]# chown -R mysql:mysql /opt/software/mysql/*23[root@cs software]# chown -R mysql:mysql /data/mysql/*3.4 初始化数据库进⾏初始化,初始化完成后,会默认创建⼀个本地的root⽤户,且⽆密码# 保证存放数据的⽬录是空的,避免不必要的问题[root@cs software]# rm -rf /data/mysql/3306/data/*[root@cs software]# mysqld --initialize-insecure --user=mysql --basedir=/opt/software/mysql --datadir=/data/mysql/3306/data2021-05-09T09:41:30.343576Z 0 [Warning] TIMESTAMP with implicit DEFAULT value is deprecated. Please use --explicit_defaults_for_timestamp server option (see documentation for more details).2021-05-09T09:41:30.557948Z 0 [Warning] InnoDB: New log files created, LSN=457902021-05-09T09:41:30.587516Z 0 [Warning] InnoDB: Creating foreign key constraint system tables.2021-05-09T09:41:30.655073Z 0 [Warning] No existing UUID has been found, so we assume that this is the first time that this server has been started. Generating a new UUID: bbcbb587-b0aa-11eb-a2ce-000c295ead38. 2021-05-09T09:41:30.656498Z 0 [Warning] Gtid table is not ready to be used. Table 'mysql.gtid_executed' cannot be opened.2021-05-09T09:41:30.656990Z 1 [Warning] root@localhost is created with an empty password ! Please consider switching off the --initialize-insecure option.⼀堆"Warning",不要管它。
MySQL多实例部署和管理的最佳实践

MySQL多实例部署和管理的最佳实践随着互联网的快速发展,数据库服务器的压力也越来越大。
为了应对高并发和大数据量的需求,很多企业开始采用多实例的方式来部署和管理MySQL数据库。
本文将介绍MySQL多实例部署和管理的最佳实践,帮助读者更好地应对数据库服务器的挑战。
一、为什么需要多实例在传统的单实例部署方式中,一台服务器上只能运行一个MySQL实例,这就导致了资源利用率不高的问题。
当系统负载过高时,单实例的容量可能无法满足需求,从而导致性能下降甚至宕机。
而多实例部署方式可以有效地利用服务器资源,提高系统的可用性和扩展性。
此外,多实例部署还可以更好地隔离不同的业务应用。
在单实例部署中,不同的应用可能使用同一个数据库,当其中一个应用出现问题时,可能会影响其他应用的正常运行。
而多实例部署可以将每个实例分配给不同的应用,从而提高了系统的稳定性。
二、多实例部署的基本原理多实例部署的基本原理是在同一个服务器上运行多个相互独立的MySQL实例。
每个实例有独立的数据目录、配置文件和端口号。
首先,需要在服务器上安装MySQL数据库软件。
然后,通过复制MySQL的安装目录,创建多个实例的目录,并配置每个实例的配置文件。
在配置文件中,需要指定每个实例的数据目录、端口号等信息。
此外,还需要设置每个实例的内存和连接数等参数,以优化系统性能。
最后,通过启动和停止各个实例的命令,可以管理多个MySQL实例。
三、多实例部署的最佳实践1. 硬件规划在进行多实例部署之前,首先要进行合理的硬件规划。
根据实际需求和负载情况,确定服务器的配置。
包括CPU、内存、磁盘空间等。
此外,还要考虑网络带宽和IO性能等因素。
确保服务器的硬件配置足够满足多实例部署的需求。
2. 数据库优化在进行多实例部署之前,需要对数据库进行优化。
包括索引优化、查询优化、配置优化等方面。
通过合理的索引设计和查询调优,可以提高系统的响应速度和查询效率。
同时,通过配置文件的调整,可以优化数据库的性能和资源利用率。
mysql多实例配置

read_rnd_buffer_size= 8M
myisam_sort_buffer_size= 64M
thread_cache_size= 8
query_cache_size= 32M
thread_concurrency= 8
log-bin=mysql-bin
[mysqld_multi]
mysqld= /usr/local/mysql/bin/mysqld_safe
mysqladmin= /usr/local/mysql/bin/mysqladmin
[mysqld1]
port = 3307
socket = /tmp/mysql1.sock
pid-file = /data/mysql/data1/mysql1.pid
then
mysqld_multi="$bindir/mysqld_multi";
else
echo "Can't execute $bindir/mysqld_multifrom dir $basedir";
exit;
fi
case "$1" in
'start' )
"$mysqld_multi" $opt start $sc
mysql多实例配置
1.初始化多实例数据库
Servicemysqldstop
/usr/local/mysql/bin/mysql_install_db--datadir=/data/mysql/data1
/usr/local/mysql/bin/mysql_install_db--datadir=/data/mysql/data2
MySQL多实例部署与集群配置

MySQL多实例部署与集群配置概述:MySQL是一款常用的开源关系型数据库管理系统,具有简单易用、高性能和可扩展性等优势。
在实际应用中,为了应对大量的访问和数据需求,常常需要进行MySQL多实例部署和集群配置。
本文将详细介绍MySQL多实例部署和集群配置的方法和步骤,帮助读者更好地理解和使用MySQL。
一、MySQL多实例部署1.1 确定需求和目标在进行MySQL多实例部署之前,首先需要明确自己的需求和目标。
是为了提高系统性能、负载均衡还是为了分布式部署?根据不同的需求和目标,选择合适的部署方式和配置参数。
1.2 安装MySQL软件在进行多实例部署之前,需要先安装MySQL软件。
可以从官方网站下载最新的MySQL安装包,并按照官方文档进行安装。
安装完成后,确保MySQL软件能够正常运行。
1.3 创建多个MySQL实例在安装完成后,可以通过配置文件的方式创建多个MySQL实例。
每个实例都有自己独立的配置文件和数据目录。
通过修改配置文件的参数,可以控制每个实例的运行方式和特性。
1.4 配置多实例参数对于每个实例,需要根据实际需求进行参数配置。
例如,可以配置不同的端口号、数据目录和日志文件,以及分配不同的系统资源。
通过合理地配置参数,可以使每个实例都能够充分利用系统资源,提高整个系统的性能和稳定性。
1.5 启动和管理多实例在配置完成后,可以使用不同的命令来启动和管理多个MySQL实例。
可以通过命令行或者脚本的方式来启动每个实例,并监控其运行状态。
同时,还可以对实例进行备份、恢复和故障处理等操作,确保系统的可用性和数据的安全性。
二、MySQL集群配置2.1 确定集群拓扑结构在进行MySQL集群配置之前,需要首先确定集群的拓扑结构。
常见的集群拓扑结构有主从复制、主主复制和多主复制等。
不同的拓扑结构对于系统的性能和可用性都有不同的影响,需要根据实际需求进行选择。
2.2 配置主从复制主从复制是最常见的集群配置方式之一。
mysql使用mysqld_multi部署单机多实例的方法教程

mysql使⽤mysqld_multi部署单机多实例的⽅法教程⽬录⼀、mysql编译安装:⼆、准备第⼀个多实例3307三、准备第⼆个多实例3308四、启动多实例五、查看启动状态六、停⽌多实例七、各⾃登录mysql实例前⾔⼤家应该都有所体会,随着硬件层⾯的发展,linux系统多核已经是普通趋势,⽽mysql是单进程多线程,所以先天上对多进程的利⽤不是很⾼,虽然5.6版本已经在这⽅⾯改进很多,但是也没有达到100%,所以为了充分的利⽤系统资源,mysql有⾃⼰的补充,那就是可以部署多实例,⼀个实例⼀个端⼝。
mysqld_multi设计⽤于管理在同⼀台机器上运⾏的多个mysqld进程,这些进程使⽤不同的socket⽂件并监听在不同的端⼝上。
mysqld_multi可以批量启动、关闭、或者报告这些mysqld进程的状态。
下⾯话不多说了,来⼀起看看详细的介绍吧。
⼀、mysql编译安装:cd /usr/local/srcwget /mysql/MySQL-5.6/mysql-5.6.35-linux-glibc2.5-x86_64.tar.gztar zxvf mysql-5.6.35-linux-glibc2.5-x86_64.tar.gzmv mysql-5.6.35-linux-glibc2.5-x86_64 /usr/local/mysqlcd /usr/local/mysqluseradd mysqlmkdir -p /data/mysqlchown -R mysql:mysql /data/mysql./scripts/mysql_install_db --user=mysql --datadir=/data/mysqlcp support-files/f /etc/fcp support-files/mysql.server /etc/init.d/mysqld⼆、准备第⼀个多实例33072.1 创建⽬录:mkdir /usr/local/mysql3307chown -R mysql.mysql /usr/local/mysql3307/mkdir -p /data/mysql3307chown -R mysql.mysql /data/mysql3307mkdir -p /home/data/mysql3307/binlogchown -R mysql.mysql /home/data/mysql33072.2 配置⽂件[root@zhdya01 ~]# vim /etc/f# For advice on how to change settings please see# /doc/refman/5.6/en/server-configuration-defaults.html# *** DO NOT EDIT THIS FILE. It's a template which will be copied to the# *** default location during install, and will be replaced if you# *** upgrade to a newer version of MySQL.[mysqld_multi]mysqld = /usr/local/mysql/bin/mysqld_safemysqladmin =/usr/local/mysql/bin/mysqladminlog =/var/log/mysqld_multi.log[mysqld1]socket = /usr/local/mysql3307/mysql.sockport = 3307pid-file = /usr/local/mysql3307/mysql.piddatadir = /data/mysql3307log_bin=/home/data/mysql3307/binlogserver-id = 1innodb_buffer_pool_size = 128Minnodb_flush_log_at_trx_commit = 02.3 初始化数据库/usr/local/mysql/scripts/mysql_install_db --user=mysql --basedir=/usr/local/mysql --datadir=/data/mysql3307三、准备第⼆个多实例33083.1 创建⽬录:mkdir /usr/local/mysql3308chown -R mysql.mysql /usr/local/mysql3308/mkdir -p /data/mysql3308chown -R mysql.mysql /data/mysql3308mkdir -p /home/data/mysql3308/binlogchown -R mysql.mysql /home/data/mysql33083.2 配置⽂件[root@zhdya01 ~]# vim /etc/f# For advice on how to change settings please see# /doc/refman/5.6/en/server-configuration-defaults.html# *** DO NOT EDIT THIS FILE. It's a template which will be copied to the# *** default location during install, and will be replaced if you# *** upgrade to a newer version of MySQL.[mysqld_multi]mysqld = /usr/local/mysql/bin/mysqld_safemysqladmin =/usr/local/mysql/bin/mysqladminlog =/var/log/mysqld_multi.log[mysqld1]socket = /usr/local/mysql3307/mysql.sockport = 3307pid-file = /usr/local/mysql3307/mysql.piddatadir = /data/mysql3307log_bin=/home/data/mysql3307/binlogserver-id = 1innodb_buffer_pool_size = 128Minnodb_flush_log_at_trx_commit = 0[mysqld2]socket = /usr/local/mysql3308/mysql.sockport = 3308pid-file = /usr/local/mysql3308/mysql.piddatadir = /data/mysql3308log_bin=/home/data/mysql3308/binlogserver-id = 2innodb_buffer_pool_size = 128Minnodb_flush_log_at_trx_commit = 03.3 初始化数据库/usr/local/mysql/scripts/mysql_install_db --user=mysql --basedir=/usr/local/mysql --datadir=/data/mysql3308四、启动多实例/etc/init.d/mysqld startmysqld_multi --defaults-extra-file=/etc/f start 1,2[root@zhdya01 bin]# !netnetstat -lntp -lntpActive Internet connections (only servers)Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program nametcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 1241/sshdtcp 0 0 127.0.0.1:25 0.0.0.0:* LISTEN 2087/mastertcp6 0 0 :::3306 :::* LISTEN 4406/mysqldtcp6 0 0 :::3307 :::* LISTEN 4197/mysqldtcp6 0 0 :::3308 :::* LISTEN 3359/mysqldtcp6 0 0 :::8080 :::* LISTEN 2222/javatcp6 0 0 :::22 :::* LISTEN 1241/sshdtcp6 0 0 ::1:25 :::* LISTEN 2087/master五、查看启动状态[root@zhdya01 bin]# mysqld_multi --defaults-extra-file=/etc/f reportReporting MySQL serversMySQL server from group: mysqld1 is runningMySQL server from group: mysqld2 is running六、停⽌多实例[root@zhdya01 bin]# mysqld_multi --defaults-extra-file=/etc/f stop 1,2[root@zhdya01 bin]# mysqld_multi --defaults-extra-file=/etc/f reportReporting MySQL serversMySQL server from group: mysqld1 is not runningMySQL server from group: mysqld2 is not running七、各⾃登录mysql实例[root@zhdya01 bin]# mysql --socket=/usr/local/mysql3307/mysql.sockWelcome to the MySQL monitor. Commands end with ; or \g.Your MySQL connection id is 1Server version: 5.6.35-log MySQL Community Server (GPL)Copyright (c) 2000, 2016, Oracle and/or its affiliates. All rights reserved.Oracle is a registered trademark of Oracle Corporation and/or itsaffiliates. Other names may be trademarks of their respectiveowners.Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.mysql>总结以上就是这篇⽂章的全部内容了,希望本⽂的内容对⼤家的学习或者⼯作具有⼀定的参考学习价值,如果有疑问⼤家可以留⾔交流,谢谢⼤家对的⽀持。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
注意这里的1、2对应f配置文件 mysqld1、mysqld2,以此来区分。
4、本机登录Mysql,如3307端口:
shell>mysql ‐S /tmp/mysql3307.sock mysql> show variables like 'datadir'; +‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐+‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐+ | Variable_name | Value | +‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐+‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐+ | datadir | /mysqldata/data3307/ | +‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐+‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐+ 1 row in set (0.00 sec)
在Mysql官方帮助文档中,详细记录中Mysql的启动方式,有mysqld_safe、mysql.server、mysql_multi这三种。关于 mysql_multi的介绍:
Mysqld_multi 可以管理多个帧听不同Unix套接字文件和TCP/IP端口的连接的mysqld 进程。它可以启动或停止服务 器,或报告它们的当前状态。
即可以管理多个实例。 笔者在之前也介绍过使用mysqld_safe启用多实例的方法,启动和关闭都指定配置文件,实例间是对立的,互不影响。 成功的部署了多个实例主从Replication,今天也介绍下mysql_multi多实例管理,配置简单,方便管理。 1、首先配置f文件,列出我的Mysql配置文件:
wait_timeout=60 connect_timeout=60 table_cache=8192 thread_cache_size=512 sort_buffer_size=128M back_log = 500 thread_concurrency=48 expire_logs_days=10 log‐bin=mysql‐bin [mysqld2] port = 3307 socket = /tmp/mysql3307.sock basedir=/usr/local/mysql datadir=/mysqldata/data3307 log‐slow‐queries=slow_query.txt long_query_time=2 skip‐locking skip‐name‐resolve skip‐innodb max_allowed_packet = 256M query_cache_size=256M max_connections=2000 max_connect_errors=10000 key_buffer_size=6000M read_buffer_size=32M read_rnd_buffer_size = 32M myisam_sort_buffer_size=512M tmp_table_size=1024M old‐passwords interactive_timeout=60 wait_timeout=60 connect_timeout=60 table_cache=8192 thread_cache_size=512 sort_buffer_size=128M back_log = 500
[mysqld_multi] mysqld = /usr/local/mysql/bin/mysqld_safe #根据自己的mysql目录配置 mysqladmin = /usr/local/mysql/bin/mysqladmin [mysqld1] port = 3306 socket = /tmp/mysql3306.sock basedir=/usr/local/mysql datadir=/mysqldata/data3306 log‐slow‐queries=slow_query.txt long_query_time=2 skip‐locking skip‐name‐resolve skip‐innodb max_allowed_packet = 256M query_cache_size=256M max_connections=2000 max_connect_errors=10000 key_buffer_size=6000M read_buffer_size=32M read_rnd_buffer_size = 32M myisam_sort_buffer_size=512M tmp_table_size=1024M old‐passwords interactive_timeout=60
4、关闭数据库实例
shell>/usr/local/mysql/bin/mysqld_multi stop 1‐2 或 shell>/usr/local/mysql/bin/mysqld_multi stop 1 shell>/usr/local/mysql/bin/mysqld_multi stop 2
thread_concurrency=48 expire_logs_days=10 log‐bin=mysql‐bin [mysqldump] quick max_wed_packet = 512M [mysql] no‐auto‐rehash [isamchk] key_buffer = 512M sort_buffer_size = 32M read_buffer = 2M write_buffer = 2M [myisamchk] key_buffer = 512M sort_buffer_size = 32M read_buffer = 2M write_buffer = 2M [mysqlhotcopy] interactive‐timeout
2、初始化数据库目录:
shell>cd /usr/local/mysql/;./scripts/mysql_install_db ‐‐datadir=/mysqldata/data3307/ ‐‐user=mysql shell>cd /usr/local/mysql/;./scripts/mysql_install_db ‐‐datadir=/mysqldata/data3306/ ‐‐user=mysql
初始话成功,会提示OK,否则查看数据库目录是否有权限。 3、启动多实例:
shell>/usr/local/mysql/bin/mysqld_multi start 1‐2 或 shell>/usr/local/mysql/bin/mysqld_multi start 1 shell>/usr/local/mysql/bin/mysqld_multi start 2