首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

mysql源码多实例安装

MySQL源码多实例安装基础概念

MySQL源码多实例安装是指在同一台服务器上安装多个独立的MySQL实例,每个实例都有自己的配置文件、数据目录和端口。这种安装方式可以充分利用服务器资源,提高数据库的并发处理能力和可用性。

优势

  1. 资源隔离:每个实例独立运行,互不干扰,可以有效避免资源争用问题。
  2. 高可用性:通过配置主从复制或多主复制,可以实现数据库的高可用性和故障切换。
  3. 灵活性:可以根据不同的业务需求,配置不同的实例参数和存储引擎。
  4. 安全性:每个实例可以独立设置安全策略,提高整体数据库的安全性。

类型

  1. 基于端口的实例:每个实例使用不同的端口进行通信。
  2. 基于目录的实例:每个实例使用不同的数据目录和配置文件。

应用场景

  1. 高并发系统:适用于需要处理大量并发请求的系统,如电商网站、社交平台等。
  2. 多租户系统:适用于需要为多个租户提供独立数据库服务的系统。
  3. 数据隔离:适用于需要严格隔离不同业务数据的系统。

安装步骤

以下是基于端口的MySQL源码多实例安装示例:

1. 安装依赖

代码语言:txt
复制
sudo apt-get update
sudo apt-get install -y build-essential cmake libncurses5-dev libssl-dev

2. 下载并解压MySQL源码

代码语言:txt
复制
wget https://dev.mysql.com/get/Downloads/MySQL-8.0/mysql-8.0.26.tar.gz
tar -zxvf mysql-8.0.26.tar.gz
cd mysql-8.0.26

3. 编译并安装MySQL

代码语言:txt
复制
cmake . -DCMAKE_INSTALL_PREFIX=/usr/local/mysql -DWITH_BOOST=/usr/local/boost
make
sudo make install

4. 创建多个实例的目录结构

代码语言:txt
复制
sudo mkdir -p /data/mysql/{3306,3307,3308}/data
sudo chown -R mysql:mysql /data/mysql

5. 初始化每个实例

代码语言:txt
复制
sudo /usr/local/mysql/bin/mysqld --initialize --user=mysql --basedir=/usr/local/mysql --datadir=/data/mysql/3306/data
sudo /usr/local/mysql/bin/mysqld --initialize --user=mysql --basedir=/usr/local/mysql --datadir=/data/mysql/3307/data
sudo /usr/local/mysql/bin/mysqld --initialize --user=mysql --basedir=/usr/local/mysql --datadir=/data/mysql/3308/data

6. 配置每个实例的配置文件

代码语言:txt
复制
sudo cp /usr/local/mysql/support-files/my-default.cnf /etc/mysql/my.cnf
sudo cp /etc/mysql/my.cnf /etc/mysql/my3306.cnf
sudo cp /etc/mysql/my.cnf /etc/mysql/my3307.cnf
sudo cp /etc/mysql/my.cnf /etc/mysql/my3308.cnf

# 修改每个实例的配置文件
sudo sed -i 's/3306/3306/' /etc/mysql/my3306.cnf
sudo sed -i 's/3306/3307/' /etc/mysql/my3307.cnf
sudo sed -i 's/3306/3308/' /etc/mysql/my3308.cnf

7. 启动每个实例

代码语言:txt
复制
sudo /usr/local/mysql/bin/mysqld_safe --defaults-file=/etc/mysql/my3306.cnf &
sudo /usr/local/mysql/bin/mysqld_safe --defaults-file=/etc/mysql/my3307.cnf &
sudo /usr/local/mysql/bin/mysqld_safe --defaults-file=/etc/mysql/my3308.cnf &

常见问题及解决方法

1. 端口冲突

问题描述:启动实例时提示端口已被占用。

解决方法:检查并修改配置文件中的端口号,确保每个实例使用不同的端口。

2. 数据目录权限问题

问题描述:启动实例时提示数据目录权限不足。

解决方法:确保数据目录的权限和所有者正确,通常为mysql:mysql

3. 配置文件错误

问题描述:启动实例时提示配置文件错误。

解决方法:检查配置文件中的参数是否正确,特别是数据目录和端口号。

参考链接

通过以上步骤,你可以在同一台服务器上成功安装多个MySQL实例,并根据需要进行配置和管理。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

MySQL多实例安装部署

MySQL多实例安装部署 1、MySQL多实例概念 多实例就是在一台服务器上同时开启多个不同的数据库服务端口(例如3306、3307),同时运行多个MYSQL服务进程,这些服务进程通过不同的socket...优点 MySQL多实例,可以通过多个端口向用户提供服务,充分利用一台服务器的闲置资源 缺点 无论是多少个端口提供服务,但始终使用的是一台服务器的资源,所以当访问量过大时,依然存在高并发的问题...2、mysql 多实例部署 2.1 软件下载 #下载二进制格式的mysql软件包 [root@localhost ~]# cd /usr/src/ [root@localhost src]# wget...Jul 29 02:08 3307 drwxr-xr-x. 2 mysql mysql 6 Jul 29 02:08 3308 2.4 初始化各实例 #初始化3306实例 [root@localhost...3v%lVe' > 3308_passwd 2.5 安装perl [root@localhost ~]# yum -y install perl 2.6 配置配置文件/etc/my.cnf [root@

