同一台服务器上面安装多个mysql数据库

本文涉及的产品
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
RDS MySQL Serverless 高可用系列,价值2615元额度,1个月
云数据库 RDS PostgreSQL,高可用系列 2核4GB
简介: 【前言】测试环境中经常需要多台mysql数据库来进行各种环境和场景的模拟,由于测试环境中的资源一般都是比较有限的,也就需要在一台服务器上面搭建多个mysql数据库来完成测试的需求。

【前言】测试环境中经常需要多台mysql数据库来进行各种环境和场景的模拟,由于测试环境中的资源一般都是比较有限的,也就需要在一台服务器上面搭建多个mysql数据库来完成测试的需求。本文档介绍在Centos6.4的环境中安装多个mysql 5.7数据库的操作方法。

【1】mysql数据库软件的安装

mysql数据库软件官方提供了三种的安装文件和方法,如下:

  • RPM方式安装
  • 二进制方式安装
  • 源码编译安装

虽然源码安装的方式比较麻烦,但是个人还是习惯用源码的方案安装,mysql5.7的安装跟早起5.5的安装方式和步骤也几乎一样所以这里就不再说明了。


【2】创建多个数据库

软件的安装完成其实都是一样的,就是创建数据库的时候有点不一样。

2.1 进行数据文件目录的规划,本环境安装了5个数据库,在/data下面创建5个文件夹,并用端口号区分


点击(此处)折叠或打开

  1. [root@db01 data]# pwd
  2. /data
  3. [root@db01 data]# ll
  4. drwxr-xr-x. 6 mysql mysql 4096 7月 8 05:00 mysql3306
  5. drwxr-xr-x. 6 mysql mysql 4096 7月 20 21:46 mysql3307
  6. drwxr-xr-x. 7 mysql mysql 4096 7月 20 21:46 mysql3308
  7. drwxr-xr-x. 6 mysql mysql 4096 7月 20 21:46 mysql3309
  8. drwxr-xr-x. 5 mysql mysql 4096 7月 20 21:46 mysql3310
2.2 进行参数文件的配置


点击(此处)折叠或打开

  1. [root@db01 data]# vi /etc/my.cnf

  2. [mysqld_multi]
  3. mysqld = /usr/local/mysql/bin/mysqld_safe
  4. #basedir = /usr/local/mysql
  5. mysqladmin = /usr/local/mysql/bin/mysqladmin
  6. user = mysql
  7. pass = mysql
  8. #password = mysql
  9. #bindir = /usr/local/mysql/bin

  10. [mysqld7]
  11. port = 3307
  12. socket = /tmp/mysql.sock7
  13. pid-file = /data/mysql3307/hostname.pid7
  14. datadir = /data/mysql3307
  15. user = mysql
  16. basedir = /usr/local/mysql
  17. log-bin = /data/mysql3307/bin-log
  18. server_id = 7
  19. gtid_mode = ON
  20. enforce-gtid-consistency=TRUE
  21. log_slave_updates= ON
  22. #skip-grant-tables

  23. [mysqld8]
  24. socket = /tmp/mysql.sock8
  25. port = 3308
  26. pid-file = /data/mysql3308/hostname.pid8
  27. datadir = /data/mysql3308
  28. user = mysql
  29. basedir = /usr/local/mysql
  30. #skip-grant-tables
  31. log-bin = /data/mysql3308/bin-log
  32. server_id=8
  33. gtid_mode=ON
  34. enforce-gtid-consistency=TRUE
  35. log_slave_updates= ON

  36. [mysqld9]
  37. socket = /tmp/mysql.sock9
  38. port = 3309
  39. pid-file = /data/mysql3309/hostname.pid9
  40. datadir = /data/mysql3309
  41. user = mysql
  42. basedir = /usr/local/mysql
  43. #skip-grant-tables
  44. log-bin = /data/mysql3309/bin-log
  45. server_id= 9
  46. gtid_mode=ON
  47. enforce-gtid-consistency=TRUE
  48. log_slave_updates= ON

  49. [mysqld10]
  50. socket = /tmp/mysql.sock10
  51. port = 3310
  52. pid-file = /data/mysql3310/hostname.pid10
  53. datadir = /data/mysql3310
  54. user = mysql
  55. basedir = /usr/local/mysql
  56. #skip-grant-tables
  57. log-bin = /data/mysql3310/bin-log
  58. server_id= 10
  59. gtid_mode=ON
  60. enforce-gtid-consistency=TRUE
  61. log_slave_updates= ON


