****网友报错提问:****
/etc/init.d/mysql: line 239: my_print_defaults: command not found
/etc/init.d/mysql: line 259: cd: /usr/local/mysql:
No such file or directory Starting MySQL ERROR!
Couldn't find MySQL server (/usr/local/mysql/bin/mysqld_safe)
请问我一直报这个错误是什么情况,需要修改文件吗还是............
解决方案:
这个错误表明你的 MySQL 服务启动脚本 /etc/init.d/mysql
中有几个问题,主要是因为它尝试使用的命令或路径不存在。这通常发生在 MySQL 的安装路径与脚本中硬编码的路径不一致时。下面是一些解决步骤:
-
确认 MySQL 的安装路径:
首先,你需要确认 MySQL 实际安装在哪里。通常,MySQL 可能安装在/usr/bin/
、/usr/local/mysql/
或其他位置,这取决于你的安装方式(如使用包管理器、源代码编译等)。你可以通过运行
whereis mysql
或which mysql
命令来查找mysql
客户端工具的路径,但这可能不直接指向服务器二进制文件(如mysqld_safe
)。如果
whereis mysql
显示了/usr/bin/mysql
,那么 MySQL 的服务器二进制文件可能也在/usr/bin/
或类似的路径中,或者在一个名为mysql-server
的包中。 -
检查
my_print_defaults
:
my_print_defaults
工具通常与 MySQL 一起安装,并用于打印 MySQL 服务器配置选项的默认值。如果my_print_defaults
命令找不到,可能是因为它不在你的 PATH 环境变量中,或者根本就没有安装。你可以尝试使用find / -name my_print_defaults 2>/dev/null
命令来查找它。 -
修改
/etc/init.d/mysql
脚本:
如果/usr/local/mysql/
不是你 MySQL 的实际安装路径,你需要修改/etc/init.d/mysql
脚本中的相关行,以反映正确的路径。特别是cd /usr/local/mysql
和引用mysqld_safe
、my_print_defaults
的行。打开脚本,使用文本编辑器(如 nano 或 vim)查找并替换所有提及
/usr/local/mysql/
的路径为正确的路径。例如,如果你的 MySQL 安装在
/usr/bin/
附近,但服务器二进制文件在/usr/sbin/mysqld
,你可能需要更新脚本中的相关行来指向这些位置。 -
使脚本可执行(如果尚未执行):
确保/etc/init.d/mysql
脚本是可执行的。你可以通过运行chmod +x /etc/init.d/mysql
来设置执行权限。 -
尝试重新启动 MySQL 服务:
修改脚本后,尝试重新启动 MySQL 服务,看错误是否解决。你可以使用service mysql start
或/etc/init.d/mysql start
命令来启动服务。 -
查看日志:
如果 MySQL 服务仍然无法启动,查看 MySQL 的日志文件可能会提供更多信息。日志文件的位置可能因安装方式和版本而异,但常见的位置包括/var/log/mysql/
。