mysql多实例(三种方法)

目录

一.概述

二.第一种

1.配置

2.启动服务

3.停止服务

4.加入mysql命令路径到PATH变量

三.第二种

1.解压MySQL安装包

2.在mysql目录下创建data目录

3.在data目录下创建二个实例的主目录

4.添加mysql组和mysql组用户

5.初始化四个实例,分别执行

6.为四个实例创建主配置文件my.cnf

7.启动实例

8.修改数据库密码和赋予远程登录权限

四.第三种


一.概述

  • 在一台物理主机上运行多个数据库服务

  • 节约运维成本

  • 提高硬件利用率

  • 多实例配置,需要专用的、支持多实例的Mysql软件。这里对应的软件包是mysql-5.7.24-linux-glibc2.12-x86_64.tar.gz

二.第一种

1.配置

  • 配置一台为多实例数据库服务器,如果已安装mysql,则停止其服务,或将其卸载

# 卸载方法
~]# yum list installed | grep mysql
~]# yum remove -y mysql-community-server
  • 不能存在/etc/my.cnf文件,如果有此文件则移走它

  • 直接解压多实例Mysql软件包

~]# tar -xf mysql-5.7.34-linux-glibc2.12-x86_64.tar.gz 
~]# mv mysql-5.7.34-linux-glibc2.12-x86_64  /usr/local/mysql
  • 编写配置文件

~]# vim /etc/my.cnf
[mysqld_multi]
mysqld = /usr/local/mysql/bin/mysqld_safe
mysqladmin = /usr/local/mysql/bin/mysqladmin
user = root
​
[mysqld1]
datadir = /mysqlmul/mysqld1
port = 3306
log-error = /mysqlmul/mysqld1/mysqld1.err
pid-file = /mysqlmul/mysqld1/mysqld1.pid
socket = /mysqlmul/mysqld1/mysqld1.sock
​
[mysqld2]
datadir = /mysqlmul/mysqld2
port = 3307
log-error = /mysqlmul/mysqld2/mysqld2.err
pid-file = /mysqlmul/mysqld2/mysqld2.pid
socket = /mysqlmul/mysqld2/mysqld2.sock
  • 创建工作目录

[root@mysql1 ~]# mkdir -p /mysqlmul/mysqld{1,2}

2.启动服务

  • 启动第1个实例

~]# export PATH=/usr/local/mysql/bin:$PAT
~]# /usr/local/mysql/bin/mysqld_multi start 1
# 静候启动完成,记录最后一行产生的密码
2021-04-10T03:17:28.637290Z 1 [Note] A temporary password is generated for root@localhost: ,N1j!G1(M/L.
​
# 通过本机socket连接数据库并修改密码
[root@mysql1 ~]# mysql -uroot -p',N1j!G1(M/L.' -S /mysqlmul/mysqld1/mysqld1.sock
mysql> alter user root@'localhost' identified by 'mysql_P@s5';
Query OK, 0 rows affected (0.00 sec)
​
mysql> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| mysql              |
| performance_schema |
| sys                |
+--------------------+
4 rows in set (0.00 sec)
  • 启动第2个实例

[root@mysql1 ~]# /usr/local/mysql/bin/mysqld_multi start 2
# 静候启动完成,记录最后一行产生的密码
2021-04-10T03:28:42.084264Z 1 [Note] A temporary password is generated for root@localhost: &c/ag7j()41A
​
# 通过socket连接并修改密码
[root@mysql1 ~]# mysqladmin -uroot -p'&c/ag7j()41A' -S /mysqlmul/mysqld2/mysqld2.sock password 'mysql_P@s5'
​
# 通过网络连接
[root@mysql1 ~]# mysql -h127.0.0.1 -uroot -pmysql_P@s5 -P3307

3.停止服务

[root@mysql1 ~]# /usr/local/mysql/bin/mysqld_multi --user root --password mysql_P@s5 stop 1

4.加入mysql命令路径到PATH变量

# 临时增加
[root@mysql1 ~]# echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin
[root@mysql1 ~]# export PATH=$PATH:/usr/local/mysql/bin
[root@mysql1 ~]# echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin:/usr/local/mysql/bin
​
# 永久修改PATH环境变量
[root@mysql1 ~]# vim .bash_profile   # 在下方添加
PATH=$PATH:$HOME/bin:/usr/local/mysql/bin
export PATH
[root@mysql1 ~]# source .bash_profile
​
# 停止实例2
[root@mysql1 ~]# mysqld_multi --user root --password mysql_P@s5 stop 2

三.第二种

安装部署 我这里以创建四个MySQL实例为例,监听的端口分别是3307,3308,3309,3310

1.解压MySQL安装包

地址:MySQL :: Download MySQL Community Server (Archived Versions)

~]# tar -zxvf mysql-5.7.34-linux-glibc2.12-x86_64.tar.gz
# 移动并重命名
~]# mv mysql-5.7.34-linux-glibc2.12-x86_64 /usr/local/mysql

2.在mysql目录下创建data目录

~]# cd /usr/local/mysql
~]# mkdir data

3.在data目录下创建二个实例的主目录

~]# cd /usr/local/mysql/data/
~]# mkdir {3306,3307}

4.添加mysql组和mysql组用户

~]# groupadd mysql
~]# useradd -r -g mysql mysql

5.初始化四个实例,分别执行

~]# cd /usr/local/mysql/bin/
~]# ./mysqld --initialize-insecure --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data/3306/ --user=mysql
~]# ./mysqld --initialize-insecure --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data/3307/ --user=mysql

