前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >CentOS7 单机配置mysql多实例运行

CentOS7 单机配置mysql多实例运行

作者头像
友儿
发布2024-03-14 09:43:35
2040
发布2024-03-14 09:43:35
举报
文章被收录于专栏:友儿

下载 MySQL 5.7 的安装包

首先,需要从 MySQL 官方网站或其他可靠来源下载 MySQL 5.7 的安装包。确保选择与你的 CentOS 系统架构(如 x86_64)对应的版本。

操作系统内核的版本号

代码语言:javascript
复制
[root@localhost mysql]# uname -r
3.10.0-1160.108.1.el7.x86_64

操作系统的版本信息

代码语言:javascript
复制
NAME="CentOS Linux"
VERSION="7 (Core)"
ID="centos"
ID_LIKE="rhel fedora"
VERSION_ID="7"
PRETTY_NAME="CentOS Linux 7 (Core)"
ANSI_COLOR="0;31"
CPE_NAME="cpe:/o:centos:centos:7"
HOME_URL="https://www.centos.org/"
BUG_REPORT_URL="https://bugs.centos.org/"

CENTOS_MANTISBT_PROJECT="CentOS-7"
CENTOS_MANTISBT_PROJECT_VERSION="7"
REDHAT_SUPPORT_PRODUCT="centos"
REDHAT_SUPPORT_PRODUCT_VERSION="7"

官网下载页面地址

安装

  • 为mysql创建单独的属组、用户、创建安装目录
代码语言:javascript
复制
# 查看用户、组 是否存在
cat /etc/passwd |grep mysql 
cat /etc/group |grep mysql

# 删除用户
userdel mysql

# 创建组
groupadd mysql

# 创建一个名为mysql的系统用户,该用户属于mysql组,不能登录到系统,确保只有数据库服务器可以访问 MySQL 数据库
# -r 表示创建一个系统用户,该用户不能用于登录系统
# -g 指定用户所属的主组
# 指定用户的登录 shell 为 /sbin/nologin,这意味着该用户不能通过 SSH 或控制台登录到系统
useradd -r -g mysql mysql -s /sbin/nologin

# 创建安装目录
mkdir /usr/local/mysql 
  • 下载、解压、移动至安装目录
代码语言:javascript
复制
# 下载mysql 安装包到root 目录
wget -P /root/  https://downloads.mysql.com/archives/get/p/23/file/mysql-5.7.39-linux-glibc2.12-x86_64.tar.gz

# 解压
cd /root/ && tar -zxvf mysql-5.7.39-linux-glibc2.12-x86_64.tar.gz

