linux下多个mysql5.7.19(tar.gz)安装图文教程

yizhihongxing

下面是“linux下多个mysql5.7.19(tar.gz)安装图文教程”的完整攻略:

简介

在 Linux 操作系统中,如果需要同时使用多个 MySQL 数据库,我们可以通过安装多个 MySQL 版本的方式来实现。这里提供的是在 linux 下使用源码安装的方式来安装多个 MySQL5.7.19 数据库的详细攻略。

准备工作

在安装多个 MySQL 数据库之前,需要先安装依赖的软件包和工具。你可以用以下命令来安装:

yum -y install make cmake gcc-c++ bison ncurses-devel perl gcc autoconf automake zlib* fiex* libxml* libmcrypt* libtool-ltdl* libjpeg* libpng* libwebp* libzip* gmp-devel libevent-devel

下载 MySQL 源码

从 MySQL 官方网站 https://dev.mysql.com/downloads/mysql/ 下载 MySQL 5.7.19 的源码包,并放在指定的目录中。这里以 /usr/local/src 目录为例,你也可以选择其他目录。

cd /usr/local/src
wget https://dev.mysql.com/get/Downloads/MySQL-5.7/mysql-5.7.19.tar.gz

编译安装 MySQL

在开始编译和安装 MySQL 之前,建议先通过以下命令,安装一些必要的库和工具:

yum -y install libaio libaio-devel

安装之后,可以使用以下命令进行编译和安装:

# 解压安装包
tar zxvf mysql-5.7.19.tar.gz
cd mysql-5.7.19

# 编译和安装到指定目录
cmake . -DCMAKE_INSTALL_PREFIX=/usr/local/mysql5.7.19 \
-DMYSQL_DATADIR=/database/mysql5.7.19/data \
-DWITH_MYISAM_STORAGE_ENGINE=1 \
-DWITH_INNOBASE_STORAGE_ENGINE=1 \
-DWITH_PARTITION_STORAGE_ENGINE=1 \
-DWITH_PERFSCHEMA_STORAGE_ENGINE=1 \
-DEXTRA_CHARSETS=all \
-DDEFAULT_CHARSET=utf8mb4 \
-DDEFAULT_COLLATION=utf8mb4_general_ci
(make && make install)

# 设置 mysql 数据库文件夹权限
groupadd mysql
useradd -s /sbin/nologin -g mysql mysql
chown -R mysql:mysql /usr/local/mysql5.7.19/
chmod -R 755 /usr/local/mysql5.7.19/

这会将 MySQL 编译安装到 /usr/local/mysql5.7.19 目录中,并创建一个用于启动 MySQL 服务的 mysql 用户和 mysql 组。你可以根据需要,修改上述命令中的安装路径、数据目录等参数。

配置 MySQL

在安装完成之后,需要对 MySQL 进行一些简单的配置,以确保 MySQL 正确运行。在 /usr/local/mysql5.7.19 目录中,有一个配置文件 my.cnf,可以对其进行修改。如下所示:

[mysqld]
basedir=/usr/local/mysql5.7.19
datadir=/database/mysql5.7.19/data
port=3306
character_set_server=utf8
max_allowed_packet=512MB
# 省略其他配置项

修改完成后,可以启动 MySQL 服务:

cd /usr/local/mysql5.7.19
bin/mysqld --defaults-file=/usr/local/mysql5.7.19/my.cnf &

执行以上命令后,需要输入 root 用户的密码才能启动 MySQL 服务。如果启动成功,可以使用以下命令连接到数据库:

/usr/local/mysql5.7.19/bin/mysql -uroot -p

输入 root 用户的密码后,就可以看到 MySQL 控制台。

示例说明

示例一:在一台服务器上安装两个 MySQL 数据库

