安装两个mysql实例(装两个版本mysql)

本文目录一览:

如何在一台服务器上安装两个mysql或者更多

这种架构一般用在以下三类场景

1. 备份多台 Server 的数据到一台如果按照数据切分方向来讲,那就是垂直切分。比如图 2,业务 A、B、C、D 是之前拆分好的业务,现在需要把这些拆分好的业务汇总起来备份,那这种需求也很适用于多源复制架构。实现方法我大概描述下:业务 A、B、C、D 分别位于 4 台 Server,每台 Server 分别有一个数据库来隔离前端的业务数据,那这样,在从库就能把四台业务的数据全部汇总起来,而不需要做额外的操作。那没有多源复制之前,要实现这类需求,只能在汇总机器上搭建多个 MySQL 实例,那这样势必会涉及到跨库关联的问题,不但性能急剧下降,管理多个实例也没有单台来的容易。

2. 用来聚合前端多个 Server 的分片数据。

同样,按照数据切分方向来讲,属于水平切分。比如图 3,按照年份拆分好的数据,要做一个汇总数据展现,那这种架构也非常合适。实现方法稍微复杂些:比如所有 Server 共享同一数据库和表,一般为了开发极端透明,前端配置有分库分表的中间件,比如爱可生的 DBLE。

3. 汇总并合并多个 Server 的数据

第三类和第一种场景类似。不一样的是不仅仅是数据需要汇总到目标端,还得合并这些数据,这就比第一种来的相对复杂些。比如图 4,那这样的需求,是不是也适合多源复制呢?答案是 YES。那具体怎么做呢?

一台机器上可以安装多个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).确保配置文件无误,然后开始初始化数据库:

/usr/local/mysql/scripts/mysql_install_db –defaults-file=/data1/mysql_3307/my.cnf –datadir=/data1/mysql/ –basedir=/usr/lcoal/mysql

完成后,新的mysql 3307数据库已经初始化好了,如果有报错,则看下报错的日志,一般是由于mysql的配置文件导致的,修改即可!

(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的实例

这种架构一般用在以下三类场景

1. 备份多台 Server 的数据到一台如果按照数据切分方向来讲,那就是垂直切分。比如图 2,业务 A、B、C、D 是之前拆分好的业务,现在需要把这些拆分好的业务汇总起来备份,那这种需求也很适用于多源复制架构。实现方法我大概描述下:业务 A、B、C、D 分别位于 4 台 Server,每台 Server 分别有一个数据库来隔离前端的业务数据,那这样,在从库就能把四台业务的数据全部汇总起来,而不需要做额外的操作。那没有多源复制之前,要实现这类需求,只能在汇总机器上搭建多个 MySQL 实例,那这样势必会涉及到跨库关联的问题,不但性能急剧下降,管理多个实例也没有单台来的容易。

2. 用来聚合前端多个 Server 的分片数据。

同样,按照数据切分方向来讲,属于水平切分。比如图 3,按照年份拆分好的数据,要做一个汇总数据展现,那这种架构也非常合适。实现方法稍微复杂些:比如所有 Server 共享同一数据库和表,一般为了开发极端透明,前端配置有分库分表的中间件,比如爱可生的 DBLE。

3. 汇总并合并多个 Server 的数据

第三类和第一种场景类似。不一样的是不仅仅是数据需要汇总到目标端,还得合并这些数据,这就比第一种来的相对复杂些。比如图 4,那这样的需求,是不是也适合多源复制呢?答案是 YES。那具体怎么做呢?

怎样在linux上安装2个MySQL

我想没有必要安装多个mysql

只需要在既存的mysql中新建一个新的db实例

然后再 mysqlmanager 配置文件中 加入关于新实例的

port

socket

等其他信息就可以了

具体设置你自己查查看吧

另外最好不用root 用户登陆和启动服务

新建一个用户比较好

可以同时安装两个mysql数据库吗?

可以,要使用不同的端口.因为mysql比较灵活,可以有多个实例,多个用户,创建多个数据库,所以一般没必要安装多个

原创文章,作者:小蓝,如若转载,请注明出处:https://www.506064.com/n/291902.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
小蓝小蓝
上一篇 2024-12-25 14:07
下一篇 2024-12-25 14:07

相关推荐

  • 如何修改mysql的端口号

    本文将介绍如何修改mysql的端口号,方便开发者根据实际需求配置对应端口号。 一、为什么需要修改mysql端口号 默认情况下,mysql使用的端口号是3306。在某些情况下,我们需…

    编程 2025-04-29
  • 利用Python实现两个链表合并为一个有序链表

    对于开发工程师来说,实现两个链表合并为一个有序链表是必须掌握的技能之一。Python语言在链表处理上非常便利,本文将从多个方面详细阐述如何利用Python实现两个链表合并为一个有序…

    编程 2025-04-29
  • Git secbit:一种新型的安全Git版本

    Git secbit是一种新型的安全Git版本,它在保持Git原有功能的同时,针对Git存在的安全漏洞做出了很大的改进。下面我们将从多个方面对Git secbit做详细地阐述。 一…

    编程 2025-04-29
  • Python生成随机数的应用和实例

    本文将向您介绍如何使用Python生成50个60到100之间的随机数,并将列举使用随机数的几个实际应用场景。 一、生成随机数的代码示例 import random # 生成50个6…

    编程 2025-04-29
  • Python操作MySQL

    本文将从以下几个方面对Python操作MySQL进行详细阐述: 一、连接MySQL数据库 在使用Python操作MySQL之前,我们需要先连接MySQL数据库。在Python中,我…

    编程 2025-04-29
  • Python定义两个列表的多面探索

    Python是一种强大的编程语言,开放源代码,易于学习和使用。通过Python语言,我们可以定义各种数据类型,如列表(list)。在Python中,列表(list)在处理数据方面起…

    编程 2025-04-29
  • MySQL递归函数的用法

    本文将从多个方面对MySQL递归函数的用法做详细的阐述,包括函数的定义、使用方法、示例及注意事项。 一、递归函数的定义 递归函数是指在函数内部调用自身的函数。MySQL提供了CRE…

    编程 2025-04-29
  • 如何将Java项目分成Modules并使用Git进行版本控制

    本文将向您展示如何将Java项目分成模块,并使用Git对它们进行版本控制。分割Java项目可以使其更容易维护和拓展。Git版本控制还可以让您跟踪项目的发展并协作开发。 一、为什么要…

    编程 2025-04-28
  • Python两个线程交替打印1到100

    这篇文章的主题是关于Python多线程的应用。我们将会通过实际的代码,学习如何使用Python两个线程交替打印1到100。 一、创建线程 在Python中,我们可以使用Thread…

    编程 2025-04-28
  • leveldb和unqlite:两个高性能的数据库存储引擎

    本文将介绍两款高性能的数据库存储引擎:leveldb和unqlite,并从多个方面对它们进行详细的阐述。 一、leveldb:轻量级的键值存储引擎 1、leveldb概述: lev…

    编程 2025-04-28

发表回复

登录后才能评论