1.3K31
  • MySQL多实例安装(相同版本)

    本文以MySQL5.7为例,介绍在同一台机器下如何安装多个MySQL实例。...环境:RHEL 6.5 + MySQL 5.7 1.单实例MySQL安装 2.多实例MySQL配置 3.多实例MySQL初始化 4.多实例MySQL常用管理命令 1.单实例MySQL安装 先来看下MySQL5.7...单实例的安装方法(这里引用官方文档的安装步骤): shell> groupadd mysql shell> useradd -r -g mysql -s /bin/false mysql shell>...2.多实例MySQL配置 下面来看下多实例MySQL配置,如果需要安装多实例在同一台机器上,主要4个地方的配置需要区分:端口(Port)、数据目录(datadir)、socket文件、server-id....多实例MySQL常用管理命令 多实例MySQL常用管理命令: --显示多实例mysqld的运行状态 mysqld_multi report --启动[mysqld1] mysqld_multi start

    1.9K30

    MySQL 5.7多实例安装最佳实践

    MySQL 5.7多实例安装最佳实践,接上一篇《MySQL 5.7安装最佳实践》在已有的实例上面新增一个实例,主要是为了资源合理利用;下面是具体的步骤: 1、新实例目录规划,my.cnf文件配置 [root...@localhost ~]# mkdir -p /data/mysql/mysql3307/{data,tmp,logs} [root@localhost ~]# chown -R mysql:mysql.../my3307.cnf :%s/3306/3307/g -------#替换3006为3307 :wq -------#保存退出 2、新实例初始化安装,error日志查看 [root@localhost...3、新实例启动,error日志查看 [root@localhost ~]# /usr/local/mysql/bin/mysqld --defaults-file=/etc/my3307.cnf & [...4、新实例root密码修改,配置远程连接权限 [root@localhost ~]# more /data/mysql/mysql3307/data/error.log |grep password 2018

    70120

    mysql多实例

    1、什么是mysql多实例 mysql多实例就是在一台机器上开启多个不同的服务端口(如:3306,3307),运行多个MySQL服务进程,通过不同的socket监听不同的服务端口来提供各自的服务...、CPU、磁盘IO资源,导致服务器上的其他实例提供服务的质量下降 3、部署mysql多实例 3.1、部署mysql多实例的两种方式 第一种是使用多个配置文件启动不同的进程来实现多实例,这种方式的优势逻辑简单...,配置简单,缺点是管理起来不太方便 第二种是通过官方自带的mysqld_multi使用单独的配置文件来实现多实例,这种方式定制每个实例的配置不太方面,优点是管理起来很方便,集中管理 同一开发环境下安装两个数据库...,必须处理以下问题: 配置文件安装路径不能相同 数据库目录不能相同 启动脚本不能同名 端口不能相同 socket文件的生成路径不能相同 3.2、mysqld_multi配置mysql多实例 在进行此操作前已经编译安装好了...多实例 在进行此操作前已经编译安装好了mysql,安装位置在/application/mysql/下 3.3.1、创建目录和配置文件 mkdir -p /data/{3306,3307}/data vim

    2.4K30

    Linux下MySQL多实例的安装部署

    MySQL多实例介绍 什么是MySQL多实例 MySQL多实例就是在一台机器上开启多个不同的服务端口(如:3306,3307),运行多个MySQL服务进程,通过不同的socket监听不同的服务端口来提供各自的服务...: MySQL多实例的特点有以下几点 1:有效利用服务器资源,当单个服务器资源有剩余时,可以充分利用剩余的资源提供更多的服务。...2:节约服务器资源 3:资源互相抢占问题,当某个服务实例服务并发很高时或者开启慢查询时,会消耗更多的内存、CPU、磁盘IO资源,导致服务器上的其他实例提供服务的质量下降; 部署mysql多实例的两种方式...第一种是使用多个配置文件启动不同的进程来实现多实例,这种方式的优势逻辑简单,配置简单,缺点是管理起来不太方便; 第二种是通过官方自带的mysqld_multi使用单独的配置文件来实现多实例,这种方式定制每个实例的配置不太方面...第一次登入实例,修改root账号密码 多实例登入需指定 socket 参数 本测试3306实例登入的方式为: mysql -S /tmp/mysql_3306.sock -uroot --port 3306

    1.3K10

    MySQL 多实例详解

    一、基本概念 1、MySQL多实例 就是在一台机器上面开启多个不同 的端口,运行多个MySQL服务进程。这些MySQL多实例公用一套安装程序,使用不同的(也可以是相同的)配置文件,启动程序,数据文件。...二、实战步骤: 1、同步时间 2、准备mysql依赖包 3、环境准备 3.1添加mysql用户 3.2编译安装mysql 4、安装MySQL多实例 5、准备配置文件 6、启动MySQL 7、登录mysql...与一些安全措施 8、关闭MySQL 9,、提供简易管理脚本 10、为mysql的root用户创建密码 11、附,多配置文件安装mysql多实例,这里增加mysql 的3309端口 12、总结 1、同步时间...\ -DDEFAULT_CHARSET=utf8 \ -DDEFAULT_COLLATION=utf8_general_ci gmake make install 4、安装MySQL多实例 cd /...多实例安装,我们已经可以根据自己的喜好决定是通过多配置文件安装mysql多实例,还是但配置单文件安装。

    2.2K140

    MySQL数据库多实例介绍及安装

    mysql安装程序,配置文件可以用同一个(最好不同),启动程序可以用同一个(最好不同),数据文件是不同的; 服务器的硬件资源是公用的; 逻辑上多实例是各自独立的 2.多实例的作用 有效利用服务器资源;                                 ...可参见 https://www.linuxidc.com/Linux/2016-09/135110.htm 5.安装多实例数据库 #生产硬件配置,32G MEM 8 CPU,硬盘6*600g  SAS...15k,跑2-3个实例 1)安装好cmake及mysql依赖的包 yum install ncurses-devel -y yum install libaio-devel -y 2)创建mysql多实例数据文件目录...      #此过程依赖于已经安装好mysql软件的单实例环境 采用/data目录作为mysql多实例总的数据文件根目录 pkill mysqld                                         ...  ls -l  {} \. 7)停止多实例数据库 多实例启动文件的停止mysql服务实质: mysqladmin -u root -poldboy123 -S /data/3306/mysql.sock

    1.9K10

    MySQL多实例配置(一)

    对于多实例的配置有2种方式,一种是在my.cnf为所有实例提供配置,一种是使用每一个实例一个配置文件。本文主要描述第一种方式。    ...第二种多实例配置方式请参考:MySQL多实例配置(二)    有关MySQL单实例的安装请参考:Linux 下MySQL源码安装完整版 1、各数据库多实例的差异   MSSQL       MSSQL...缺省实例名即为机器名ServerName(或IP)。       如果在同一台机器上再安装SQL server,我们可以对实例命名如ServerName/InstanceName。       ...不同的实例间可以用不同的端口号来区分,各个实例的数据可以使用不同的磁盘目录。       MySQL多实例通过mysqld_multi工具来进行管理。...2、现有的环境   mysql安装路径: /u01/app/mysql   mysql数据路径: /u01/app/mysqldata/data3306   mysql端口号: 3306   mysql

    2K20

    MySQL多实例配置(二)

    从而减少生产环境的维护成本,方便后续的迁移和清理等工作,借助多实例绑定的方式提高服务器的整体资源利用率.对于多实例的配置有2种方式,一种是在my.cnf为所有实例提供配置,一种是使用每一个实例一个配置文件...第一种多实例配置方式请参考:MySQL多实例配置(一)   有关MySQL单实例的安装请参考:Linux 下MySQL源码安装完整版 1、各数据库多实例的差异   MSSQL     MSSQL中的实例指的是一个...缺省实例名即为机器名ServerName(或IP)。        如果在同一台机器上再安装SQL server,我们可以对实例命名如ServerName/InstanceName。        ...不同的实例间可以用不同的端口号来区分,各个实例的数据可以使用不同的磁盘目录。      MySQL多实例通过mysqld_multi工具来进行管理。...2、现有的环境   mysql安装路径: /u01/app/mysql   mysql数据路径: /u01/app/mysqldata/data3306   mysql端口号: 3306   mysql

    1.4K20

    MySQL多实例踩坑

    最近由于业务要求,需要在服务器添加一个mysql实例,遇到个坑,分享下 安装mysql不必多说了,多实例肯定是下载二进制包安装,这个网上很多教程,我就不罗嗦了 正常安装mysql实例,在解压的二进制包里面...它里面会带有一些推荐的配置文件和启动脚本,单实例mysql.server,多实例mysqld_multi.server,通过修改basedir和datadir,就可以用这两个脚本来管理mysql服务 正常情况下...也就是如果你要做多实例,就不要写/etc/my.cnf这个配置文件,而是改成多实例配置文件,比如my3306.cnf和my3307.cnf这种,这样通过defaluts-file来指定配置文件启动就可以...这两种通常都是单实例的启动方式,当然也可以使用mysqld来启动多实例的。...而mysqld_multi用来启动多实例,也是通过先调用mysqld_safe和mysqld来启动mysql的 你去分析启动脚本,也就是上面这么调用的 ?

    1.3K20
    领券