CentOS 7.0如何启动多个MySQL实例教程(mysql-5.7.21)

下面就为您详细讲解“CentOS 7.0如何启动多个MySQL实例教程(mysql-5.7.21)”的完整攻略。

准备工作

在开始之前,需要你按照以下步骤进行准备:

  1. 确保你的服务器已经安装了CentOS 7.0系统和MySQL 5.7.21。
  2. 创建一个新的MySQL数据目录,例如:/data/mysql-3307。
  3. 修改MySQL的配置文件my.cnf,在该文件中创建一个新的MySQL实例。

创建新MySQL实例

我们需要创建一个新的MySQL实例,并为其指定新的数据目录和端口号,步骤如下:

  1. 复制MySQL配置文件my.cnf并重命名为my-3307.cnf。
$ sudo cp /etc/my.cnf /etc/my-3307.cnf
  1. 编辑新复制的my-3307.cnf文件,修改MySQL的数据目录和端口号。
# 端口号
port=3307

# 数据目录
datadir=/data/mysql-3307
  1. 创建新的MySQL数据目录。
$ sudo mkdir /data/mysql-3307
  1. 将文件所有者设置为mysql用户。
$ sudo chown -R mysql:mysql /data/mysql-3307
  1. 初始化新的MySQL实例。
$ sudo mysql_install_db --user=mysql --datadir=/data/mysql-3307/

启动新的MySQL实例

完成创建新MySQL实例后,我们需要将其启动。需要注意的是,我们需要为该实例创建一个新的systemd unit文件,以便于在后续操作中进行管理。

  1. 新建一个名为mysql@.service的文件,并编辑此文件。
$ sudo vi /usr/lib/systemd/system/mysql@.service
  1. 在该文件中添加以下内容:
[Unit]
Description=MySQL Database Server
After=network.target

[Service]
User=mysql
Group=mysql
Type=forking
PIDFile=/data/mysql-%i/mysqld.pid
ExecStart=/usr/sbin/mysqld --defaults-file=/etc/my-%i.cnf $MYSQLD_OPTS
ExecStop=/usr/bin/mysqladmin --defaults-file=/etc/my-%i.cnf -uroot -p shutdown
Restart=on-failure

[Install]
WantedBy=multi-user.target
  1. 启动新的MySQL实例。
$ sudo systemctl start mysql@3307
  1. 确认是否启动成功。
$ sudo systemctl status mysql@3307

示例说明

假设现在我们需要同时启动两个MySQL实例,他们的数据库端口分别为3306和3307,我们可以通过如下方式操作:

  1. 复制MySQL配置文件my.cnf并分别重命名为my-3306.cnf和my-3307.cnf。
$ sudo cp /etc/my.cnf /etc/my-3306.cnf
$ sudo cp /etc/my.cnf /etc/my-3307.cnf
  1. 编辑新复制的my-3306.cnf和my-3307.cnf文件,修改MySQL的数据目录和端口号。

对于my-3306.cnf文件:

# 端口号
port=3306

# 数据目录
datadir=/data/mysql-3306

对于my-3307.cnf文件:

# 端口号
port=3307

# 数据目录
datadir=/data/mysql-3307
  1. 分别创建新的MySQL数据目录。
$ sudo mkdir /data/mysql-3306
$ sudo mkdir /data/mysql-3307
  1. 将文件所有者设置为mysql用户。
$ sudo chown -R mysql:mysql /data/mysql-3306
$ sudo chown -R mysql:mysql /data/mysql-3307
  1. 初始化新的MySQL实例。
$ sudo mysql_install_db --user=mysql --datadir=/data/mysql-3306/
$ sudo mysql_install_db --user=mysql --datadir=/data/mysql-3307/
  1. 新建mysql@.service文件并编辑此文件。
$ sudo vi /usr/lib/systemd/system/mysql@.service
  1. 在该文件中添加以下内容:
[Unit]
Description=MySQL Database Server
After=network.target

[Service]
User=mysql
Group=mysql
Type=forking
PIDFile=/data/mysql-%i/mysqld.pid
ExecStart=/usr/sbin/mysqld --defaults-file=/etc/my-%i.cnf $MYSQLD_OPTS
ExecStop=/usr/bin/mysqladmin --defaults-file=/etc/my-%i.cnf -uroot -p shutdown
Restart=on-failure