# 移动到mysql安装目录
mv /root/mysql-5.7.39-linux-glibc2.12-x86_64/*  /usr/local/mysql/

mysql 配置

  • 创建所需目录
代码语言:javascript
复制
# 创建数据存储目录
mkdir -p /usr/local/mysql/data/{3306,3307,3308}

# 创建数据日志目录
mkdir -p /usr/local/mysql/log/

# 创建临时文件目录
mkdir -p /usr/local/mysql/tmp/{3306,3307,3308}

# 创建运行文件目录
mkdir -p /usr/local/mysql/run/
  • 创建、配置文件 vim /etc/my.cnf
代码语言:javascript
复制
[mysqld_safe]
#mysqld=/usr/local/mysql/bin/mysqld_safe
#log-error=/usr/local/mysql/log/mysqld_safe_error.log


[mysqld]
user=mysql
basedir = /usr/local/mysql
explicit_defaults_for_timestamp=1
secure_file_priv=/usr/local/mysql_import_export
tls_version=TLSv1.2
skip-ssl=1


[mysqld_multi]
mysqladmin=/usr/local/mysql/bin/mysqladmin
log=/usr/local/mysql/log/mysqld_multi.log
user=root
password=nz131400

[mysqld3306]
server_id=3306
port=3306
log-bin=/usr/local/mysql/log/mysql-3306-bin
log-error = /usr/local/mysql/log/error-3306.log
tmpdir=/usr/local/mysql/tmp/3306
datadir=/usr/local/mysql/data/3306
socket=/usr/local/mysql/run/mysql-3306.sock
slow_query_log=on
slow_query_log_file =/usr/local/mysql/log/mysql-3306-slow.log
long_query_time=1
pid-file=/usr/local/mysql/mysql-3306.pid



[mysqld3307]
server_id=3307
port=3307
log-bin=/usr/local/mysql/log/mysql-3307-bin
log-error = /usr/local/mysql/log/error-3307.log
tmpdir=/usr/local/mysql/tmp/3307
datadir=/usr/local/mysql/data/3307
socket=/usr/local/mysql/run/mysql-3307.sock
slow_query_log=on
slow_query_log_file =/usr/local/mysql/log/mysql-3307-slow.log
long_query_time=1
pid-file=/usr/local/mysql/mysql-3307.pid
read_only=1

[mysqld3308]
server_id=3308
port=3308
log-bin=/usr/local/mysql/log/mysql-3308-bin
log-error = /usr/local/mysql/log/error-3308.log
tmpdir=/usr/local/mysql/tmp/3308
datadir=/usr/local/mysql/data/3308
socket=/usr/local/mysql/run/mysql-3308.sock
slow_query_log=on
slow_query_log_file =/usr/local/mysql/log/mysql-3308-slow.log
long_query_time=1
pid-file=/usr/local/mysql/mysql-3308.pid
read_only=1


[mysql]
prompt=\\u@\\d \\r:\\m:\\s>
default-character-set=utf8mb4
no-auto-rehash

初始化数据库

红框内的为每个数据库的初始密码,需要自己记住。

代码语言:javascript
复制

# 递归授予安装目录所有权
chown -R mysql:mysql /usr/local/mysql
chmod 644 mysql

# 初始化数据库  记住初始化3306、3307、3308的数据库密码(如上图所示)
/usr/local/mysql/bin/mysqld --defaults-file=/etc/my.cnf --initialize --basedir=/usr/local/mysql/ --datadir=/usr/local/mysql/data/3306

/usr/local/mysql/bin/mysqld --defaults-file=/etc/my.cnf --initialize --basedir=/usr/local/mysql/ --datadir=/usr/local/mysql/data/3307

/usr/local/mysql/bin/mysqld --defaults-file=/etc/my.cnf --initialize --basedir=/usr/local/mysql/ --datadir=/usr/local/mysql/data/3308

# 重新递归授予安装目录所有权
chown -R mysql:mysql /usr/local/mysql

# 递归授予安装目录用户添加读写和执行权限
chmod u+wrx -R /usr/local/mysql

设置环境变量

代码语言:javascript
复制
vim /etc/profile
# 在文件末尾添加下面信息
export PATH=/usr/local/mysql/bin:$PATH
# 刷新环境变量
source /etc/profile

使用mysqld_multi管理多实例

代码语言:javascript
复制
# 使用mysqld_multi启动3306端口的实例 
mysqld_multi start 3306

# 使用mysqld_multi启动全部实例
mysqld_multi start

# 使用mysqld_multi查看实例状态
mysqld_multi report

修改root密码、设置远程访问权限、防火墙放行MySQL监听的端口

代码语言:javascript
复制
# 登录三台mysql,输入初始密码

mysql -uroot -p -h127.0.0.1 -P3306 
mysql -uroot -p -h127.0.0.1 -P3307
mysql -uroot -p -h127.0.0.1 -P3307 

# 修改root密码
alter user root@localhost identified by '123456';

# 设置远程访问权限
use mysql;
update user set user.Host='%' where user.User='root';
flush privileges;

# 防火墙放行MySQL监听的端口

# 查看防火墙服务服务的状态
systemctl status firewalld    

# 启用自启动防火墙服务
systemctl enable firewalld

# 开放3306/tcp,3307/tcp,3308/tcp 端口
firewall-cmd --zone=public --add-port=3306/tcp --permanent
firewall-cmd --zone=public --add-port=3307/tcp --permanent
firewall-cmd --zone=public --add-port=3308/tcp --permanent

# 重启防火墙重
firewall-cmd --reload         

# 其他命令
systemctl start firewalld      # 手动启动防火墙服务

firewall-cmd --list-ports      # 查看已经开放的端口

关闭mysql

代码语言:javascript
复制
mysqladmin -h127.0.0.1 -uroot -p -P3306 shutdown 
 mysqladmin -h127.0.0.1 -uroot -p -P3307 shutdown 
 mysqladmin -h127.0.0.1 -uroot -p -P3308 shutdown 
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 下载 MySQL 5.7 的安装包
  • 安装
  • mysql 配置
  • 初始化数据库
  • 设置环境变量
  • 使用mysqld_multi管理多实例
    • 修改root密码、设置远程访问权限、防火墙放行MySQL监听的端口
      • 关闭mysql
      相关产品与服务
      云数据库 MySQL
      腾讯云数据库 MySQL(TencentDB for MySQL)为用户提供安全可靠,性能卓越、易于维护的企业级云数据库服务。其具备6大企业级特性,包括企业级定制内核、企业级高可用、企业级高可靠、企业级安全、企业级扩展以及企业级智能运维。通过使用腾讯云数据库 MySQL,可实现分钟级别的数据库部署、弹性扩展以及全自动化的运维管理,不仅经济实惠,而且稳定可靠,易于运维。
      领券
      问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档