先diss下自己,其实mac利用brew安装mysql还是比较简单的。

但是这次安装,只要遇到问题我就网上搜,搜索结果一大堆解决方法,本来问题比较明朗,但是搜的多了,就会出现其他连锁反应。

【朋友超哥曾经说过:“走的太远 容易忘记回去的方向,写的太多 容易忘记原有的逻辑……”】

自己没有冷静的思考问题,盲目的去按照别人的建议去操作,最后乱七八糟的,也许也是自己技术能力不过关的原因之一吧。

所以在自己踩过太多坑的基础上,写下此文mac利用brew安装mysql 8.0.13的过程。

一、官网下载Mysql 8.0.13

下载地址:https://dev.mysql.com/downloads/mysql/

进入此网站,会自动匹配到你的操作系统,可直接下载.dmg文件。

二、利用brew安装mysql:

Homebrew是macOS缺失的软件包管理器,使 macOS更完整,譬如可以安装Apple Store没有预装,但你需要的东西。

更多详情请查看Homebrew官网:https://brew.sh/index_zh-cn.html

一定要安装Homebrew成功。

安装Mysql前,需要先把之前的文件清理干净(如果第一次安装,此步骤可忽略)

执行下列命令

  • sudo rm /usr/local/mysql
  • sudo rm -rf /usr/local/mysql*
  • sudo rm -rf /Library/StartupItems/MySQLCOM
  • sudo rm -rf /Library/PreferencePanes/My*
  • rm -rf ~/Library/PreferencePanes/My*
  • sudo rm -rf /Library/Receipts/mysql*
  • sudo rm -rf /Library/Receipts/MySQL*
  • sudo rm -rf /var/db/receipts/com.mysql.*

利用brew安装mysql,输入如下命令:
brew install mysql

brew install mysql.jpg

三、常用的brew命令

获取service列表

brew services list

重启mysql服务

brew services restart mysql

停止mysql服务

brew services stop

四、终端登录mysql

刚才的截图中有提到,brew安装的mysql,root用户登录没有密码,不用输入密码,直接回车即可

mysql -u root -p.jpg

五、查询用户密码:

查询用户密码命令:
use mysql;
select host,user,authentication_string from user;

  • host:允许用户登录的ip‘位置’%表示可以远程;
  • user:当前数据库的用户名;
  • authentication_string:用户密码【重点字段,后面有提到此字段】;

    执行sql语句.jpg

六、设置(或修改)root用户密码

默认root密码为空的话 ,下面使用navicat就无法连接,所以我们需要修改root的密码。
“此处踩过N多坑,后来查阅很多才知道在mysql 5.7.9以后废弃了password字段和password()函数;而改为authentication_string字段表示用户密码。”

下面直接放出目前修改root密码的步骤:

一、如果当前root用户authentication_string字段下有内容,需要先将其设置为空。若已经是为空直接进行步骤二。
use mysql;
update user set authentication_string='' where user='root';

二、使用ALTER修改root用户密码,如下:
ALTER user 'root'@'localhost' IDENTIFIED BY '新密码';

此处有两点需要注意:

  1. 不需要flush privileges来刷新权限。
  2. 密码要包含大写字母,小写字母,数字,特殊符号。

    image

修改成功后; 退出重新使用用户名密码登录即可。

注意: 一定不要采取 如下形式修改密码:

use mysql;
update user set authentication_string="新密码" where user="root";

因为这样会给user表中root用户的authentication_string字段下设置了newpassword值;

当再使用ALTER USER 'root'@'localhost' IDENTIFITED BY 'newpassword'时会报错的;

因为authentication_string字段下只能是mysql加密后的41位字符串密码;其他的会报格式错误;

*THISISNOTAVALIDPASSWORDTHATCANBEUSEDHERE

【此段摘自文章: https://www.cnblogs.com/kawask/p/9171966.html 】

七、利用navicat连接本地数据库

第一次连接时,明明账号密码都正确,连接还是报错提示。
MySQL said: Authentication plugin 'caching_sha2_password' cannot be loaded: dlopen(/usr/local/lib/plugin/caching_sha2_password.so, 2): image not found

分析下:
1、在MySQL 8.0.4版本之前,执行:SET PASSWORD=PASSWORD(‘[新密码]’);
2、但是MySQL 8.0.4开始,这样默认是不行的。
3、因为之前,MySQL的密码认证插件是“mysql_native_password”,而现在使用的是“caching_sha2_password”。

所以我们这里需要再修改一次root密码。
先登录进入mysql环境:执行下面三个命令。(记得带上分号)
use mysql;
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '新密码';
FLUSH PRIVILEGES;

完美解决啊

navicat成功连接.jpg

文章来源于互联网:Mac安装Mysql 8.0.13、修改root密码、Navicat Premium连接

发表评论