[Install]
WantedBy=multi-user.target
  1. 启动新的MySQL实例。
$ sudo systemctl start mysql@3306
$ sudo systemctl start mysql@3307
  1. 确认是否启动成功。
$ sudo systemctl status mysql@3306
$ sudo systemctl status mysql@3307

以上就是详细的“CentOS 7.0如何启动多个MySQL实例教程(mysql-5.7.21)”攻略过程。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:CentOS 7.0如何启动多个MySQL实例教程(mysql-5.7.21) - Python技术站

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

相关文章

  • day11-MySql存储结构

    MySql存储结构 参考视频:MySql存储结构 1.表空间 不同的存储引擎在磁盘文件上的结构均不一致,这里以InnoDB为例: CREATE TABLE t(id int(11)) Engine = INNODB; 在新表创建的过程中,InnoDB会在磁盘的data目录下创建与这个表对应的两个文件:t.frm、t.ibd。 t.frm 存储了表结构等信息,…

    MySQL 2023年4月11日
    00
  • mysql中格式化日期详解

    MySQL中格式化日期详解 MySQL中,使用DATE_FORMAT()函数能够将日期、时间类型的数据格式化为我们需要的字符串格式。 语法 DATE_FORMAT(date,format) 其中,date为MySQL中日期、时间类型的字段或表达式,format为日期、时间格式字符串。 格式化语法 格式符号 含义 %Y 四位数字的完整年份 %y 两位数字的年份…

    database 2023年5月22日
    00
  • Ubuntu 安装 JDK8 的两种方法(总结)

    下面我将详细讲解“Ubuntu 安装 JDK8 的两种方法(总结)”的完整攻略。 1. 方法一:通过 apt-get 命令安装 OpenJDK 第一步:更新 apt-get 首先,我们需要更新一下 apt-get,打开终端,输入以下命令: sudo apt-get update 第二步:安装 JDK 输入下面命令安装 JDK: sudo apt-get in…

    database 2023年5月22日
    00
  • Android中数据库常见操作实例分析

    Android中数据库常见操作实例分析 在Android开发中,常常需要使用数据库进行数据的存储和管理。本文将针对Android中的数据库常见操作进行实例分析,包括创建数据库、创建数据表、插入数据、查询数据、删除数据等操作。 创建数据库 创建数据库的过程需要继承SQLiteOpenHelper类,重写onCreate()和onUpgrade()方法。 pub…

    database 2023年5月21日
    00
  • 解决应用程序正常初始化(0xc0000135)失败

    当我们在启动某些应用程序时,有时会收到以下错误提示:“应用程序无法正常启动(0xc0000135)”。这种错误通常是由于缺少某些程序的依赖库或文件导致的。下面是一些可能的解决方法: 1. 安装或重新安装依赖库 某些应用程序需要一些特定的依赖库或文件才能正常启动,如果这些依赖项缺失或损坏,就会导致应用程序无法启动。为了解决这个问题,您可以尝试安装或重新安装所需…

    database 2023年5月21日
    00
  • Redis用在哪里

    1. 高并发缓存/共享session:     UserInfo getUserInfo (long id) {}     取:     userRedisKey = “user:info:” + id;     value = redis.get(userRedisKey );     if (value != null) {            use…

    Redis 2023年4月13日
    00
  • GO实现Redis:GO实现内存数据库(3)

    实现Redis的database层(核心层:处理命令并返回) https://github.com/csgopher/go-redis datastruct/dict/dict.go type Consumer func(key string, val interface{}) bool type Dict interface { Get(key strin…

    Redis 2023年4月10日
    00
  • docker挂载本地目录和数据卷容器操作

    下面是关于Docker挂载本地目录和数据卷容器操作的完整攻略。 1. 挂载本地目录 1.1 操作流程 创建一个本地目录,并在该目录下创建一个index.html文件,内容为“Hello Docker” mkdir /home/user/docker_volume cd /home/user/docker_volume echo "Hello Doc…

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