最近安装了些东西,期间可能有版本问题所以升级了 brew ,升级不要紧,要紧的是升级后,突然发现mysql连不上了,md这忍不了,我一个后端离了数据库没法活!所以开始尝试修复。
首先我启动mysql(命令:mysql server start)时候,提示如下:
然后我查看错误日志,mysql提示我以下内容:
dyld: Library not loaded: /usr/local/opt/icu4c/lib/libicuuc.69.dylib
Referenced from: /usr/local/opt/mysql/bin/mysqld
Reason: image not found
啥意思?就是mysql依赖的icu4c (69版本) 找不到了,于是我尝试下载:
~ » brew reinstall icu4c@69 hzz@huangzhuangzhuangdeMacBook-Pro
Error: No available formula with the name "icu4c@69". Did you mean icu4c?
通过上边的提示发现,不能指定版本号下载啊!发客!,很很很难受,网上说去icu4c的git仓库(参见:stackoverflow),找到历史提交版本,然后checkout到69版本,可是我根本没有homebrew-core文件夹,更别提git提交记录了,所以也就放弃了。
咋办?
我经过深思后想到个方案,既然69下载不了(不能一棵树上吊死是不是?),那我下载icu4c的最新版吧,然后升级mysql版本,新mysql版本应该是依赖最新版本的icu4c吧,为了不瞎折腾,我去homebrew网站确认了一下,截图如下:
可以看到brew中最新的mysql依赖的icu4c是73.2,所以
而我执行 brew reinstall icu4发现下载下来的icu4c也是 73.2,如图:
ok既然确定最新版本mysql8.1 和 icu4c的73.2
版本对应!,那我就下载 icu4c 73.2 然后升级mysql到最新,这样的话问题应该可以解决。
icu4c 73.2下载并安装完成了,那接下来就是要升级mysql版本到最新了,我执行brew upgrade mysql命令来升级mysql,发现:
安装好几个依赖包,而且因为不能科学上网的问题,网速巨慢,中间还失败了(至少失败了20次md),搞得我快崩溃了(各种换源啥的都不好使,终其原因就是不能科学上网而已,所以最终我学会了科学上网)。然后我不直接升级mysql了,而是一个一个先升级mysql缺少的依赖,这样升级mysql时就不用再去下载依赖了。我使用brew info mysql看下:
可以看到好几个依赖包都是缺失或者可能是版本高或者版本低的问题都是红叉叉❌。如果你去升级mysql,那么会依次下载这些红叉叉❌的包,等很久,还tm失败,所以我干脆 一个一个来手动下载,这样感觉好受点。
其实一个个下载也有可能会失败,解决办法就是你得学会科学上网,科学上网后,你直接升级mysql都行。我这里经过99八十一难终于升级好mysql的依赖,在下载完最后一个依赖 protobuf@21后,我执行 brew info mysql 发现没有红叉叉❌了,都是✅:
哈哈到这里,我知道时机成熟了, 此时升级mysql应该可以了,我来试试!:
使用mysql客户端连接一下:
ok终于可以了,看似很简单的过程,却耗费了我很久大概半天+一晚上的时间,其实根本原因就是得学会科学上网,那你升级mysql或者升级依赖啥的 速度刷刷的。当然我其实也是这么解决的,只不过科学上网需要自己去探索。我这里就不说了。