安装 MySQL 8 注意事项

MySQL 8 出生已经有一段时间了,像我这种反射弧比较长的人终于也决定入坑 8 了,因为自己大部分的项目其实都是跑在 5.7 上,为了和项目保持一致,所以一直没有在自己的机器上尝鲜最新的 MySQL 8, 毕竟自己的主力开发战机保持在稳定的状态最重要,因为搭建环境一旦出问题,会影响到现在很多正在进行的项目,这也是多年来被教训后的一个经验 ~

近期恰逢升级系统,有一个网站的码友 Lele 配置环境时遇到了 MySQL 8 的问题前来求助,于是乎,我也来踩踩 MySQL 8 的坑,MySQL 8 我就不对其进行介绍了, 最大的点就是速度是 5.7 的两倍,的确很诱人,咱们就从安装开始吧。下面是它的下载链接,如果你没有安装的话,直接打开这个链接即可:

MySQL 8 官方下载链接

 

接下来就是安装过程中需要注意的事情了:

MySQL 8 安装注意事项

当安装到上图这步的时候,记得一定要选择 Use Legacy Password Encryption, 这一项是兼容过去的传统密码验证模式,选择这一项能很好的兼容过去的项目;上面的那一项是 MySQL 8 新推出的密码验证模式,你可能会问,有新的为啥不用呢?我的回答是:“不是不用,而是现在不能用,以后到了合适的时候肯定会用”。为什么这么说呢,因为 MySQL 在整个数据库生态中掌握话语权和主动权的那一方,NaviCat,Sequel Pro 等数据库软件都要看它的眼色,开发框架也要看它的眼色,它刚推出这个新的更安全的密码验证模式,大家不可能在第一时间就能跟上,目前大部分的数据库软件和开发框架都还不支持它的最新特性,如果你选择了第一项,那抱歉,数据库软件都没办法连接到 mysql 服务后边一堆麻烦事等着你去解决,更恶心的事,解决不了。这就像苹果和微信一样,它要定什么新的规则,有啥新的要求,开发者必须遵守,不听老大的话,就没有好果子吃。

MySQL 8 安装注意事项

再此终于可以表扬以下 MySQL 了,之前的多个版本,设置密码是一件很恶心的事,必须要到命令行中进行设置,MacOS 本来在图形化方面很出色,是用来做开发环境的,开发环境搭建的时候应该力求简单高效,之前的版本设置个密码搞的跟 Linux 部署环境一样复杂,简直太不人性化了,部署环境因为安全性的要求那么做是没有问题的,而且非常应该;至于开发环境,能简单就简单,现在这个样子就非常好,而且安装完成之后修改密码也变得非常简单了。 安装完成之后,可以到系统中去启动 MySQL 服务。

启动 MySQL 8

 

在里面可以进行密码的设置以及其他的设置操作,但是现在很多框架可能还没办法连接数据库,咱们在终端中也不能通过 mysql 命令进入到数据库服务控制台

mysql
fish: Unknown command 'mysql'

如果想要进入 mysql 控制台,咱们就需要为 mysql 创建一个软连接,创建之前首先要知道 mysql被安装到了哪里,打开系统中的MySQL进行查看,就是上面的那张图黄色圈定的项

MySQL 8 的配置项

 

在 Configuration 里面咱们就可以看到它的 Base Directory 了, /usr/local/mysql 就是咱们要建立的软连接的项

ln -s /usr/local/mysql/bin/mysql /usr/local/bin

这样的话咱们再次运行mysql -u root -p 就没问题了。


mysql -u root -p
Enter password:
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 9
Server version: 8.0.11 MySQL Community Server - GPL

Copyright (c) 2000, 2018, Oracle and/or its affiliates. All rights reserved.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql>

 

这个时候咱们可以用 Sequel Pro 连接一下数据库,应该是没有一点问题的。如果咱们之前安装的时候使用的是新的密码验证规则,那大部分数据库软件连接 mysql 的时候会失败,而且会弹出下面的错误 :

caching_sha2_password' cannot be loaded: dlopen(/usr/local/lib/plugin/caching_sha2_password.so, 2): image not found

 

OK,这就是安装 MySQL 8 的时候需要注意的事项,为了写这篇博客,MySQL 8 反反复复安装卸载好几次,一篇简单的博客都能折腾一个小时,更何况咱们的编程学习,所以说,做什么要有耐心,切勿急躁冒进,借用侯耀文先生评价早期一直赔钱的德云社的一段话:“我支持他们,我觉得多学多干多实践总是一个过程,不是在于你能不能马上见到效果,甚至说不是马上就能有收益,如果这样,就是一种急功急利的想法,人是需要积累的,积累的这个过程比将来收益那个过程还要宝贵。心浮气躁只会扰乱你自己的心智,适得其反”。仅以先生此言共勉~