2.3 创建数据库,创建的过程中需要记录数据库的初始密码

依次创建其他数据库,记录默认的随机密码

  • mysql3307的安装

点击(此处)折叠或打开

  1. [root@db01 data]# /usr/local/mysql/bin/mysqld --initialize --datadir=/data/mysql3307
  2. 2017-07-20T14:31:01.890314Z 0 [Warning] TIMESTAMP with implicit DEFAULT value is deprecated. Please use --explicit_defaults_for_timestamp server option (see documentation for more details).
  3. 2017-07-20T14:31:09.081679Z 0 [Warning] InnoDB: New log files created, LSN=45790
  4. 2017-07-20T14:31:09.626403Z 0 [Warning] InnoDB: Creating foreign key constraint system tables.
  5. 2017-07-20T14:31:09.867983Z 0 [Warning] No existing UUID has been found, so we assume that this is the first time that this server has been started. Generating a new UUID: 12d65efe-6d58-11e7-9d39-000c29a755d3.
  6. 2017-07-20T14:31:09.873982Z 0 [Warning] Gtid table is not ready to be used. Table 'mysql.gtid_executed' cannot be opened.
  7. 2017-07-20T14:31:09.923044Z 1 [Note] A temporary password is generated for root@localhost: wAQ*p>.O:4,p
  • mysql3308的安装
  1. [root@db01 mysql3307]# cat auto.cnf
  2. [auto]
  3. server-uuid=12d65efe-6d58-11e7-9d39-000c29a755d3
  4. [root@db01 mysql3307]# /usr/local/mysql/bin/mysqld --initialize --datadir=/data/mysql3308
  5. 2017-07-20T14:32:36.027225Z 0 [Warning] TIMESTAMP with implicit DEFAULT value is deprecated. Please use --explicit_defaults_for_timestamp server option (see documentation for more details).
  6. 2017-07-20T14:32:38.601806Z 0 [Warning] InnoDB: New log files created, LSN=45790
  7. 2017-07-20T14:32:39.071963Z 0 [Warning] InnoDB: Creating foreign key constraint system tables.
  8. 2017-07-20T14:32:39.167438Z 0 [Warning] No existing UUID has been found, so we assume that this is the first time that this server has been started. Generating a new UUID: 48106897-6d58-11e7-a1b9-000c29a755d3.
  9. 2017-07-20T14:32:39.172770Z 0 [Warning] Gtid table is not ready to be used. Table 'mysql.gtid_executed' cannot be opened.
  10. 2017-07-20T14:32:39.212540Z 1 [Note] A temporary password is generated for root@localhost: Ak3XwQpb=ta0
  • mysql3309的安装
  1. [root@db01 mysql3307]# /usr/local/mysql/bin/mysqld --initialize --datadir=/data/mysql3309
  2. 2017-07-20T14:33:32.801680Z 0 [Warning] TIMESTAMP with implicit DEFAULT value is deprecated. Please use --explicit_defaults_for_timestamp server option (see documentation for more details).
  3. 2017-07-20T14:33:35.102950Z 0 [Warning] InnoDB: New log files created, LSN=45790
  4. 2017-07-20T14:33:35.443411Z 0 [Warning] InnoDB: Creating foreign key constraint system tables.
  5. 2017-07-20T14:33:35.557451Z 0 [Warning] No existing UUID has been found, so we assume that this is the first time that this server has been started. Generating a new UUID: 69acd736-6d58-11e7-a436-000c29a755d3.
  6. 2017-07-20T14:33:35.562713Z 0 [Warning] Gtid table is not ready to be used. Table 'mysql.gtid_executed' cannot be opened.
  7. 2017-07-20T14:33:35.607109Z 1 [Note] A temporary password is generated for root@localhost: sDXL5hh61I>R
  • 数据库mysql3310