在一台服务器上安装两个 MySQL 数据库,需要分别指定不同的端口和数据目录。具体操作如下:

  1. 下载 MySQL 源码包,解压到 /usr/local/src 目录中;
  2. 分别为两个 MySQL 数据库创建数据目录:
    cd /database
    mkdir mysql5.7.19_1 mysql5.7.19_2
  3. 安装第一个 MySQL 数据库:
    cd /usr/local/src/mysql-5.7.19
    cmake .
    -DCMAKE_INSTALL_PREFIX=/usr/local/mysql5.7.19_1 \
    -DMYSQL_DATADIR=/database/mysql5.7.19_1/data \
    -DWITH_MYISAM_STORAGE_ENGINE=1 \
    -DWITH_INNOBASE_STORAGE_ENGINE=1 \
    -DWITH_PARTITION_STORAGE_ENGINE=1 \
    -DWITH_PERFSCHEMA_STORAGE_ENGINE=1 \
    -DEXTRA_CHARSETS=all \
    -DDEFAULT_CHARSET=utf8mb4 \
    -DDEFAULT_COLLATION=utf8mb4_general_ci \
    (make && make install)
  4. 安装第二个 MySQL 数据库:
    cd /usr/local/src/mysql-5.7.19
    cmake .
    -DCMAKE_INSTALL_PREFIX=/usr/local/mysql5.7.19_2 \
    -DMYSQL_DATADIR=/database/mysql5.7.19_2/data \
    -DWITH_MYISAM_STORAGE_ENGINE=1 \
    -DWITH_INNOBASE_STORAGE_ENGINE=1 \
    -DWITH_PARTITION_STORAGE_ENGINE=1 \
    -DWITH_PERFSCHEMA_STORAGE_ENGINE=1 \
    -DEXTRA_CHARSETS=all \
    -DDEFAULT_CHARSET=utf8mb4 \
    -DDEFAULT_COLLATION=utf8mb4_general_ci \
    (make && make install)
  5. 修改每个 MySQL 数据库的配置文件 my.cnf,指定不同的端口和数据目录:
    ```
    [mysqld]
    basedir=/usr/local/mysql5.7.19_1
    datadir=/database/mysql5.7.19_1/data
    port=3306
    character_set_server=utf8
    max_allowed_packet=512MB

[mysqld2]
basedir=/usr/local/mysql5.7.19_2
datadir=/database/mysql5.7.19_2/data
port=3307
character_set_server=utf8
max_allowed_packet=512MB
6. 启动两个 MySQL 数据库:
/usr/local/mysql5.7.19_1/bin/mysqld --defaults-file=/usr/local/mysql5.7.19_1/my.cnf &
/usr/local/mysql5.7.19_2/bin/mysqld --defaults-file=/usr/local/mysql5.7.19_2/my.cnf &
```

示例二:在多台服务器上安装多个 MySQL 数据库

在多台服务器上安装多个 MySQL 数据库,需要分别指定不同的端口和数据目录。具体操作如下:

  1. 下载 MySQL 源码包,解压到 /usr/local/src 目录中;
  2. 分别为 MySQL 数据库创建数据目录,并将数据目录挂载到 NFS(Network File System)中,以实现多台服务器共享数据;
  3. 安装每个 MySQL 数据库时,分别指定不同的端口和数据目录,如下所示:
    ```
    # 服务器 A
    cd /usr/local/src/mysql-5.7.19
    cmake .
    -DCMAKE_INSTALL_PREFIX=/usr/local/mysql5.7.19_A \
    -DMYSQL_DATADIR=/nfs/mysql5.7.19_A/data \
    -DWITH_MYISAM_STORAGE_ENGINE=1 \
    -DWITH_INNOBASE_STORAGE_ENGINE=1 \
    -DWITH_PARTITION_STORAGE_ENGINE=1 \
    -DWITH_PERFSCHEMA_STORAGE_ENGINE=1 \
    -DEXTRA_CHARSETS=all \
    -DDEFAULT_CHARSET=utf8mb4 \
    -DDEFAULT_COLLATION=utf8mb4_general_ci \
    (make && make install)

# 服务器 B
cd /usr/local/src/mysql-5.7.19
cmake .
-DCMAKE_INSTALL_PREFIX=/usr/local/mysql5.7.19_B \
-DMYSQL_DATADIR=/nfs/mysql5.7.19_B/data \
-DWITH_MYISAM_STORAGE_ENGINE=1 \
-DWITH_INNOBASE_STORAGE_ENGINE=1 \
-DWITH_PARTITION_STORAGE_ENGINE=1 \
-DWITH_PERFSCHEMA_STORAGE_ENGINE=1 \
-DEXTRA_CHARSETS=all \
-DDEFAULT_CHARSET=utf8mb4 \
-DDEFAULT_COLLATION=utf8mb4_general_ci \
(make && make install)

# 服务器 C
cd /usr/local/src/mysql-5.7.19
cmake .
-DCMAKE_INSTALL_PREFIX=/usr/local/mysql5.7.19_C \
-DMYSQL_DATADIR=/nfs/mysql5.7.19_C/data \
-DWITH_MYISAM_STORAGE_ENGINE=1 \
-DWITH_INNOBASE_STORAGE_ENGINE=1 \
-DWITH_PARTITION_STORAGE_ENGINE=1 \
-DWITH_PERFSCHEMA_STORAGE_ENGINE=1 \
-DEXTRA_CHARSETS=all \
-DDEFAULT_CHARSET=utf8mb4 \
-DDEFAULT_COLLATION=utf8mb4_general_ci \
(make && make install)
4. 在每个 MySQL 数据库的配置文件 `my.cnf` 中,指定不同的端口和数据目录,并启动 MySQL 服务,如下所示:
# 服务器 A 的 my.cnf
[mysqld]
basedir=/usr/local/mysql5.7.19_A
datadir=/nfs/mysql5.7.19_A/data
port=3306
character_set_server=utf8
max_allowed_packet=512MB

# 服务器 B 的 my.cnf
[mysqld]
basedir=/usr/local/mysql5.7.19_B
datadir=/nfs/mysql5.7.19_B/data
port=3306
character_set_server=utf8
max_allowed_packet=512MB

# 服务器 C 的 my.cnf
[mysqld]
basedir=/usr/local/mysql5.7.19_C
datadir=/nfs/mysql5.7.19_C/data
port=3306
character_set_server=utf8
max_allowed_packet=512MB
```
以上步骤完成后,在多台服务器上都可以连接到不同的 MySQL 数据库了。

