前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >MySql目录权限已修改为何提升无权限

MySql目录权限已修改为何提升无权限

作者头像
俊才
发布于 2022-11-11 07:26:30
发布于 2022-11-11 07:26:30
1.8K00
代码可运行
举报
文章被收录于专栏:数据库干货铺数据库干货铺
运行总次数:0
代码可运行

近期有同学反馈数据库安装的时候,已确定目录权限已经设置了,但是还是无法安装的情况。解决后,分享一下,帮助大家遇到相同问题时更快定位及解决。

1、案例还原

1.1 创建目录并创建授权

处理完成后,权限如下

1.2 安装数据库

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
 bin/mysqld --defaults-file=/data/mysql/mysql3306/etc/my.cnf  --initialize  --user=mysql

此时报错信息如下:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
mysqld: Can't change dir to '/data/mysql/mysql3306/data/' (Errcode: 13 - Permission denied)
2022-10-29T19:02:30.058126+08:00 0 [Warning] 'NO_ZERO_DATE', 'NO_ZERO_IN_DATE' and 'ERROR_FOR_DIVISION_BY_ZERO' sql modes should be used with strict mode. They will be merged with strict mode in a future release.
2022-10-29T19:02:30.058209+08:00 0 [Warning] 'NO_AUTO_CREATE_USER' sql mode was not set.
2022-10-29T19:02:30.058277+08:00 0 [Note] Ignoring --secure-file-priv value as server is running with --initialize(-insecure) or --bootstrap.
2022-10-29T19:02:30.058317+08:00 0 [Note] bin/mysqld (mysqld 5.7.23-24-log) starting as process 9532 ...
2022-10-29T19:02:30.099203+08:00 0 [Note] --initialize specifed on an existing data directory.
2022-10-29T19:02:30.100460+08:00 0 [ERROR] failed to set datadir to /data/mysql/mysql3306/data/
2022-10-29T19:02:30.105066+08:00 0 [ERROR] Aborting

2022-10-29T19:02:30.105118+08:00 0 [Note] Binlog end
2022-10-29T19:02:30.105494+08:00 0 [Note] bin/mysqld: Shutdown complete

1.3 原因排查

因之前在大数据机器上安装数据库出现过类似情况,因此想到查看上层目录权限,结果果然是上层目录权限问题。

1.4 问题解决

修改目录权限为755

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
chmod 755 mysql/

再进行初始化

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
bin/mysqld --defaults-file=/data/mysql/mysql3306/etc/my.cnf  --initialize  --user=mysql

顺利完成初始化

启动数据库,成功

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
 /usr/local/mysql5.7/bin/mysqld_safe  --defaults-file=/data/mysql/mysql3306/etc/my.cnf

2. 相似案例

使用xtrabackup工具还原数据库时,如果配置文件中的数据目录地址在本机中没创建,那么在还原后启动数据库时也不成功,

2.1 现场还原

xtrabackup工具备份一个数据库实例,然后恢复至一个新实例(此过程略过,直接到还原目录不存在的位置)。

先不创建此目录(通常是写错位置,或创建的时候写错目录名等)

开始还原

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
innobackupex  --defaults-file=/root/my.cnf --move-back ./

可以看到,还原的步骤能顺利进行

数据和日志目录也自动创建了。

此时因为我们的配置文件在/root目录下,启动时,因配置文件中指定了tmp目录,因此在/data/mysql/mysql3307下创建一个空的tmp目录,保证目录均存在。之后再创建一个日志文件。目录权限调整为mysql属主

正常情况下此时启动数据库即可,可惜失败了。

日志文件中也无任何内容。

这种情况,大家可能会想到是权限问题,比如有地方没设置mysql属主等,但其实不然。此情况就如同案例1中那样,是因为目录的操作权限不足导致。修改一下即可,例如:

只需要将/data/mysql目录操作权限修改为755(建议子目录也修改为755,但是不修改也可以正常启动)

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
chmod 755 /data/mysql

子目录未调整

启动数据库

查看进程已启动

日志也正常

3. 小结