点击(此处)折叠或打开

  1. [root@db01 mysql3307]# /usr/local/mysql/bin/mysqld --initialize --datadir=/data/mysql3310
  2. 2017-07-20T14:34:14.881243Z 0 [Warning] TIMESTAMP with implicit DEFAULT value is deprecated. Please use --explicit_defaults_for_timestamp server option (see documentation for more details).
  3. 2017-07-20T14:34:17.227399Z 0 [Warning] InnoDB: New log files created, LSN=45790
  4. 2017-07-20T14:34:17.744012Z 0 [Warning] InnoDB: Creating foreign key constraint system tables.
  5. 2017-07-20T14:34:17.904000Z 0 [Warning] No existing UUID has been found, so we assume that this is the first time that this server has been started. Generating a new UUID: 82ea694b-6d58-11e7-a566-000c29a755d3.
  6. 2017-07-20T14:34:17.908498Z 0 [Warning] Gtid table is not ready to be used. Table 'mysql.gtid_executed' cannot be opened.
  7. 2017-07-20T14:34:17.923365Z 1 [Note] A temporary password is generated for root@localhost: Rq4*Teq#l;Ve

【3】修改数据库的初始密码

先启动数据库


  1. [root@db01 mysql3307]# /usr/local/mysql/bin/mysqld_multi start
  2. 修改默认密码
  3. [root@db01 mysql3307]# mysqladmin -u root -p -P 3307 -S /tmp/mysql.sock7 password
  4. Enter password: 输入默认密码
  5. New password:
  6. Confirm new password:
  7. Warning: Since password will be sent to server in plain text, use ssl connection to ensure password safety.


登录数据库

[root@db01 mysql3307]# mysql -P 3307 -S /tmp/mysql.sock7 -u root p


用默认的密码登录会有以下的提示信息:

点击(此处)折叠或打开

  1. mysql> show databases;
  2. ERROR 1820 (HY000): You must reset your password using ALTER USER statement before executing this statement.

【4】设置mysqld_multi stop的关闭权限

默认的情况下,不能通过mysqld_multi关闭数据库,需要进行额外的设置,步骤如下:

创建mysql关闭的用户
点击( 此处 )折叠或打开
  1. [root@db01 mysql3307]# mysql -u root -p -P 3310 -S /tmp/mysql.sock10
  2. Enter password:
  3. mysql> grant shutdown on *.* to 'mysql'@'localhost' identified by 'mysql';
  4. mysql> flush privileges
设置参数文件的账户
点击( 此处 )折叠或打开
  1. [root@db01 mysql3307]# cat /etc/my.cnf
  2. [mysqld_multi]
  3. mysqld = /usr/local/mysql/bin/mysqld_safe
  4. #basedir = /usr/local/mysql
  5. mysqladmin = /usr/local/mysql/bin/mysqladmin
  6. user = mysql
  7. pass = mysql

通过以上的操作,便完成了在单台服务器上面安装多个mysql数据库的操作;

附加:常用的操作语句

/usr/local/mysql/bin/mysqld_multi start #启动所有的数据库

/usr/local/mysql/bin/mysqld_multi start 7 #启动单台数据库

/usr/local/mysql/bin/mysqld_multi stop #关闭所有的数据库

/usr/local/mysql/bin/mysqld_multi stop 7 #关闭单台数据库

