Mysql数据库数据目录迁移

1 声明

本文的数据来自网络,部分代码也有所参照,这里做了注释和延伸,旨在技术交流,如有冒犯之处请联系博主及时处理。

2 数据目录迁移简介

一般我们是通过rpm包的方式安装mysql,自己源码编译的较少。但这种方式安装数据库时默认的数据库数据存储目录在/var/lib/mysql或者其它类似的系统级目录。大多数情况下我们的系统盘因为各种原因分配的不够大,这时提前安排数据库的配额或者单独给数据库分配空间就显得尤为重要。这里演示的是怎样将原始的系统级数据目录修改成自定义的目录。

注:当前实验环境 CentOS 8.2、Mysql 8.0.21

1 内核版本:

[root@localhost ~]#

cat /proc/version

Linux version 4.18.0-193.el8.x86_64 (mockbuild@kbuilder.bsys.centos.org) (gcc version 8.3.1 20191121 (Red Hat 8.3.1-5) (GCC)) #1 SMP Fri May 8 10:59:10 UTC 2020

2 redhat版本

[root@localhost ~]#

cat /etc/redhat-release

CentOS Linux release 8.2.2004 (Core)

3 mysql版本

select @@version

3 数据目录迁移步骤

Step 1 首先通过命令查看当前数据库的数据目录

show variables like 'datadir'
-- 当前为/var/lib/mysql/

Step 2 停止mysql数据库服务

service mysqld stop

Step 3 创建新的数据库数据存放目录

mkdir –p /data/mysql

Step 4 将原先的数据库数据目录的数据迁移到新目录内

