MySQL 多实例安装

本文涉及的产品
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
RDS MySQL Serverless 高可用系列,价值2615元额度,1个月
云数据库 RDS MySQL,高可用系列 2核4GB
简介: 在生产中有时候会遇到一台主机要运行多个MySQL服务器----叫做多实例下面演示多实例的安装首先我们规划下基于二进制安装1、创建mysql用户useradd -r -s /sbin/nologin -d /app/mysql -m mysql##2、解压下载的二进制mariadb包tar xvf mariadb-10.



在生产中有时候会遇到一台主机要运行多个MySQL服务器----叫做多实例

下面演示多实例的安装

首先我们规划下

image

基于二进制安装

1、创建mysql用户

useradd -r -s /sbin/nologin -d /app/mysql -m mysql
#
#


2、解压下载的二进制mariadb包

tar xvf mariadb-10.2.16-linux-x86_64.tar.gz -C /usr/local/
#
#

3、创建软连接

cd /usr/local/
#
ln -s mariadb-10.2.16-linux-x86_64/ mysql
#

4、修改权限

chown -R root.mysql /usr/local/mysql/
#
#

5、环境变量(少了这步也可)

vim /etc/profile.d/mysql.sh
# 
. /etc/profile.d/mysql.sh
#

如果你已经二进制安装了mariadb包,可以从以下开始

指定数据库位置并初始化数据库

1、创建规划图上的目录

mkdir /mysqldb/{3306,3307,3308}/{etc,bin,data,pid,socket,log} -pv
#
#

2、更改主目录mysqldb的属性

chown -R mysql.mysql /mysqldb/
#

3、3306端口

cd /usr/local/mysql/
#
scripts/mysql_install_db  --datadir=/mysqldb/3306/data --user=mysql
#

4、3307端口

scripts/mysql_install_db  --datadir=/mysqldb/3307/data --user=mysql
#

5、3308端口

scripts/mysql_install_db  --datadir=/mysqldb/3308/data --user=mysql
#


修改配置文件

1、复制配置文件

cp /etc/my.cnf /mysqldb/3306/etc/
#

2、编辑配置文件

vim /mysqldb/3306/etc/my.cnf 
#

image

3、把上面的配置文件当模板传送给3307、3308

cp /mysqldb/3306/etc/my.cnf  /mysqldb/3307/etc/
cp /mysqldb/3306/etc/my.cnf  /mysqldb/3308/etc/
#

4、更改07、08配置文件的端口

sed -i 's/3306/3307/g' /mysqldb/3307/etc/my.cnf 
sed -i 's/3306/3308/g' /mysqldb/3308/etc/my.cnf 
#


启动程序

1、把事先编写的启动脚本复制到06、07、08的bin目录下

cp /root/mysqld /mysqldb/3306/bin/
cp /root/mysqld /mysqldb/3307/bin/
cp /root/mysqld /mysqldb/3308/bin/
#

2、更改7、8的启动脚本进程号为自己的

vim /mysqldb/3307/bin/mysqld
#07的改为3307
vim /mysqldb/3308/bin/mysqld
#08的改为3308

image

3、给启动脚本加执行权限

chown +x /mysqldb/3306/bin/mysqld 
chmod +x /mysqldb/3306/bin/mysqld 
chmod +x /mysqldb/3307/bin/mysqld 
chmod +x /mysqldb/3308/bin/mysqld
#

4、启动服务脚本

/mysqldb/3306/bin/mysqld start
#
/mysqldb/3307/bin/mysqld start
#
/mysqldb/3308/bin/mysqld start

5、ss -ntl查看

image

数据库加固

1、给数据库root用户加密码

mysqladmin  -S /mysqldb/3306/socket/mysql.sock password 'centos'
mysqladmin  -S /mysqldb/3307/socket/mysql.sock password 'centos'
mysqladmin  -S /mysqldb/3308/socket/mysql.sock password 'centos'

2、进入数据库删除匿名登陆

mysql -S /mysqldb/3306/socket/mysql.sock -uroot -p
#
select user,host from mysql.user;
#查看有哪些用户
delete from mysql.user where user='';
#删除匿名用户


OK

exit 重新进入 ,如果不行,就重启下服务

附加启动脚本代码

#!/bin/bash

port=3306
mysql_user="root"
mysql_pwd=""
cmd_path="/usr/local/bin"
mysql_basedir="/mysqldb"
mysql_sock="${mysql_basedir}/${port}/socket/mysql.sock"

function_start_mysql()
{
    if [ ! -e "$mysql_sock" ];then
      printf "Starting MySQL...\n"
      ${cmd_path}/mysqld_safe --defaults-file=${mysql_basedir}/${port}/etc/my.cnf  &> /dev/null  &
    else
      printf "MySQL is running...\n"
      exit
    fi
}


function_stop_mysql()
{
    if [ ! -e "$mysql_sock" ];then
       printf "MySQL is stopped...\n"
       exit
    else
       printf "Stoping MySQL...\n"
       ${cmd_path}/mysqladmin -u ${mysql_user} -p${mysql_pwd} -S ${mysql_sock} shutdown
   fi
}


function_restart_mysql()
{
    printf "Restarting MySQL...\n"
    function_stop_mysql
    sleep 2
    function_start_mysql
}

case $1 in
start)
    function_start_mysql
;;
stop)
    function_stop_mysql
;;
restart)
    function_restart_mysql
;;
*)
    printf "Usage: ${mysql_basedir}/${port}/bin/mysqld {start|stop|restart}\n"