相关实践学习
每个IT人都想学的“Web应用上云经典架构”实战
本实验从Web应用上云这个最基本的、最普遍的需求出发,帮助IT从业者们通过“阿里云Web应用上云解决方案”,了解一个企业级Web应用上云的常见架构,了解如何构建一个高可用、可扩展的企业级应用架构。
MySQL数据库入门学习
本课程通过最流行的开源数据库MySQL带你了解数据库的世界。   相关的阿里云产品:云数据库RDS MySQL 版 阿里云关系型数据库RDS(Relational Database Service)是一种稳定可靠、可弹性伸缩的在线数据库服务,提供容灾、备份、恢复、迁移等方面的全套解决方案,彻底解决数据库运维的烦恼。 了解产品详情: https://www.aliyun.com/product/rds/mysql 
相关文章
|
22天前
|
Ubuntu 关系型数据库 MySQL
MySQL源码编译安装
本文详细介绍了MySQL 8.0及8.4版本的源码编译安装全过程,涵盖用户创建、依赖安装、cmake配置、编译优化等步骤,并提供支持多Linux发行版的一键安装脚本,适用于定制化数据库部署需求。
111 4
MySQL源码编译安装
|
22天前
|
Ubuntu 关系型数据库 MySQL
MySQL二进制包安装
本文详细介绍了在多种Linux系统上通过二进制包安装MySQL 8.0和8.4版本的完整过程,涵盖用户创建、glibc版本匹配、程序解压、环境变量配置、初始化数据库及服务启动等步骤,并提供支持多发行版的一键安装脚本,助力高效部署MySQL环境。
141 4
MySQL二进制包安装
|
22天前
|
安全 关系型数据库 MySQL
MySQL包安装 -- SUSE系列(离线RPM包安装MySQL)
本文详细介绍在openSUSE系统上通过离线RPM包安装MySQL 8.0和8.4版本的完整步骤,包括下载地址、RPM包解压、GPG密钥导入、使用rpm或zypper命令安装及服务启动验证,涵盖初始密码获取与安全修改方法,适用于无网络环境下的MySQL部署。
240 3
MySQL包安装 -- SUSE系列(离线RPM包安装MySQL)
|
22天前
|
关系型数据库 MySQL Linux
MySQL包安装 -- SUSE系列(SUSE资源库安装MySQL)
本文介绍了在openSUSE系统上通过SUSE资源库安装MySQL 8.0和8.4版本的完整步骤,包括配置国内镜像源、安装MySQL服务、启动并验证运行状态,以及修改初始密码等操作,适用于希望在SUSE系列系统中快速部署MySQL的用户。
123 3
MySQL包安装 -- SUSE系列(SUSE资源库安装MySQL)
|
19天前
|
NoSQL 算法 Redis
【Docker】(3)学习Docker中 镜像与容器数据卷、映射关系!手把手带你安装 MySql主从同步 和 Redis三主三从集群!并且进行主从切换与扩容操作,还有分析 哈希分区 等知识点!
Union文件系统(UnionFS)是一种**分层、轻量级并且高性能的文件系统**,它支持对文件系统的修改作为一次提交来一层层的叠加,同时可以将不同目录挂载到同一个虚拟文件系统下(unite several directories into a single virtual filesystem) Union 文件系统是 Docker 镜像的基础。 镜像可以通过分层来进行继承,基于基础镜像(没有父镜像),可以制作各种具体的应用镜像。
175 5
|
22天前
|
Ubuntu 关系型数据库 MySQL
MySQL包安装 -- Debian系列(离线DEB包安装MySQL)
本文详细介绍了在Ubuntu 24.04、22.04、20.04及Debian 12系统上,通过离线DEB包安装MySQL 8.0和8.4版本的完整步骤。涵盖下载地址、依赖处理、dpkg安装顺序、配置方法及服务启动验证,确保用户可顺利部署MySQL数据库。
226 0
MySQL包安装 -- Debian系列(离线DEB包安装MySQL)
|
22天前
|
运维 Ubuntu 关系型数据库
MySQL包安装 -- Debian系列(Apt资源库安装MySQL)
本文介绍了在Debian系列系统(如Ubuntu、Debian 11/12)中通过APT仓库安装MySQL 8.0和8.4版本的完整步骤,涵盖添加官方源、配置国内镜像、安装服务及初始化设置,并验证运行状态,适用于各类Linux运维场景。
261 0
MySQL包安装 -- Debian系列(Apt资源库安装MySQL)
|
2天前
|
弹性计算 运维 安全
阿里云轻量应用服务器是什么?实例通用型、CPU优化、多公网IP、国际型及容量型什么区别?
阿里云轻量应用服务器(Simple Application Server)是面向个人开发者及中小企业的轻量级云服务,适用于网站搭建、开发测试、小程序后端等场景。按套餐售卖,不支持自定义CPU、内存、带宽等配置,内置WordPress、宝塔面板、LAMP/LNMP等多种应用镜像,支持一键部署。提供通用型、CPU优化型、多公网IP型、国际型和容量型五类套餐,默认200M峰值带宽,操作简单、成本低,适合轻量级应用快速上线。
|
3天前
|
运维 安全 Ubuntu
阿里云渠道商:服务器操作系统怎么选?
阿里云提供丰富操作系统镜像,涵盖Windows与主流Linux发行版。选型需综合技术兼容性、运维成本、安全稳定等因素。推荐Alibaba Cloud Linux、Ubuntu等用于Web与容器场景,Windows Server支撑.NET应用。建议优先选用LTS版本并进行测试验证,通过标准化镜像管理提升部署效率与一致性。
|
4天前
|
存储 监控 安全
阿里云渠道商:云服务器价格有什么变动?
阿里云带宽与存储费用呈基础资源降价、增值服务差异化趋势。企业应结合业务特点,通过阶梯计价、智能分层、弹性带宽等策略优化成本,借助云监控与预算预警机制,实现高效、可控的云资源管理。

推荐镜像

更多