mysql 莫名其妙的启动不了具体报错如下

首先说一下不太清楚出现这个问题的原因,莫名其妙开机就变成这样了。

在navicat中连接数据库出现
Can’t connect to MySQL server on ‘127.0.0.1’(61 “Connection refused”)

然后就试了试在shell中连接数据库报错以下
dyld: Library not loaded: /usr/local/opt/openssl/lib/libssl.1.0.0.dylib
Referenced from: /usr/local/opt/[email protected]/bin/mysql
Reason: image not found

解释原因之前首先解释一下什么是openssl

Mac OSX一般自带的有OpenSSL。但是因为一些原因将原有的 OpenSSL 替换为 LibreSSL 。在以上这些系统中应该除了实测必须要用 OpenSSL 软件外,应该都可以用 LibreSSL 取代 OpenSSL。而对于其他大多数还没有将系统自带的 OpenSSL 替换为 LibreSSL 的会麻烦一些,并且也可能做不到彻底替换。只是对于编译安装的软件,可以尽量用 LibreSSL 取代 OpenSSL。

证实一下我的mac上直接在shell中输入

openssl version

在这里插入图片描述
可以看到其实openssl 就是LibreSSL。

而出现本次错误的原因其实是:
由依赖性冲突引起的。
由于我安装软件的时候都使用homebrew,没有注意好像是无意中安装了[email protected](不明白为什么安装了)
由于安装OpenSSL 1.1或者是更高版本。当自制软件安装OpenSSL时,它将更改
/ usr / local / opt / openssl /中的符号链接以指向最新版本。这意味着文件
/usr/local/opt/openssl/lib/libssl.1.0.0.dylib不再在该目录中,因为它已被
libssl.1.1.dylib 替换,但是当我启动mysql的时候好像需要加载本机的libssl.1.0.0.dylib,于是乎这个问题就出现了。

解决方案:
我试了好多种解决方案,
第一种:比如说直接将使用的1.0.0指向1.1,让系统使用1.0.0的时候直接调用1.1.但是这个方案不太行,开启mysql的时候还是报错,不过可能管用,大家可以试试。

第二种:直接删除当前安装的openssl,然后指定版本安装[email protected],不过不能直接使用 brew install [email protected] 会提示没有当前版本。直接

1.删除本机上使用brew命令安装的所有版本openssl

brew uninstall --ignore-dependencies openssl

2.安装指定版本openssl(如果没翻墙特别容易失败,失败了不要放弃,再次执行命令安装就可以了)

brew install https://github.com/tebelorg/Tump/releases/download/v1.0.0/openssl.rb

这个时候执行

mysql -uroot -proot

成功进入mysql并且没有报告异常
在这里插入图片描述
有什么疑问可以留言,看到后会及时回复

猜你喜欢

转载自blog.csdn.net/qq_42584411/article/details/103713815