CentOS修改MySql数据库目录datadir

本文介绍如何将MySQL数据库从默认位置迁移到自定义位置,并详细说明了每个步骤,包括停止服务、复制目录、调整配置文件等。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

service mysqld stop        //停止mysql服务
cp -rf /var/lib/mysql /home/data     //复制默认的mysql数据库目录
chown -R mysql:mysql /home/data   //给新的目录授权

//修改my.cnf, 为确保没问题, 可以将以前的配置注释掉或者cp一份
vi /etc/my.cnf
datadir=/home/data
socket=/home/data/mysql.sock


//修改mysqld
vi /etc/init.d/mysqld
datadir "/home/data"


service mysqld start   //启动mysql


如果启动失败, 使用setenforce 0命令,然后再启动一次试试
----------------------------------------------------------
启动成功之后, 如果使用mysql -u root -p 连接提示/var/lib/mysql/mysql.sock什么错误的话, 那么请修改下面这些配置, 就可以连接了.
vi /etc/my.cnf

[mysql.server]
user=mysql
datadir=/home/data
[client]
socket=/home/data/mysql.sock


### 安装 MySQL 并设置自定义数据文件目录 #### 准备工作 为了确保 MySQL 数据库能够正常运行于 CentOS 上,并且其数据文件存放在指定的自定义目录中,需先创建该目标目录并调整相应的权限。 ```bash mkdir -p /home/work/data/{data,log,tmp} chown -R mysql:mysql /home/work/data/ ``` 上述命令用于建立 `/home/work/data` 文件夹及其子文件夹 `data`, `log`, 和 `tmp`,同时赋予这些文件夹给 `mysql` 用户和用户组所有[^1]。 #### 修改配置文件 编辑 MySQL 的初始化脚本或配置文件以指明新的数据存放路径: 对于通过包管理器安装的情况,在 `/etc/my.cnf` 或者 `/etc/mysql/my.cnf` 中加入如下内容: ```ini [mysqld] datadir=/home/work/data/data socket=/home/work/data/mysql.sock ``` 而对于源码编译安装,则可以在启动服务前修改 `/etc/init.d/mysql` 脚本中的相应变量值,例如: ```bash basedir=/usr/local/mysql datadir=/home/work/data/data mysqld_pid_file_path=/home/work/data/mysql.pid ``` 这一步骤确保了 MySQL 启动时会读取到新设定的数据存储位置以及 PID 文件的位置[^3]。 #### 迁移现有数据 (如果适用) 如果有已经存在的 MySQL 实例,那么可以按照以下方式迁移旧有数据至新的位置: 停止当前正在运行的服务: ```bash systemctl stop mysqld.service ``` 移动原有数据文件夹到新的目的地: ```bash mv /var/lib/mysql/* /home/work/data/data/ ``` 注意:此操作假设原数据位于默认路径 `/var/lib/mysql` 下。完成之后再次确认权限无误后再继续下一步。 重新加载 MySQL 配置和服务状态: ```bash systemctl daemon-reload systemctl start mysqld.service ``` 最后验证一切是否按预期工作,尝试连接数据库服务器查看是否有任何异常提示。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值