Loading [MathJax]/jax/output/CommonHTML/config.js
社区首页 >问答首页 >在开发机器上移动MySQL数据目录

在开发机器上移动MySQL数据目录
EN

Stack Overflow用户
提问于 2020-04-01 03:51:03
回答 2查看 2.2K关注 0票数 0

操作系统: Ubuntu 18.04

MySQL版本:用于x86_64上的Linux的版本8.0.19 (MySQL社区服务器- GPL)

我的系统是这样设置的: Ubuntu运行在一个128 1TB的固态硬盘上,另有一个1TB的固态硬盘用于存储。该系统采用Windows10专业版和Ubuntu 18.04双引导。存储驱动器是NTFS格式的。

我想把MySQL数据目录移到存储驱动器上,因为我的操作系统驱动器不够大。我一直在遵循这个网址上的教程:https://www.digitalocean.com/community/tutorials/how-to-move-a-mysql-data-directory-to-a-new-location-on-ubuntu-16-04

在本教程中,我已经讲到了“步骤4-重新启动MySQL”。到目前为止,我已经把所有东西都写成了T,没有漏掉逗号、斜杠等等。所有的事情都是按照描述的那样完成的(我已经检查了无数次以确保这是真的)

当我输入终端命令时

代码语言:javascript
代码运行次数:0
复制
sudo systemctl start mysql

我得到了以下输出

代码语言:javascript
代码运行次数:0
复制
Job for mysql.service failed because the control process exited with error code.
See "systemctl status mysql.service" and "journalctl -xe" for details.

在此输出之后,我在终端中输入以下命令

代码语言:javascript
代码运行次数:0
复制
systemctl status mysql.service

并接收以下输出

代码语言:javascript
代码运行次数:0
复制
● mysql.service - MySQL Community Server
   Loaded: loaded (/lib/systemd/system/mysql.service; enabled; vendor preset: enabled)
   Active: failed (Result: exit-code) since Tue 2020-03-31 22:36:46 CDT; 38s ago
     Docs: man:mysqld(8)
           http://dev.mysql.com/doc/refman/en/using-systemd.html
  Process: 7368 ExecStart=/usr/sbin/mysqld (code=exited, status=1/FAILURE)
  Process: 7316 ExecStartPre=/usr/share/mysql-8.0/mysql-systemd-start pre (code=exited, status=0/SUCCESS)
 Main PID: 7368 (code=exited, status=1/FAILURE)
   Status: "Server startup in progress"
    Error: 13 (Permission denied)

Mar 31 22:36:46 user-desktop mysqld[7368]: 2020-04-01T03:36:46.436713Z 0 [Warning] [MY-010091] [Server] Can't create test file /media/user/storage/mysql_datadir/mysql/mysqld_tmp_file_case_insensitive_test.lower-test
Mar 31 22:36:46 user-desktop mysqld[7368]: 2020-04-01T03:36:46.436796Z 0 [System] [MY-010116] [Server] /usr/sbin/mysqld (mysqld 8.0.19) starting as process 7368
Mar 31 22:36:46 user-desktop mysqld[7368]: 2020-04-01T03:36:46.439912Z 0 [Warning] [MY-010091] [Server] Can't create test file /media/user/storage/mysql_datadir/mysql/mysqld_tmp_file_case_insensitive_test.lower-test
Mar 31 22:36:46 user-desktop mysqld[7368]: 2020-04-01T03:36:46.439923Z 0 [Warning] [MY-010159] [Server] Setting lower_case_table_names=2 because file system for /media/user/storage/mysql_datadir/mysql/ is case insensitive
Mar 31 22:36:46 user-desktop mysqld[7368]: 2020-04-01T03:36:46.439961Z 0 [ERROR] [MY-013276] [Server] Failed to set datadir to '/media/user/storage/mysql_datadir/mysql/' (OS errno: 13 - Permission denied)
Mar 31 22:36:46 user-desktop mysqld[7368]: 2020-04-01T03:36:46.440049Z 0 [ERROR] [MY-010119] [Server] Aborting
Mar 31 22:36:46 user-desktop mysqld[7368]: 2020-04-01T03:36:46.440146Z 0 [System] [MY-010910] [Server] /usr/sbin/mysqld: Shutdown complete (mysqld 8.0.19)  MySQL Community Server - GPL.
Mar 31 22:36:46 user-desktop systemd[1]: mysql.service: Main process exited, code=exited, status=1/FAILURE
Mar 31 22:36:46 user-desktop systemd[1]: mysql.service: Failed with result 'exit-code'.
Mar 31 22:36:46 user-desktop systemd[1]: Failed to start MySQL Community Server.

看到这是一个权限错误(在将原始目录复制到新驱动器时,应该使用-av标签来避免这种错误),我输入了以下命令,以便为整个驱动器提供打开权限。

代码语言:javascript
代码运行次数:0
复制
sudo chmod a+rwx /media/user/storage/

检查我输入的权限

代码语言:javascript
代码运行次数:0
复制
ls -ls /media/user/storage/mysql_datadir

带输出