总结

通过上述步骤,我们就可以在 Linux 操作系统下安装多个 MySQL 数据库了。需要注意的是,安装多个 MySQL 数据库需要分别指定不同的端口和数据目录,以免相互冲突。另外,不同的 MySQL 数据库可以在同一台服务器上部署,也可以在多台服务器上分布式部署。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:linux下多个mysql5.7.19(tar.gz)安装图文教程 - Python技术站

(0)
上一篇 2023年5月22日
下一篇 2023年5月22日

相关文章

  • asp.net mvc CodeFirst模式数据库迁移步骤详解

    下面我会详细讲解“ASP.NET MVC CodeFirst模式数据库迁移步骤详解”的完整攻略。 什么是CodeFirst模式 CodeFirst模式是一种面向对象编程的数据访问模式,它可以让程序员专注于应用程序的开发,而不是关注数据访问层的细节。在使用CodeFirst模式时,程序员只需要使用代码定义实体类,Entity Framework会根据实体类生成…

    database 2023年5月22日
    00
  • Node.js和mybatis分别实现mysql中like变量模糊查询

    <!– mybatis –> <where> <if test=”varName != ” and varName != null” > var_name like ‘%${varName}%’ </if> </where>    //node 变量 if (data.varName &amp…

    MySQL 2023年4月13日
    00
  • spring boot中各个版本的redis配置问题详析

    下面我就为你详细讲解“spring boot中各个版本的redis配置问题详析”的攻略。 一、问题概述 在使用Spring Boot进行项目开发时,我们通常会使用Redis来进行缓存操作。然而,不同版本的Spring Boot的Redis配置会有所不同,会导致我们在进行项目开发时遇到不同的问题。 二、Spring Boot中Redis配置问题分析 1. Sp…

    database 2023年5月22日
    00
  • 4D和AnzoGraph的区别

    4D和AnzoGraph都是目前比较流行的图数据库,但它们在设计理念、数据管理方式等方面存在一些差异。 1. 4D的设计理念 4D是一种基于对象的关系数据库,使用SQL语言进行查询和管理。在4D中,数据是以表格形式存储的,每个表格都可以包含多行数据和多个列。4D在数据管理方面有一定的优势,它提供了一些高级功能,如内置的报表生成和表单设计工具。 2. Anzo…

    database 2023年3月27日
    00
  • SQLite 和 Couchbase的区别

    SQLite 和 Couchbase 都是主流的数据库系统,但它们在设计和使用场景上有很大的不同。 SQLite 什么是SQLite SQLite 是一个轻量级的开源关系型数据库系统,它使用 SQL 语言来管理和操作数据。它的设计理念是提供一个嵌入式的、零配置的、事务性的 SQL 数据库引擎。 特点 轻量级:SQLite 的核心代码只有几十万行,可以被嵌入到…

    database 2023年3月27日
    00
  • Springboot项目中运用vue+ElementUI+echarts前后端交互实现动态圆环图(推荐)

    以下是 “Springboot项目中运用vue+ElementUI+echarts前后端交互实现动态圆环图(推荐)”的完整攻略。 1. 环境搭建 首先需要安装好Node.js和npm, 安装好之后,通过npm安装vue-cli, 并用命令vue init webpack projectname创建项目。 npm install -g vue-cli vue …

    database 2023年5月21日
    00
  • 人人都能看懂的 6 种限流实现方案(纯干货)

    人人都能看懂的 6 种限流实现方案(纯干货) 为什么要限流 限流是指对系统中的请求进行控制,限制流量到达一定的阈值,从而保护系统的可用性、稳定性和安全性。在高并发场景、恶意攻击、突发事件等情况下,未实现限流可能导致服务器崩溃、数据库宕机、带宽溢出等问题。因此,限流是保障系统稳定可靠的重要手段。 6 种限流实现方案 1. 固定窗口计数器算法 这是最基本的实现方…

    database 2023年5月22日
    00
  • mysql字符集相关总结

    MySQL字符集相关总结 MySQL字符集是指在数据库中使用的字符编码方式,包括每个字符所占的位数、用于存储的字节及其排序规则等方面。正确选择和设置字符集对于保障数据库数据的完整性及避免乱码问题具有非常重要的意义。 MySQL字符集类型 MySQL字符集主要分为以下几种类型: ASCII:一种只有128个字符的字符集,包括数字、字母和一些标点符号等。 Uni…

    database 2023年5月22日
    00
合作推广
合作推广
分享本页
返回顶部