当前位置: 首页 > news >正文

CentOS启动两个MySQL实例

在 CentOS 7 上配置 MySQL 3406 端口实例

要在同一台服务器上运行另一个 MySQL 实例(3406 端口),需要创建独立的配置文件、数据目录和服务文件。以下是详细步骤:

0.环境

操作系统:CentOS 7

MySQL:5.7.36

1. 创建必要的目录

首先为新实例创建独立的数据和日志目录:

# 创建数据目录
mkdir -p /data/mysql3406
# 创建日志目录
mkdir -p /data/log/mysql3406
# 设置权限
chown -R mysql:mysql /data/mysql3406
chown -R mysql:mysql /data/log/mysql3406

2. 创建新的配置文件

复制并修改原配置文件:

cp /etc/my.cnf /etc/my3406.cnf

编辑新配置文件/etc/my3406.cnf,内容如下:

[mysqld]
port        = 3406
socket      = /data/mysql3406/run/mysqld.sock
user = mysql
log_bin_trust_function_creators = 1
datadir = /data/mysql3406
pid-file = /data/mysql3406/run/mysqld.pid
skip_ssl 
log-error = /data/log/mysql3406/mysql-error.log
slow_query_log = 1
long_query_time = 1
slow_query_log_file = /data/log/mysql3406/mysql-slow.log
lower_case_table_names=1
skip-external-locking
key_buffer_size = 32M
max_allowed_packet = 1024M
table_open_cache = 128
sort_buffer_size = 768K
net_buffer_length = 8K
read_buffer_size = 768K
read_rnd_buffer_size = 512K
myisam_sort_buffer_size = 8M
thread_cache_size = 16
query_cache_size = 16M
query_cache_type = 1
tmp_table_size = 32M
performance_schema_max_table_instances = 1000explicit_defaults_for_timestamp = true
max_connections = 5000
max_connect_errors = 1000
open_files_limit = 65535log-bin = mysql3406-bin
binlog_format=row
expire_logs_days = 10default_storage_engine = InnoDB
innodb_file_per_table = 1
innodb_buffer_pool_size = 128M
innodb_log_file_size = 32M
innodb_log_buffer_size = 8M
innodb_flush_log_at_trx_commit = 1
innodb_lock_wait_timeout = 50symbolic-links=0
sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLEScharacter-set-server=utf8
collation-server=utf8_general_ciserver-id = 2  # 必须与原实例不同[mysqldump]
quick
max_allowed_packet = 16M[mysql]
default-character-set = utf8
socket = /data/mysql3406/run/mysqld.sock
no-auto-rehash[mysql.server]
default-character-set = utf8
socket = /data/mysql3406/run/mysqld.sock[mysqld_safe]
log-error=/data/log/mysql3406/mysqld.log
pid-file=/data/mysql3406/run/mysqld.pid
socket = /data/mysql3406/run/mysqld.sock
default-character-set = utf8[client]
default-character-set = utf8
socket = /data/mysql3406/run/mysqld.sock

3. 创建新的 systemd 服务文件

复制并修改服务文件:

cp /usr/lib/systemd/system/mysqld.service /usr/lib/systemd/system/mysqld3406.service

编辑新服务文件/usr/lib/systemd/system/mysqld3406.service:

[Unit]
Description=MySQL Server (3406)
Documentation=man:mysqld(8)
Documentation=http://dev.mysql.com/doc/refman/en/using-systemd.html
After=network.target
After=syslog.target[Install]
WantedBy=multi-user.target[Service]
User=mysql
Group=mysqlType=forkingPIDFile=/data/mysql3406/run/mysqld.pid# Disable service start and stop timeout logic of systemd for mysqld service.
TimeoutSec=0# Execute pre and post scripts as root
PermissionsStartOnly=true# Needed to create system tables
ExecStartPre=/usr/bin/mysqld_pre_systemd# Start main service - 指定新的配置文件
ExecStart=/usr/sbin/mysqld --defaults-file=/etc/my3406.cnf --daemonize --pid-file=/data/mysql3406/run/mysqld.pid $MYSQLD_OPTS# Use this to switch malloc implementation
EnvironmentFile=-/etc/sysconfig/mysql# Sets open_files_limit
LimitNOFILE = 5000Restart=on-failureRestartPreventExitStatus=1PrivateTmp=false

4. 初始化新的 MySQL 实例

# 初始化数据库(注意要保证datadir目录下为空,否则报错)
mysqld --defaults-file=/etc/my3406.cnf --initialize --user=mysql# 查看初始密码
grep 'temporary password' /data/log/mysql3406/mysql-error.log# 创建run目录
mkdir -p /data/mysql3406/run
# 设置权限
chown -R mysql:mysql /data/mysql3406/run

5. 启动并设置开机启动

# 重新加载systemd配置
systemctl daemon-reload# 启动新实例
systemctl start mysqld3406# 设置开机启动
systemctl enable mysqld3406# 检查状态
systemctl status mysqld3406

6. 登录新实例并修改密码

# 使用初始密码登录(注意此处使用-S指定套接字,否则可能会连接到3306实例)
mysql -u root -P 3406 -S /data/mysql3406/run/mysqld.sock -p# 修改密码
ALTER USER 'root'@'localhost' IDENTIFIED BY 'YourNewPassword';
FLUSH PRIVILEGES;

现在你应该有两个 MySQL 实例在运行:一个在 3306 端口,另一个在 3406 端口,它们各自有独立的数据目录和配置。

http://www.lryc.cn/news/623566.html

相关文章:

  • 校园综合数据分析可视化大屏 -Vue纯前端静态页面项目
  • 【Virtual Globe 渲染技术笔记】6 着色
  • IDE/去读懂STM32CubeMX 时钟配置图(有源/无源晶振、旁路/晶振模式、倍频/分频)
  • Mitt 事件发射器完全指南:200字节的轻量级解决方案
  • 【UEFI系列】ACPI
  • 剑指offer第2版——面试题6:从尾到头打印链表
  • tcp会无限次重传吗
  • API网关实施中典型陷阱
  • 什么叫作数据处理?数据处理和数据治理是什么关系
  • AntSK-PyAPI技术深度解析:打造企业级文本嵌入向量服务的完整指南
  • Ansible 核心功能进阶:自动化任务的灵活控制与管理
  • 为什么TCP连接是三次握手?不是四次两次?
  • day43_2025-08-17
  • Python爬虫-解决爬取政务网站的附件,找不到附件链接的问题
  • k8s-单主机Master集群部署+单个pod部署lnmp论坛服务(小白的“升级打怪”成长之路)
  • BEVFusion(2022-2023年)版本中文翻译解读+相关命令
  • Qt——主窗口 mainWindow
  • Gradle快速入门学习
  • 云计算-K8s 实战:Pod、安全上下文、HPA 、CRD、网络策略、亲和性等功能配置实操指南
  • Android Studio中创建Git分支
  • 记忆翻牌游戏 greenfoot 开发
  • 今日科技热点速递:机遇与技术融合下的创新加速
  • 《MutationObserver深度解构:重塑自动化视觉回归测试的底层逻辑》
  • java基础(十)sql的mvcc
  • CVPR2 2025丨大模型创新技巧:文档+语音+视频“大模型三件套”
  • 原子操作(Atomic Operation):指在执行过程中不会被中断的操作
  • 基础IO_系统文件IO | 重定向【Linux】
  • Rust Web 全栈开发(十三):发布
  • 芯片行业主要厂商
  • shell编程——Makefile