openEuler安装MYSQL5.7Can‘t find error-message file ‘/usr/local/mysql/share/errmsg.sys‘. Check error-me

文章讲述了在将生产环境操作系统从其他系统切换到openEuler时,遇到的MySQL5.7安装问题,主要报错是datadir不存在。提供了解决方案,即使用`--initialize-insecure`选项重置并指定正确目录。

简述

因生产环境操作系统需要换成openEuler,所以所有的软件需要重新安装,其中在安装mysql5.7版本,执行初始化命令/data/mysql/bin/mysqld --defaults-file=/data/mysql/my.cnf --user=mysql --initialize时报错,报错如下

执行初始化命令/data/mysql/bin/mysqld --defaults-file=/data/mysql/my.cnf --user=mysql --initialize报错
mysqld: Can't create directory '/usr/local/mysql/data/' (Errcode: 2 - No such file or directory)
2024-02-04T07:32:12.702904Z 0 [Warning] TIMESTAMP with implicit DEFAULT value is deprecated. Please use --explicit_defaults_for_timestamp server option (see documentation for more details).
2024-02-04T07:32:12.702978Z 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.
2024-02-04T07:32:12.702984Z 0 [Warning] 'NO_AUTO_CREATE_USER' sql mode was not set.
2024-02-04T07:32:12.703027Z 0 [ERROR] Can't find error-message file '/usr/local/mysql/share/errmsg.sys'. Check error-message file location and 'lc-messages-dir' configuration directive.
2024-02-04T07:32:12.703737Z 0 [ERROR] Aborting

解决方式

修改初始化命令如下,然后重新执行,问题就可以解决

/data/mysql/bin/mysqld --defaults-file=/data/mysql/my.cnf --initialize-insecure --user=mysql --basedir=/data/mysql --datadir=/data/mysql/data/
在Ubuntu系统下启动mysqld时提示找不到错误消息文件 `/usr/local/mysql/share/errmsg.sys`,可以尝试以下解决办法: ### 1. 检查文件是否存在 首先需要确认 `/usr/local/mysql/share/errmsg.sys` 文件是否确实存在于系统中。可以使用以下命令进行检查: ```bash ls /usr/local/mysql/share/errmsg.sys ``` 若文件不存在,可能是MySQL安装不完整或者文件被误删除。 ### 2. 查找实际的错误消息文件位置 使用以下命令在系统中查找 `errmsg.sys` 文件: ```bash sudo find / -name "errmsg.sys" ``` 此命令会在整个系统中搜索 `errmsg.sys` 文件,并返回其所在的路径。 ### 3. 修改 `lc-messages-dir` 配置 若找到了 `errmsg.sys` 文件的实际位置,可通过修改MySQL的配置文件来指定该位置。通常,MySQL的配置文件为 `/etc/mysql/mysql.conf.d/mysqld.cnf`。 使用文本编辑器打开该配置文件: ```bash sudo nano /etc/mysql/mysql.conf.d/mysqld.cnf ``` 在文件中添加或修改 `lc-messages-dir` 配置项,将其值设置为 `errmsg.sys` 文件的实际路径。例如,如果文件位于 `/usr/share/mysql`,则添加以下内容: ```plaintext [mysqld] lc-messages-dir = /usr/share/mysql ``` 保存并关闭文件,然后重启MySQL服务: ```bash sudo systemctl restart mysql ``` ### 4. 重新安装MySQL 若上述方法都无法解决问题,可尝试重新安装MySQL: ```bash sudo apt-get remove --purge mysql-server mysql-client mysql-common sudo apt-get autoremove sudo apt-get autoclean sudo apt-get install mysql-server ``` 重新安装完成后,再次尝试启动mysqld服务。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值