MySQL启动报错(Can‘t change dir to ‘/usr/local/mysql/data/‘ (Errcode: 2 - No such file or director)

文章讲述了在尝试重启MySQL服务时遇到的错误,主要原因是配置文件my.cnf权限设置为777导致的,解决方案是将权限改为644。报错还涉及到数据目录的设定不正确。

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

报错场景

在启动服务时,

systemctl restart mysql_4405
Job for mysql_4405.service failed because the control process exited with error code. See "systemctl status mysql_4405.service" and "journalctl -xe" for details.

详细日志
journalctl -xe
-- 
-- Unit mysql_4405.service has begun starting up.
Oct 25 01:59:00 sudada mysqld[18277]: mysqld: [Warning] World-writable config file '/data/mysql/4405/my.cnf.4405' is ignored.
Oct 25 01:59:00 sudada mysqld[18277]: mysqld: Can't change dir to '/usr/local/mysql/data/' (Errcode: 2 - No such file or director
Oct 25 01:59:00 sudada mysqld[18277]: 2023-10-25T01:59:00.812489Z 0 [Warning] TIMESTAMP with implicit DEFAULT value is deprecated
Oct 25 01:59:00 sudada mysqld[18277]: 2023-10-25T01:59:00.812641Z 0 [Note] --secure-file-priv is set to NULL. Operations related 
Oct 25 01:59:00 sudada mysqld[18277]: 2023-10-25T01:59:00.812672Z 0 [Note] /data/mysql/4405/base/bin/mysqld (mysqld 5.7.43) start
Oct 25 01:59:00 sudada mysqld[18277]: 2023-10-25T01:59:00.812701Z 0 [ERROR] Can't find error-message file '/usr/local/mysql/share
Oct 25 01:59:00 sudada mysqld[18277]: 2023-10-25T01:59:00.813206Z 0 [Warning] Can't create test file /usr/local/mysql/data/sudada
Oct 25 01:59:00 sudada mysqld[18277]: 2023-10-25T01:59:00.813211Z 0 [Warning] Can't create test file /usr/local/mysql/data/sudada
Oct 25 01:59:00 sudada mysqld[18277]: 2023-10-25T01:59:00.813266Z 0 [ERROR] failed to set datadir to /usr/local/mysql/data/
Oct 25 01:59:00 sudada mysqld[18277]: 2023-10-25T01:59:00.813272Z 0 [ERROR] Aborting
Oct 25 01:59:00 sudada mysqld[18277]: 2023-10-25T01:59:00.813300Z 0 [Note] Binlog end
Oct 25 01:59:00 sudada systemd[1]: mysql_4405.service: control process exited, code=exited status=1
Oct 25 01:59:00 sudada mysqld[18277]: Initialization of mysqld failed: 0
Oct 25 01:59:00 sudada mysqld[18277]: 2023-10-25T01:59:00.814179Z 0 [Note]
Oct 25 01:59:00 sudada systemd[1]: Failed to start MySQL Server.
-- Subject: Unit mysql_4405.service has failed

因为错误日志没有输出(下面只是关闭时候的日志,没有启动日志)

2023-10-25T01:58:59.009620-00:00 0 [Note] Shutting down plugin 'MyISAM'
2023-10-25T01:58:59.009648-00:00 0 [Note] Shutting down plugin 'MRG_MYISAM'
2023-10-25T01:58:59.009664-00:00 0 [Note] Shutting down plugin 'MEMORY'
2023-10-25T01:58:59.009671-00:00 0 [Note] Shutting down plugin 'PERFORMANCE_SCHEMA'
2023-10-25T01:58:59.009702-00:00 0 [Note] Shutting down plugin 'sha256_password'
2023-10-25T01:58:59.009709-00:00 0 [Note] Shutting down plugin 'mysql_native_password'
2023-10-25T01:58:59.009997-00:00 0 [Note] Shutting down plugin 'binlog'
2023-10-25T01:58:59.010825-00:00 0 [Note] /data/mysql/4405/base/bin/mysqld: Shutdown complete

问题要点

  • /usr/local/mysql/data/目录不是 服务的实际目录(实际目录是/data/mysql/4405/data)
  • 且没有/usr/local/mysql/data/目录的存在

解决办法

mysqld: [Warning] World-writable config file ‘/data/mysql/4405/my.cnf.4405’ is ignored.
上面的启动日志 “World-writable“ 配置文件的权限太大了。

解决办法,把777改成了644就可以启动了
chmod 644 /data/mysql/4405/my.cnf.4405

好奇怪的报错,结论是配置文件权限不能是777。
完结撒花🌹

<think>好的,我现在需要帮助用户解决“MySQL command not found error: No such file or directory in /usr/bin/mysql”的问题。首先,这个问题通常是因为系统找不到MySQL的安装路径或者相关文件被误删。我应该先让用户检查MySQL是否已经正确安装。用户可能没有安装MySQL,或者安装过程中出现了问题。 接下来,如果用户确认已经安装了MySQL,但命令仍然找不到,可能是因为安装路径没有被添加到环境变量中。这时候需要检查PATH变量是否包含MySQL的安装目录,比如/usr/bin或者/usr/local/mysql/bin。如果不在PATH里,用户需要手动添加。 另外,符号链接的问题也可能导致这个错误。如果MySQL的可执行文件存在但链接不正确,比如/usr/bin/mysql指向了错误的位置,用户需要重新创建符号链接。比如使用ln -s命令。 还有可能的情况是MySQL服务没有正确安装或部分文件损坏。这时候建议用户重新安装MySQL,或者使用包管理器如apt或yum进行安装,确保所有依赖都正确安装。 另外,用户提到的引用[1]中提到了“mysql.h: No such file or directory”,这可能涉及到开发库的问题,但当前问题是命令找不到,可能和开发库无关,不过可以提醒用户如果是编译安装的话可能需要安装相关的开发包。 综合这些可能性,我需要分步骤给出解决方案,从检查安装到环境变量,再到符号链接,最后建议重新安装。同时,生成相关的问题,比如如何安装MySQL、如何配置环境变量等。</think>### 解决MySQL命令找不到文件的步骤 #### 1. **确认MySQL是否安装** - 执行命令检查MySQL安装状态: ```bash which mysql || mysql --version ``` - 若提示`mysql: command not found`,说明未安装或路径未配置。 - 若已安装,检查安装路径是否在`$PATH`中,例如`/usr/bin`或`/usr/local/mysql/bin`[^1]。 #### 2. **通过包管理器安装/修复** - **Ubuntu/Debian**: ```bash sudo apt update sudo apt install mysql-server # 安装MySQL服务 sudo apt install mysql-client # 安装客户端工具 ``` - **CentOS/RHEL**: ```bash sudo yum install mysql-server ``` - 安装完成后,执行`systemctl start mysqld`启动服务。 #### 3. **检查环境变量配置** - 查看`PATH`变量是否包含MySQL路径: ```bash echo $PATH ``` - 若缺失路径,手动添加(例如MySQL安装在`/usr/local/mysql/bin`): ```bash export PATH=$PATH:/usr/local/mysql/bin # 临时生效 echo 'export PATH=$PATH:/usr/local/mysql/bin' >> ~/.bashrc # 永久生效 ``` #### 4. **修复符号链接** - 若文件实际存在但链接错误(如`/usr/bin/mysql`指向无效路径): ```bash sudo ln -sf /实际/mysql安装路径/bin/mysql /usr/bin/mysql ``` - 示例:`sudo ln -sf /opt/mysql/bin/mysql /usr/bin/mysql` #### 5. **重新安装MySQL(极端情况)** - 彻底卸载后重新安装: ```bash sudo apt purge mysql-server mysql-client # Ubuntu/Debian sudo yum remove mysql-server # CentOS/RHEL ``` - 清理残留文件: ```bash sudo rm -rf /etc/mysql /var/lib/mysql ``` - 重新执行安装步骤。 --- ###
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值