代码语言:javascript
代码运行次数:0
复制
total 12
12 drwxrwxrwx 1 root root 12288 Mar 31 02:45 mysql

我还确保新数据目录的完整文件路径是小写的,以避免两个文件系统之间的冲突。

我仍然无法启动MySQL。如果能帮上忙我会很感激的。提前谢谢你。

编辑:

代码语言:javascript
代码运行次数:0
复制
namei -mo /media/user/storage/mysql_datadir


f: /media/user/storage/mysql_datadir
 drwxr-xr-x root root /
 drwxr-xr-x root root media
 drwxr-x--- root root user
 drwxrwxrwx root root storage
 drwxrwxrwx root root mysql_datadir
EN

回答 2

Stack Overflow用户

发布于 2020-04-01 07:00:09

根据你的帖子,你似乎有权限问题,以及“数据目录”的所有者必须始终是mysql。

如果mysql服务正在运行,请停止它。

考虑下面的示例: my.cnf看起来:

代码语言:javascript
代码运行次数:0
复制
#
# Original path change to avoid space issue on server
#
datadir=/var/lib/mysql

现在,在my.cnf文件中更改此数据目录,如下所示:

代码语言:javascript
代码运行次数:0
复制
#
# Original path change to avoid space issue on server
#
#datadir=/var/lib/mysql
datadir=/media/user/storage/mysql_datadir

在此之后,检查权限:

cd /media/user/storage/mysql_datadir

ls -al

输出:

drwxr-x--x 40 mysql mysql 4096 Mar 27 00:01 mysql

如果这不是输出,则执行以下命令:

chmod -Rf 0751 /媒体/用户/存储/mysql_datadir

chown -Rf mysql:mysql /media/user/storage/mysql_datadir

最后,现在启动您的mysql服务。

票数 1
EN

Stack Overflow用户

发布于 2020-12-22 22:08:00

我遇到了与Pratik相同的问题/解决方案,在按照说明在

/etc/mysql/mysql.conf.d/mysqld.conf和/etc/parapmor.d/usr.sbin.mysqld

我修改了fstab以挂载到

/mnt

而不是

/media/用户名

并且mysql启动时没有任何错误。除了mysql目录之外,没有其他要设置的权限。我的问题是在Ubuntu18.04上的,一定是/media挂载点有什么特别的地方

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/60963415

复制
相关文章
SpringBoot中的异常处理和参数校验
兄弟们好,这次来跟老铁交流两个问题,异常和参数校验,在说参数校验之前我们先来说异常处理吧,因为后面参数的校验会牵扯到异常处理这块的内容。
一个程序员的成长
2020/04/21
7960
Go 方法接收器:选择值接收器还是指针接收器?
许多 Go 初学者在方法接收器的选择上可能会感到困惑,不知道该选择值接收器还是指针接收器。本文将会对方法接收器进行介绍,并给出如何选择正确方法接收器的指导建议。
陈明勇
2023/05/24
1.1K0
Go 方法接收器:选择值接收器还是指针接收器?
异常和异常处理
Java将程序执行过程中发生的不正常情况成为异常。Java使用统一的异常机制来提供一致的错误报告模型,从而使程序更加健壮。
别团等shy哥发育
2023/02/25
2K0
异常和异常处理
Android基础总结(4)——广播接收器
  在Android中的每个应用程序可以对自己感兴趣的广播进行注册,这样该程序就只会接收自己所关心的广播内容,这些广播可能来自于系统的,也可能来自于其他应用程序的。Android提供了一整套完整的API,允许应用程序自由地发送和接收广播。发送广播就是借助之前了解过的Intent,接收广播则需要用到广播接收器(Broadcast Receiver)。. 1、广播的类型 标准广播:Normal broadcast,是一种完全异步执行的广播,在广播发出之后,所有的广播接收器几乎都会在同一时刻接收到这条广播消息,因
