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

CentOS7安装MySQL5.7到指定数据目录

CentOS7安装MySQL5.7到指定数据目录

在 CentOS 7 中将 MySQL 5.7 安装到指定目录(例如 /opt/mysql)的详细步骤:

一、准备工作
  1. 卸载旧版本 MySQL/MariaDB
#卸载 MySQL
sudo yum remove mysql-server mysql-client mysql-common
sudo rm -rf /var/lib/mysql

#检查并卸载 MariaDB
sudo yum list installed | grep mariadb
或
rpm -qa | grep mariadb

sudo yum remove mariadb-libs -y

#删除残留文件
sudo rm -rf /var/lib/mysql
sudo rm -rf /etc/my.cnf
二、通过 YUM 安装 MySQL 5.7
  1. 添加 MySQL YUM 仓库
sudo rpm -Uvh https://dev.mysql.com/get/mysql57-community-release-el7-11.noarch.rpm
  1. 安装 MySQL 服务端和客户端
sudo yum install mysql-community-server -y
  1. 创建目标目录
#创建目录并设置权限(假设目标目录为 /opt/mysql)
sudo mkdir -p /opt/mysql/data
sudo chown -R mysql:mysql /opt/mysql  # 确保目录属主为 mysql 用户
sudo chmod 750 /opt/mysql/data        # 设置目录权限

4.迁移数据目录到指定路径

  • 一种方式(推荐):
    安装完成后,先不要启动mysql,先去配置mysql(跳到步骤三——往下操作), 配置完成后,在启动mysql即可。

  • 另一种方式:
    启动了mysql, 通过创建软连接的方式(即采用了默认数据目录,通过软连接到其他目录)

启动 MySQL 服务

sudo systemctl start mysqld

停止 MySQL 服务

sudo systemctl stop mysqld

复制原数据文件到新目录

#将默认数据目录 /var/lib/mysql 迁移到 /opt/mysql/data
sudo rsync -av /var/lib/mysql/ /opt/mysql/data/
或者
sudo mv /var/lib/mysql/* /opt/mysql/data/

删除原数据目录(备份后可删除)

sudo rm -rf /var/lib/mysql

创建软链接(兼容性操作)

sudo ln -s /opt/mysql/data /var/lib/mysql

这样就不需要后续的配置,即采用了默认数据目录,通过软连接到其他目录。

三、配置 MySQL
  1. 修改配置文件 /etc/my.cnf
sudo vi /etc/my.cnf
#添加或修改以下配置项:

[mysqld]
datadir = /opt/mysql/data   # 关键:指定数据目录
socket = /opt/mysql/mysql.sock

[client]
socket = /opt/mysql/mysql.sock
  1. 更新 SELinux 上下文(可选,可以禁用SELINUX=disabled)
#查看SELinux是否启用
sestatus
或
cat /etc/selinux/config

SELINUX=enforcing:表示 SELinux 是启用并应用策略的。
SELINUX=permissive:表示 SELinux 是启用的,但仅记录违规而不强制执行策略。
SELINUX=disabled:表示 SELinux 是禁用的。

#修改目录安全上下文
sudo semanage fcontext -a -t mysqld_db_t "/opt/mysql/data(/.*)?"
sudo restorecon -Rv /opt/mysql/data
四、调整 systemd 服务配置
  1. 修改 systemd 服务文件
sudo vi /usr/lib/systemd/system/mysqld.service
找到以下行并修改:

ExecStart=/usr/sbin/mysqld --daemonize --pid-file=/var/run/mysqld/mysqld.pid $MYSQLD_OPTS
改为(添加 --datadir 参数):

ExecStart=/usr/sbin/mysqld --daemonize --datadir=/opt/mysql/data --pid-file=/var/run/mysqld/mysqld.pid $MYSQLD_OPTS
  1. 重新加载 systemd 配置
sudo systemctl daemon-reload
五、启动 MySQL 并验证
  1. 启动服务
sudo systemctl start mysqld
sudo systemctl enable mysqld
  1. 检查数据目录是否生效
mysqladmin -u root -p variables | grep datadir
输出应显示:

| datadir                  | /opt/mysql/data/ 
  1. 验证服务状态
sudo systemctl status mysqld
六、处理首次登录和安全配置
  1. 获取临时 root 密码
sudo grep 'temporary password' /var/log/mysqld.log
  1. 运行安全配置向导
sudo mysql_secure_installation
按提示操作:

输入临时密码

设置新密码

移除匿名用户(Y)

禁止远程 root 登录(Y)

删除测试数据库(Y)

刷新权限表(Y)
七、开放防火墙(可选)
sudo firewall-cmd --zone=public --add-port=3306/tcp --permanent
sudo firewall-cmd --reload
八、验证远程访问(可选)
  1. 创建远程用户
CREATE USER 'remoteuser'@'%' IDENTIFIED BY 'YourPassword123!';
GRANT ALL PRIVILEGES ON *.* TO 'remoteuser'@'%';
FLUSH PRIVILEGES;
  1. 修改配置文件允许远程
#/etc/my.cnf
[mysqld]
bind-address = 0.0.0.0
九、故障排查
  1. 启动失败检查日志
sudo tail -f /var/log/mysqld.log
  1. 权限问题处理
#确保目录属主正确
sudo chown -R mysql:mysql /opt/mysql
sudo chmod 750 /opt/mysql/data
  1. 重置 SELinux 上下文
sudo restorecon -Rv /opt/mysql/data
十、最终验证
#登录 MySQL
mysql -u root -p
--执行 SQL 查看数据目录
SHOW VARIABLES LIKE 'datadir';
--应输出:

+---------------+-------------------+
| Variable_name | Value             |
+---------------+-------------------+
| datadir       | /opt/mysql/data/  |
+---------------+-------------------+

通过以上步骤,您已成功将 MySQL 5.7 安装到自定义目录 /opt/mysql。关键点在于正确迁移数据文件、修改配置文件、更新 SELinux 策略及调整 systemd 服务配置。

相关文章:

  • 低代码开发平台(Low-Code)简要介绍
  • 客户端的ip和端口的发送,存储位置和服务端的ip和端口的绑定
  • MySQL知识点总结(二十)
  • 【Python项目】基于深度学习的车辆特征分析系统
  • pytest结合allure
  • 中级系统运维工程师
  • 【江科大STM32】TIM输入捕获模式PWMI模式测频率
  • css梯形tab
  • Java学习笔记-文件命名
  • 华为:Wireshark的OSPF抓包分析过程
  • 如何使用SSH命令安全连接并转发端口到远程服务器
  • K8S学习之基础八:k8s中pod的状态和重启策略
  • 数据库索引的作用:提升数据检索效率的关键
  • 如何使用 LLM 生成的术语自动在搜索应用程序上构建 autocomplete 功能
  • 算法进阶——二分
  • 在线教育网站项目第二步 :学习roncoo-education,服务器为ubuntu22.04.05
  • MQ保证消息的顺序性
  • 【VUE】第一期——初使用、基本语法
  • 【已解决】docker安装、换源及使用 docker: Get https://registry-1.docker.io/v2/: net/http: request canceled
  • 以太网通讯
  • 网站模块如何添加/网站设计报价方案
  • 真人性做爰video网站/宁德市医院东侨院区
  • 政务网站建设规范/微信怎么推广
  • 做推广类门户网站怎么样/网上开店如何推广自己的网店
  • 怎么查询网站是谁做的/短视频营销策略
  • 网站建立与推广/优化方案模板