cp -R /var/lib/mysql/* /data/mysql/

Step 5 将新的数据目录权限赋予mysql用户。

chown mysql:mysql -R /data/mysql/

Step 6 通过mysql的主配置文件找到其它的配置文件(客户端、服务端)

cat /etc/my.cnf

其中服务端配置文件在/etc/my.cnf.d目录下。

Step 7 修改server里的datadir和socket参数,修改部分详见如下粗体:

vi /etc/my.cnf.d/mysql-server.cnf

[mysqld]

datadir=/data/mysql

socket=/data/mysql/mysql.sock

Step 8 启动mysql服务。

service mysqld start

Step 9 再次执行查看数据目录参数的命令查看当前数据目录。

show variables like 'datadir'

Step 10 额外验证(新建个数据库验证数据文件是否存放在/data/mysql内)

CREATE DATABASE IF NOT EXISTS HouseSrc default charset utf8 COLLATE utf8_general_ci;

4 问题

1 启动mysql服务启动报错,报MY-010119错,该日志内容位于/var/log/mysql/mysqld.log文件内。 如下字样错误:

2021-03-29T07:28:38.644603Z 0 [Warning] [MY-010091] [Server] Can't create test file /data/mysql/mysqld_tmp_file_case_insensitive_test.lower-test

2021-03-29T07:28:38.644638Z 0 [Warning] [MY-010159] [Server] Setting lower_case_table_names=2 because file system for /data/mysql/ is case insensitive

2021-03-29T07:28:38.646855Z 0 [ERROR] [MY-010119] [Server] Aborting

解决方法:

彻底禁用SELinux,需要在selinux文件里设置参数SELINUX=disabled后重启linux服务器后再启动mysql服务。

vi /etc/sysconfig/selinux

:查看selinux状态的命令

/usr/sbin/sestatus –v

getenforce

2 mysql命令直连时报错

ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (2)

解决方法:

mysql命令里加上-S参数,即指定sock

mysql -S /data/mysql/mysql.sock -uroot -proot1234

CentoS8 Mysql8 数据目录迁移相关推荐

  1. mysql8如何迁移_mysql8.0.11数据目录迁移的实现

    mysql的存储目录默认是在/var/lib/mysql/,下面将修改默认存储目录. 本文使用mysql8.0.11版本,与mysql8.0.20版本不同, 8.0.20版本的数据迁移请看另一篇博客 ...

  2. Hadoop数据目录迁移

    Hadoop数据目录迁移 @(Hadoop) 随着数据的不断导入和增大,原本集群部署的目录磁盘空间不足了,所以要把hadoop存储数据的位置迁移到另外一个巨大的磁盘上,另外的一个用意是将数据和程序分离 ...

  3. windows下mysql 数据目录迁移 经验

    mysql 安装完成以后,想修改数据目录,以下是容易出错的几个地方 1.将原数据目录迁移到新的目录 2.修改my.ini 时,必须保存为ANSI编码 3.修改datadir 时,必须按照原目录格式用/ ...

  4. CentOs MySQL数据目录迁移

    原mysql数据目录 /data/mysql 新mysql数据目录 /vdb/data/mysql 处理逻辑,将原mysql目录复制到新mysql目录,修改原mysql数据目录名字,在原地址做一个软连 ...

  5. /var/lib/docker/overlay2 占用很大,docker数据目录迁移

    1.查看磁盘使用情况docker system df [root@iZuf6ijiwyd0gil5jyti17Z ~]# docker system df TYPE TOTAL ACTIVE SIZE ...

  6. Mysql修改数据目录(迁移到挂载盘-5.7版本)

    由于目前业务数据日益增加,服务器系统盘空间小,目前已经装不下,而挂载盘还有很大的空间,所以考虑将mysql进行迁移.以下是迁移的过程,只修改了数据目录,数据库本身没有做修改. 尽管已经测试过,但是在迁 ...

  7. 华为云数据盘挂在及mysql数据库数据目录迁移到数据盘

    背景 前篇文章中安装了mysql,但是系统盘只有40G,以后肯定不够用,于是,又增加了200G的数据盘,那此时就需要挂在盘,并需要将mysql的数据存储移动到数据盘中 1.挂载 1)检查磁盘挂在 分明 ...

  8. MySQL数据迁移到新目录_mysql数据目录迁移

    Ubuntu 14.04*64 mysql  Ver 14.14 Distrib 5.5.49, for debian-linux-gnu (x86_64) using readline 6.3 一. ...

  9. linux mysql 数据目录迁移后不生效_mysql 本地数据目录迁移

    需求:mysql的原目录没空间了,需要在本机中迁移mysql目录 mkdir -p /home/mysql3306/data mkdir -p /home/mysql3306/log mkdir -p ...

最新文章

  1. 自增主键为什么不连续_没关紧的水龙头为什么滴水不连续呢?
  2. 《视觉SLAM十四讲》笔记(ch8)
  3. 最佳网页宽度及其实现
  4. 用LuaBridge为Lua绑定C/C++对象
  5. 在ASP.net中的UpdatePanel,弹窗失败解决办法
  6. 小马儿随笔(三)——小标签 大学问
  7. java集合for循环_详解Java中list,set,map的遍历与增强for循环
  8. GitLab Docker 前端开发工具链
  9. python工厂模式看不懂_python模式 工厂模式原理及实例详解
  10. 多线程下的资源同步访问
  11. 使用QueenSono从ICMP提取数据
  12. OpenGL ES2 0 – Iphone开发指引
  13. 短视频无水印解析源码
  14. python处理时间格式转换,将xxxx年xx月xx日转化为xxxx-xx-xx格式
  15. mipi-csi-2解读_CSI:Visual Studio-无法将索引X处的Unicode字符转换为指定的代码页
  16. SpringWebMVC到底是如何工作的?
  17. SSE和WebSocket的用法和比较
  18. 数据链路层 (一)------ 计算机网络(三)
  19. HAUT 1261 地狱飞龙(数值积分)(河南工业大学2017校赛)
  20. 全球与中国汽车线性稳压器市场运营状况及未来前景展望报告2022-2028年版

热门文章

  1. VTK:vtkNew<vtkDenseArray<double>>用法实战
  2. JavaScript实现切换数字的符号switchSign算法(附完整源码)
  3. OpenCASCADE可视化:3D演示之创建3D场景
  4. boost::adaptors::formatted相关的测试程序
  5. boost::python模块实现使用原始指针访问数据的示例
  6. boost::serialization相关的测试程序
  7. 基于Boost.Thread 的测试
  8. boost::ignore_unused的用法实例
  9. 基于Boost::beast模块的小型http服务器
  10. ITK:带有离散高斯滤波器的平滑图像