mukekeheart
2018/02/27
1.1K0
Arduino-LoRa-RC-发射器和接收器
3.基于 128x64 KS0108 的 LCD,或任何 128x64 LCD(提供自己的驱动程序代码)。
云深无际
2021/12/01
9030
Arduino-LoRa-RC-发射器和接收器
注册广播接收器registerReceiver
从registerReceiver(BroadcastReceiver receiver,IntentFilter filter)出发
全栈程序员站长
2022/11/17
1.1K0
Spring学习笔记(9)一springMVC/boot全局异常处理和参数校验
我们使用springboot做 Restfull API,希望能全局处理异常,返回自定义错误码。类似:
黄规速
2022/04/14
8370
Spring学习笔记(9)一springMVC/boot全局异常处理和参数校验
JDK1.7新特性(2):异常和可变长参数处理
异常 jdk1.7对try--catch--finally的异常处理模式进行了增强,下面我们依次来看增强的方面。   1. 为了防止异常覆盖,给Throwable类增加了addSuppressed方法,可以将一个异常信息追加到另一个异常信息之后: 1 /** 2 * 这是第一种防止前面异常被覆盖的方法,通过在finally块中判断前面是否有异常抛出 3 * 如果有则最终抛出的异常为原来的异常,没有则最终抛出的异常为finally块中的异常。 4 * 此时只能抛
SecondWorld
2018/03/14
7110
异常和异常调用链
异常Exception 有分为自定义异常和系统默认定义的异常。在每个项目中都会有异常的自定义模块。自定义的异常错误,返回的json 数据格式。异常有异常调用链,处理异常和对外抛出异常。
coderlwz
2023/05/09
5350
DataBinder MethodArgumentTypeMismatchException 前后端参数转化异常
当后端接受参数为int类型,但是前端却误传了一个"" 空的字符串,那么就会报这个DataBinder过程失败。
MickyInvQ
2022/11/06
5600
python抛出异常和捕获异常_Python异常
class Widget: def __init__(self,size=(40,40)): self._size=size def getSize(self): return self._size def resize(self,width,height): if width<0 or height<0:
全栈程序员站长
2022/11/02
2.9K0
用面包和无线接收器黑一台电脑
FreeBuf前些天报道了《利用无线电波窃取计算机密码》,这一种新的且十分富有想象力的方法用以黑进电脑的方法。最重要的是其成本很低,你只需要一块皮塔面包和一个接收器。 耶,你没听错。来自以色列特拉维夫大学的安全研究人员向我们展示了如何通过捕获笔记本电脑的无线电波,提取私密的解密密码。捕获无线电信号窃取电脑系统中的数据并不是什么新鲜事,但是以前要完成这个过程是需要实验室大型设备参与的。 基于以色列研究团队设法将所有组件缩小到只需要一块皮塔面包大小,且所需要组件十分廉价。使用这些便宜的设备,研究团队成员包括
FB客服
2018/02/06
1.1K0
用面包和无线接收器黑一台电脑
分析一个遥控器和接收器的源码
这个头文件是控制主题得代码 //Transmitter Joystick #include <SPI.h> #include <nRF24L01.h> #include <RF24.h> RF24 radio(8, 9); //CE, CSN const byte address[6] = "00001"; char xyData[32] = ""; String Rjoy, Lpot, Rpot, Ljoy; int delaytime = 20; void setup() { Serial
云深无际
2020/11/23
9210
分析一个遥控器和接收器的源码
springboot 使用@Valid校验参数 异常消息处理
依赖 注解 <dependency> <groupId>jakarta.validation</groupId> <artifactId>jakarta.validation-api</artifactId> </dependency> 校验支持,包含以上依赖 <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-validation</artifact
路过君
2021/12/09
9080
中断和异常
异常通常分为2类:一类是编程错误,另外一类就是需要内核处理的异常情况。编程错误,比如程序异常终止,处理这种异常,内核只需要给当前进程发送一个信号即可。而需要内核处理的异常,比如页错误、通过汇编语言指令比如int或sysenter等请求内核服务等,需要内核作出相应的处理。
Tupelo
2022/08/15
1.5K0
Try 和异常
Try 以及异常在c#中是很重要的内容,很多开发人员其实并不是很了解try 和异常。在这篇文章中我将会各大家具体讲解一下Try和异常。
喵叔
2020/09/08
8030
文件和异常
你将学习处理文件,让程序能够快速地分析大量的数据,你将学习错误处理,避免程序在面对意外情形时崩溃;特殊对象,用于管理程序运行时出现的错误;
狼啸风云
2019/01/18
1.5K0
SpringBoot项目实战:自定义异常和统一参数验证(附源码)
在实际开发过程中,不可避免的是需要处理各种异常,异常处理方法随处可见,所以代码中就会出现大量的try {...} catch {...} finally {...} 代码块,不仅会造成大量的冗余代码,而且还影响代码的可读性,所以对异常统一处理非常有必要。为此,我们定义了一个统一的异常类BusinessException。
田维常
2023/08/31
7260
SpringBoot项目实战:自定义异常和统一参数验证(附源码)
MyBatis-MyBatis传入单个string参数异常
解决办法: 在${string}这种写法中,参数一律写为:_parameter。 正确写法应为:
悠扬前奏
2019/05/28
1.3K0
基于大数据和机器学习的Web异常参数检测系统Demo实现
前 言 如何在网络安全领域利用数据科学解决安全问题一直是一个火热的话题,讨论算法和实现的文章也不少。前段时间看到楚安的文章《数据科学在Web威胁感知中的应用》,其中提到如何用隐马尔可夫模型(HMM)建立web参数模型,检测注入类的web攻击。获益匪浅,遂尝试用python实现该算法,并尝试在大数据环境下的部署应用。 算法一般过程 隐马尔可夫模型是一个统计模型,可以利用这个模型解决三类基本问题: 学习问题:给定观察序列,学习出模型参数 评估问题:已知模型参数,评估出观察序列出现在这个模型下的概率
FB客服
2018/02/24
2.7K0
基于大数据和机器学习的Web异常参数检测系统Demo实现

相似问题

注册服务和广播接收器时的异常

13

可能失败的函数的接收器参数和移动语义(强异常安全性)

27

无法启动接收器异常

10

输出参数和异常

50

参数和接收器有什么区别?

24
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档