数据库对目录及文件的操作权限、属主等的要求是比较严格的,其中一条不符合要求就无法创建或启动数据库,以上案例希望对大家有帮助。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2022-10-29,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 数据库干货铺 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
手把手教你使用 i2c-tools
在嵌入式开发中,有时候需要确认硬件是否正常连接,设备是否正常工作,设备的地址是多少等等,这里我们就需要使用一个用于测试 I2C 总线的工具:i2c-tools。
Jasonangel
2022/05/24
2.7K0
手把手教你使用 i2c-tools
Linux系统驱动之编写APP直接访问EEPROM
从原理图可知,A2A1A0都是0,所以AT24C02的设备地址是:0b1010000,即0x50。
韦东山
2021/12/08
1.4K0
Linux系统驱动之编写APP直接访问EEPROM
Linux系统驱动之编写设备驱动之i2c_driver
分配、设置、注册一个i2c_driver结构体,类似drivers/eeprom/at24.c:
韦东山
2021/12/08
8990
Linux系统驱动之编写设备驱动之i2c_driver
Linux应用开发【第十二章】I2C编程应用开发
​ I2C(Inter-Integrated Circuit BUS)是I2C BUS简称,中文为集成电路总线,是目前应用最广泛的总线之一。和IMX6ULL有些相关的是,刚好该总线是NXP前身的PHILIPS设计。
韦东山
2021/12/15
3.9K0
Linux应用开发【第十二章】I2C编程应用开发
全志平台Tina系统led控制芯片is31fl3236调试(以R18 linux4.4内核为例)
is31fl3236是一款很牛逼的led控制芯片,最多可以控制36通路的led灯,配合智能音箱的麦克风阵列使用,效果非常酷炫,目前市面上很多主流的智能音箱都有用它,比如:天猫精灵、腾讯听听等。
阿志小管家
2024/02/02
1550
Linux TWI开发指南
介绍 Sunxi 平台上 TWI 驱动接口与调试方法,为 TWI 模块开发提供参考。
韦东山
2023/02/25
2.6K0
Linux TWI开发指南
树莓派学习-I2c通信
由于之前参加了学校的飞兆杯的比赛,题目是循迹小车,由于缺乏对于ldc1314芯片使用知识以及个人的能力原因,项目并没有做出来,但是还是学习了很多东西的。
全栈程序员站长
2022/08/25
1.4K0
【玩转ESP32】5、i2c-tools访问i2c设备
这里连接0.96吋 oled,也是比较常用的一个i2c设备,连接在gpio21和gpio22上。
ManInRoad
2021/03/25
2.9K0
Linux系统驱动之SMBus协议
SMBus: System Management Bus,系统管理总线。 SMBus最初的目的是为智能电池、充电电池、其他微控制器之间的通信链路而定义的。 SMBus也被用来连接各种设备,包括电源相关设备,系统传感器,EEPROM通讯设备等等。 SMBus 为系统和电源管理这样的任务提供了一条控制总线,使用 SMBus 的系统,设备之间发送和接收消息都是通过 SMBus,而不是使用单独的控制线,这样可以节省设备的管脚数。 SMBus是基于I2C协议的,SMBus要求更严格,SMBus是I2C协议的子集。
韦东山
2021/12/08
2.5K0
Linux系统驱动之SMBus协议
Linux系统驱动之编写设备驱动之i2c_client
资料下载 coding无法使用浏览器打开,必须用git工具下载: git clone https://e.coding.net/weidongshan/linux/doc_and_source_for_drivers.git 视频观看 百问网驱动大全 编写设备驱动之i2c_client 参考资料: Linux内核文档: Documentation\i2c\instantiating-devices.rst Documentation\i2c\writing-clients.rst Linux内核驱
韦东山
2021/12/08
8940
Linux系统驱动之编写设备驱动之i2c_client
Linux系统驱动之I2C视频介绍
资料下载 coding无法使用浏览器打开,必须用git工具下载: git clone https://e.coding.net/weidongshan/linux/doc_and_source_for_drivers.git 视频观看 百问网驱动大全 I2C视频介绍 参考资料: I2CTools:https://mirrors.edge.kernel.org/pub/software/utils/i2c-tools/ 1. I2C硬件框架 在一个芯片(SoC)内部,有一个或多个I2C控制器 在一个I2
韦东山
2021/12/08
2.4K0
Linux系统驱动之I2C视频介绍
Linux系统驱动之通用驱动i2c-dev分析
要理解这些接口,记住一句话:APP通过I2C Controller与I2C Device传输数据。
韦东山
2021/12/08
2.1K0
Linux系统驱动之通用驱动i2c-dev分析
Linux系统驱动之完善虚拟的I2C_Adapter驱动并模拟EEPROM
在虚拟的I2C_Adapter驱动程序里,只要实现了其中的master_xfer函数,这个I2C Adapter就可以使用了。 在master_xfer函数里,我们模拟一个EEPROM,思路如下:
韦东山
2021/12/08
1.1K0
Linux系统驱动之完善虚拟的I2C_Adapter驱动并模拟EEPROM
I2C总线架构 之 设备驱动
I2C设备驱动是I2C框架中最接近应用层的,其上接应用层,下接I2C核心。也是驱动开发人员需要实现的代码,在此驱动中我们只需负责以下步骤(以ap3216c为例):
开源519
2020/08/17
2K0
Linux的I2C驱动框架分析
总线代表着同类设备需要共同遵守的工作时序,不同的总线对于物理电平的要求是不一样的,对于每个比特的电平维持宽度也是不一样,而总线上传递的命令也会有自己的格式约束。如I2C总线、USB总线、PCI总线等等。以I2C总线为例,在同一组I2C总线上连接着不同的I2C设备。
bigmagic
2020/03/17
5K0
Linux系统驱动之I2C_Adapter驱动框架讲解与编写
i2c_apdater核心是master_xfer函数,它的实现取决于硬件,大概代码如下:
韦东山
2021/12/08
1.8K0
Linux系统驱动之I2C_Adapter驱动框架讲解与编写
Linux I2C驱动入门,建议收藏!
I2C总线对应着/bus下的一条总线,这个i2c总线结构体管理着i2c设备与I2C驱动的匹配,删除等操作,I2C总线会调用i2c_device_match函数看I2C设备和I2C驱动是否匹配,如果匹配就调用i2c_device_probe函数,进而调用I2C驱动的probe函数。
混说Linux
2022/07/14
3.2K0
Linux I2C驱动入门,建议收藏!
[Linux驱动炼成记] 11-快速修改芯片驱动中寄存器的值
实际项目的调试中,往往需要快速修改驱动芯片(只针对IIC通讯)中对应寄存器的值,传统的方式一般是编译驱动 -> 烧录固件 -> 测试,而这样的方式往往很繁琐。这里介绍使用i2c-tools快速修改驱动芯片的寄存器方式1
程序手艺人
2019/02/20
1.7K0
Linux系统驱动之I2C系统的重要结构体
使用一句话概括I2C传输:APP通过I2C Controller与I2C Device传输数据。
韦东山
2021/12/08
2K0
Linux系统驱动之I2C系统的重要结构体
[Linux驱动炼成记] 01-用户空间操作IIC
调试IIC过程中,需要准备示波器或逻辑分析仪,需要通过示波器查看波形确定硬件连接是否正确,不然出现问题,软件再怎么调试,都是枉然.
程序手艺人
2019/02/21
2.1K0
相关推荐
手把手教你使用 i2c-tools
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档