如何在同一台机器上安装多个MySQL的实例
转自:’http://www.cnblogs.com/shangzekai/p/4375271.html
最近由于工作的需要,需要在同一台机器上搭建两个MySQL的实例,(注:已经存在了一个3306的MySQL的实例)。
先说下,什么是mysql的多实例,简单的来说就是一台机器上安装了多个mysql的服务,通过不同的端口(如3307,3308)来向外界提供服务,这些进程通过不同的socket来监听不同的服务端口来提供个字的服务。
做个比喻:MySQL的多实例相当于房子的相当于多个卧室一样,每个实例可以看做是一个卧室,整个服务器就是一个房子,服务器的硬件资源(cpu,mem,disk)就是共享的资源,相当于房子的卫生间,厨房,客厅一样,是房子的公共资源,北漂蜗居在一起,可定是要公用上述的资源的。
好处:
当公司资金紧张,可以节约服务器的资源。
坏处:
当某个服务并发很高或者有慢查询的时候,整个实例会消耗整个服务器更多的内存,cpu和各种资源,导致服务器上的其他的实例提供的服务质量下降。这就相当于大家住在一个房子的不同卧室一样,早晨起来刷牙,洗脸等,这样卫生间就会长期占用,其他人需要等一样的道理。
下面记录下装一个3307的MySQL的实例的步骤:
一. 基本的需求和出现的问题
当MySQL出现故障或者需要加入一个新的MySQL的实例的时候,需要重新初始化MySQL的数据库,也就是需要重新生成新的数据库的文件。
Linux环境中,安装编译好MySQL之后,还是不能直接启动MySQL,需要初始化Mysql的一些基本东西,包括:
初始化表日志,基本的数据库信息等一些基本的必须文件。
二.安装的步骤:
(1). 假设已经存在一个MySQL的实例,端口号为3306,现在需要重新添加一个端口号为3307端口的MySql的实例。
假设MySQl安装的路径是/usr/local/mysql/下面,找一个数据磁盘比较的地方,比如/data1/目录下,在这个目录下面创建数据文件夹:
1 mkdir -p /data1/mysql_3307/data
2 chown -R mysql:mysql /data1/mysql_3307
(2). 复制之前的MySQl的配置文件,到/data1/mysql_3307/目录下面,并且进行编辑:
vim /data1/mysql_3307/my.cnf
基本的配置如下:
注:上面的路径可能与上面的数据库文件的存放路径有点出入,但这个不是重点,可以自行替换一下!
(3).确保配置文件无误,然后开始初始化数据库:
(4).启动新的MySQL的实例服务:
在上面的初始化配置确保无误的情况下,就可以开始启动MySQL的又一个实例了。
1 /usr/local/mysql/bin/mysqld_safe --defaults-file=/data1/mysql_3308/my.cnf &
2 检查是否启动:
3 ps -aux | grep mysql
4 如有3308的端口 则表示成功
(5).新的 mysql没有设置root密码,可以通过如下 的设置:
/usr/local/mysl/bin/mysqladmin -S /tmp/mysql_3308.sock -uroot passwd 'new-paswd';
如上面的步骤,即可完成一个机器上多个MySQL实例的安装与运行。
当然了,可以将MySQL_server这个脚本放入到/rt/rc.local这个目录下面,随着服务器启动。
(6).如果想登陆的时候,需要指定MySQL的端口号,使用-P3307来指定登录到哪台数据库上即可。
总结:
自己在安装这个数据库的时候,以为是需要再次下载一个新的数据库的源码包,但是其实是不用的,使用一个MySQL的源码包,是可以安装多个MySQL的实例的。
如何在同一台机器上安装多个MySQL的实例的更多相关文章
- 如何在同一台机器上安装多个MySQL的实例 转
https://www.cnblogs.com/shangzekai/p/4375271.html 最近由于工作的需要,需要在同一台机器上搭建两个MySQL的实例,(注:已经存在了一个3306的MyS ...
- 如何在同一台机器上安装多个MySQL的实例(转)
最近由于工作的需要,需要在同一台机器上搭建两个MySQL的实例,(注:已经存在了一个3306的MySQL的实例). 先说下,什么是mysql的多实例,简单的来说就是一台机器上安装了多个mysql的服务 ...
- 如何在一台机器上安装两个MYSQL数据库
1.正常安装第一个mysql(安装步骤省略) 2.在控制面板里停止第一个mysql服务 3.将C:\Program Files\MySQL目录下的所有目录和文件copy到另外一个路径,我这里是copy ...
- window下在同一台机器上安装多个版本jdk,修改环境变量不生效问题处理办法
window下在同一台机器上安装多个版本jdk,修改环境变量不生效问题处理办法 本机已经安装了jdk1.7,而比较早期的项目需要依赖jdk1.6,于是同时在本机安装了jdk1.6和jdk1.7. 安装 ...
- 如何在一台服务器上安装两个mysql或者更多
如何在一台服务器上安装两个mysql 1 前言 上篇写了在一台机器上源码编译安装一个mysql,那么如何在一台机器上源码编译安装两个mysql或者更多呢? 2 环境 mysql ...
- (windows)一台电脑上安装两个Mysql服务
原文:https://my.oschina.net/u/1472917/blog/410732 最近需要在一台电脑上安装两个Mysql服务,需求稍微有些奇怪,但确实很必要.本人原本为了本机测试Word ...
- 关于同一台机器上安装多个sql实例的连接方法
由于客户需要在一台服务器上安装了两个sql服务器(一个sql2000,一个是sql2005,其实例名不同),默认的端口1433被先安装的sql2000使用,后来安装的的随机启用了一个3045端口.其中 ...
- MySQL 8 在一台机器上运行多个MySQL实例
可以为每个实例使用一个MySQL Server二进制程序,也可以为不同实例使用同一个MySQL Server二进制程序. 不管哪一种选择,部分参数可能需要不同配置,以避免多个实例之间的冲突. 可能需要 ...
- 一台机器,运行两个mysql版本 实例
一.问题 1.学习mysql时,我先安装了一个mysql5.5.27: 2.然而学习php时,当我安装wampserver2.2时,wampserver2.2又在电脑上安装了mysql5.5.20: ...
随机推荐
- Python爬虫知识点一
一.入门知识: 1.1.HTTP简介HTTP = HyperText Transfer ProtocolURI = Uniform Resource IdentifierURL = Uniform R ...
- http请求参数中包含特殊字符的严重后果,比如:#
URL请求中不能包含特殊符号,比如:# 今天在调接口,突然发现接口参数中传递的数据没有完全接收到controller层的model模型中,反反复复测了好几遍,真不信这个邪了,头晕脑胀的时候才关注到UR ...
- Server Tomcat v7.0 Server at localhost failed to start.
1:这里记录一下这个错误,反正百度一大推,但是很长很长,我感觉这个问题肯定是servlet引起的,因为我遇到的总是如此: 2:我的问题如下所示: <servlet> <servlet ...
- 有关求任意一个正整数的n的因数的个数的求解思路
已知条件:n=p1^a1xp2^a2xp3^a3........xpk^ak;求解n的因数的个数: 求解的主要思想:递归 设所有的因数的个数为U1: 则U1会等于什么呢? 不妨设求得p2^a2xp3^ ...
- ABAP开发人员未来应该学些什么
2007年1月我大学毕业进入SAP Chengdu从事开发工作,到今天已经整整11年了. 这张图在ABAP开发圈子里曾广为流传: 为了避免这种窘境发生在ABAPer身上,我们应该做点什么呢? 2017 ...
- Spring框架入门之基于xml文件配置bean详解
关于Spring中基于xml文件配置bean的详细总结(spring 4.1.0) 一.Spring中的依赖注入方式介绍 依赖注入有三种方式 属性注入 构造方法注入 工厂方法注入(很少使用,不推荐,本 ...
- visualSVN 版本控制
用SmartSVN提交代码的时候提示:svn: File has inconsistent newlines 这是由于要提交的文件编码时混合了windows和unix符号导致的. 解决方法: Proj ...
- 从Unity中的Attribute到AOP(一)
首先来看一下微软官方对Attributes(C#)的定义: https://docs.microsoft.com/en-us/dotnet/csharp/programming-guide/conce ...
- smtplib 报错501
昨天用stmplib写了一个自动发送的邮件的小程序. 之前能够正常运行,到了下午发现报错. 报错信息:smtplib.SMTPSendRefused(501,b'\xc7\xeb\xb5\xc7\xc ...
- 集合并发修改异常-foreach的时候不可修改值
直接上代码: 无意间发现的://这个方法本身是为后面的集合去掉前面集合的重复数据一直报错,并发修改异常,仔细看mainList正在迭代循环,然后我进行了remove操作,这个时候就会报这个错.故:总结 ...