6.为四个实例创建主配置文件my.cnf

~]# cd /usr/local/mysql/data/3307
~]# vim my.cnf
# 主配置文件内容
​
[client]
port=3306
socket=/usr/local/mysql/data/3307/mysql.sock
default_character_set=utf8
​
[mysqld]
port=3306
socket=/usr/local/mysql/data/3307/mysql.sock
datadir=/usr/local/mysql/data/3307
log-error=/usr/local/mysql/data/3307/error.log
pid-file=/usr/local/mysql/data/3307/mysql.pid
character_set_server=utf8
lower_case_table_names=1
autocommit=1

替换不同实例配置文件中的目录名

只要在vi或vim编辑器中执行命令:%s/被替换的目录名/要替换的目录名/g 如:

注意:要在每个实例的主目录中为每个实例都创建主配置文件,且目录名要和实例端口号对应

7.启动实例

~]# cd /usr/local/mysql/bin/
~]# ./mysqld_safe --defaults-file=/usr/local/mysql/data/3306/my.cnf &
~]# ./mysqld_safe --defaults-file=/usr/local/mysql/data/3307/my.cnf &

查看两个实例进程状态

~]# ps -ef | grep mysql

可以看到,端口的MySQL实例都启动成功

8.修改数据库密码和赋予远程登录权限

这里我以端口号为3307的实例为例,其他实例只需修改命令中的端口号就可以了

~]# cd /usr/local/mysql/bin/
~]# ./mysql -u用户名 -p -P端口 -h地址
​
~]# ./mysql -uroot -p -P3307 -h127.0.0.1
# 没有密码直接回车
​
# 执行命令修改密码
> alter user 'root'@'localhost' identified by '密码';
​
# 授予远程登录权限
> grant all privileges on *.* to root@'%' identified by '密码';

四.第三种

搭好的服务器添加多实例

注:这里是根据我的情况添加的多实例,最基本的就是直接创建一个数据目录--->初始化--->拷贝my.cnf文件--->修改内容--->启动放入后台,访问的时候要看自己的数据库是否有远程权限密码等,我这里配置文件有密码的但是没有远程权限,(如果没有在配置文件中写密码,可以远程就直接输入如:./mysql -usystem -p -P3307 -h127.0.0.1-->直接回车-->修改密码)

# 先创建一个存放示例的地方
~]# mkdir -p /data/mysql2/data/
~]# chown mysql:mysql /data/mysql2
# 初始化数据目录
~]# cd /usr/local/mysql/bin/
~]# ./mysqld --initialize-insecure --basedir=/usr/local/mysql --datadir=/data/mysql2/data --user=mysql
# 复制主配置文件内容
~]# cp /etc/my.cnf /etc/my2.cnf
# 修改里面的端口,id,数据目录等等,对应刚刚创建的目录的
# 启动放入后台
~]# /usr/local/mysql/bin/mysqld --defaults-file=/etc/my2.cnf --basedir=/usr/local/mysql --datadir=/data/mysql2/data --plugin-dir=/usr/local/mysql/lib/plugin --user=mysql --log-error=/data/mysql2/error.log --open-files-limit=65535 --pid-file=mysqldb2.pid --socket=/data/mysql2/mysql.sock --port=3307 &
# 查看与关闭
~]# ps -ef | grep mysql | grep -E '3306|3307'
~]# kill [id号]
# 测试登录
~]# cd /usr/local/mysql/bin/
# 登录
~]# mysql -uroot -p -S /data/mysql2/mysql.sock
# 先登录数据库,然后先创建好用户
# 打上链接不然会报错

~]# ln -s  /data/mysql2/mysql.sock /tmp/mysql.sock

注:测试的时候-P选项一定要带上-h否则你就会发现-P任意数都可以

  • 7
    点赞
  • 30
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
安装 MySQL 有以下三种方法: 1. 使用官方安装包:你可以从 MySQL 官方网站上下载适用于你的操作系统的安装包。然后按照官方提供的安装指南执行安装步骤。这种方法比较直接,但需要手动设置一些配置。 2. 使用软件包管理器:大多数操作系统的软件包管理器(如apt、yum、brew等)都提供了 MySQL 的安装选项。你可以使用包管理器来自动下载和安装 MySQL,同时会解决依赖关系和配置问题。 - 在 Ubuntu 上,你可以使用以下命令安装 MySQL: ``` sudo apt update sudo apt install mysql-server ``` - 在 CentOS 上,你可以使用以下命令安装 MySQL: ``` sudo yum update sudo yum install mysql-server ``` - 在 macOS 上,你可以使用 Homebrew 来安装 MySQL: ``` brew update brew install mysql ``` 3. 使用容器化技术:你可以使用容器化技术(如Docker)来部署 MySQL。这种方法能够快速搭建一个独立的 MySQL 环境,并且不会干扰你的主机系统。 - 首先,你需要安装 Docker,并确保 Docker 服务正在运行。 - 然后,在命令行中运行以下命令来拉取并运行 MySQL 容器: ``` docker run --name mysql-container -e MYSQL_ROOT_PASSWORD=your_password -p 3306:3306 -d mysql ``` 这将在容器中运行一个名为 "mysql-container" 的 MySQL 实例,并将主机的 3306 端口映射到容器的 3306 端口。 以上是安装 MySQL三种常用方法。根据你的需求和技术背景,选择适合你的方法进行安装。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值