esac
相关实践学习
每个IT人都想学的“Web应用上云经典架构”实战
本实验从Web应用上云这个最基本的、最普遍的需求出发,帮助IT从业者们通过“阿里云Web应用上云解决方案”,了解一个企业级Web应用上云的常见架构,了解如何构建一个高可用、可扩展的企业级应用架构。
MySQL数据库入门学习
本课程通过最流行的开源数据库MySQL带你了解数据库的世界。   相关的阿里云产品:云数据库RDS MySQL 版 阿里云关系型数据库RDS(Relational Database Service)是一种稳定可靠、可弹性伸缩的在线数据库服务,提供容灾、备份、恢复、迁移等方面的全套解决方案,彻底解决数据库运维的烦恼。 了解产品详情: https://www.aliyun.com/product/rds/mysql 
目录
相关文章
|
1月前
|
Ubuntu 关系型数据库 MySQL
MySQL源码编译安装
本文详细介绍了MySQL 8.0及8.4版本的源码编译安装全过程,涵盖用户创建、依赖安装、cmake配置、编译优化等步骤,并提供支持多Linux发行版的一键安装脚本,适用于定制化数据库部署需求。
189 4
MySQL源码编译安装
|
1月前
|
Ubuntu 关系型数据库 MySQL
MySQL二进制包安装
本文详细介绍了在多种Linux系统上通过二进制包安装MySQL 8.0和8.4版本的完整过程,涵盖用户创建、glibc版本匹配、程序解压、环境变量配置、初始化数据库及服务启动等步骤,并提供支持多发行版的一键安装脚本,助力高效部署MySQL环境。
198 4
MySQL二进制包安装
|
1月前
|
安全 关系型数据库 MySQL
MySQL包安装 -- SUSE系列(离线RPM包安装MySQL)
本文详细介绍在openSUSE系统上通过离线RPM包安装MySQL 8.0和8.4版本的完整步骤,包括下载地址、RPM包解压、GPG密钥导入、使用rpm或zypper命令安装及服务启动验证,涵盖初始密码获取与安全修改方法,适用于无网络环境下的MySQL部署。
308 3
MySQL包安装 -- SUSE系列(离线RPM包安装MySQL)
|
1月前
|
关系型数据库 MySQL Linux
MySQL包安装 -- SUSE系列(SUSE资源库安装MySQL)
本文介绍了在openSUSE系统上通过SUSE资源库安装MySQL 8.0和8.4版本的完整步骤,包括配置国内镜像源、安装MySQL服务、启动并验证运行状态,以及修改初始密码等操作,适用于希望在SUSE系列系统中快速部署MySQL的用户。
166 3
MySQL包安装 -- SUSE系列(SUSE资源库安装MySQL)
|
1月前
|
NoSQL 算法 Redis
【Docker】(3)学习Docker中 镜像与容器数据卷、映射关系!手把手带你安装 MySql主从同步 和 Redis三主三从集群!并且进行主从切换与扩容操作,还有分析 哈希分区 等知识点!
Union文件系统(UnionFS)是一种**分层、轻量级并且高性能的文件系统**,它支持对文件系统的修改作为一次提交来一层层的叠加,同时可以将不同目录挂载到同一个虚拟文件系统下(unite several directories into a single virtual filesystem) Union 文件系统是 Docker 镜像的基础。 镜像可以通过分层来进行继承,基于基础镜像(没有父镜像),可以制作各种具体的应用镜像。
292 5
|
2月前
|
安全 关系型数据库 MySQL
CentOS 7 yum 安装 MySQL教程
在CentOS 7上安装MySQL 8,其实流程很清晰。首先通过官方Yum仓库来安装服务,然后启动并设为开机自启。最重要的环节是首次安全设置:需要先从日志里找到临时密码来登录,再修改成你自己的密码,并为远程连接创建用户和授权。最后,也别忘了在服务器防火墙上放行3306端口,这样远程才能连上。
489 16
|
1月前
|
Ubuntu 关系型数据库 MySQL
MySQL包安装 -- Debian系列(离线DEB包安装MySQL)
本文详细介绍了在Ubuntu 24.04、22.04、20.04及Debian 12系统上,通过离线DEB包安装MySQL 8.0和8.4版本的完整步骤。涵盖下载地址、依赖处理、dpkg安装顺序、配置方法及服务启动验证,确保用户可顺利部署MySQL数据库。
494 0
MySQL包安装 -- Debian系列(离线DEB包安装MySQL)
|
1月前
|
运维 Ubuntu 关系型数据库
MySQL包安装 -- Debian系列(Apt资源库安装MySQL)
本文介绍了在Debian系列系统(如Ubuntu、Debian 11/12)中通过APT仓库安装MySQL 8.0和8.4版本的完整步骤,涵盖添加官方源、配置国内镜像、安装服务及初始化设置,并验证运行状态,适用于各类Linux运维场景。
499 0
MySQL包安装 -- Debian系列(Apt资源库安装MySQL)
|
1月前
|
Oracle 关系型数据库 MySQL
MySQL包安装 -- RHEL系列(离线RPM包安装MySQL)
本文详细介绍在Rocky、CentOS、AlmaLinux、openEuler等主流Linux系统上,通过离线RPM包安装MySQL 8.0和8.4版本的完整步骤,涵盖下载、依赖处理、rpm/yum安装、服务启动、密码设置等关键环节,适用于多种企业级环境部署需求。
534 0
MySQL包安装 -- RHEL系列(离线RPM包安装MySQL)
|
1月前
|
存储 关系型数据库 MySQL
MySQL介绍和MySQL包安装 -- RHEL系列(Yum资源库安装MySQL)
MySQL是一款开源关系型数据库,高性能、易用、跨平台,支持多种存储引擎,广泛应用于Web开发、企业级应用等领域。本教程介绍其特点、架构及在主流Linux系统中的安装配置方法。
460 0
MySQL介绍和MySQL包安装 -- RHEL系列(Yum资源库安装MySQL)

推荐镜像

更多