当前位置: 首页 > news >正文

Mac M2 Pro安装MySQL 8.4.3

絮絮叨叨

  • MacBook Pro,芯片:Apple M2 Pro, macOS: Sonoma 14.0
  • 一直知道很多软件对Mac M1或M2的支持不好,但没想到在安装MySQL 8.x上也让我吃尽了苦头
  • 本文除了介绍如何安装MySQL 8.4.3外,还会记录笔者遇到的一些问题以及解决方法

MySQL 8.4.3的安装

下载.dmg的安装包

  • 下载地址:https://dev.mysql.com/downloads/mysql/
  • 选择8.4.3 LTS版本的.dmg安装包

图形化界面安装

  • 由于笔者忘记截图了,这里推荐参考文档:Macbook M2配置MySQL 8.x记录。
  • 注意:记住安装时,输入的密码!!! 笔者偷懒,直接是12345678 😂
  • 安装结束后,在 系统设置 最底部就能看到MySQL服务,绿色小圆点表示服务运行中

配置系统环境变量

  • 这时候,还不能通过mysql -uroot -p这样的命令登录MySQL,还需要配置一下系统环境变量

    vim ~/.zshrc
    
  • 在文件尾部加入以下内容,/usr/local/mysql是对应的默认安装目录

    export PATH=$PATH:/usr/local/mysql/bin
    export PATH=$PATH:/usr/local/mysql/support-files
    
  • 让环境变量生效

    source ~/.zshrc
    
  • 通过 mysql -V 验证环境变量是否生效,如果生效会显示MySQL的版本信息

  • 这时候MySQL服务基本上就已经安装完成了

笔者遇到的一些问题记录

环境变量不生效

  • 如果 mysql -V无法执行,一般都是环境变量配置有问题

  • 可以通过echo $PATH,查看MySQL的环境变量是否正确加载
    在这里插入图片描述

  • 首先,检查安装路径是否正确,也就是/usr/local/mysql这个路径是否正确

  • 笔者是安装路径没有问题,但是自己鬼使神差地通过echo写入,导致上述配置到了整个$PATH之后
    在这里插入图片描述

登录失败

  • 使用如下方式登录MySQL均失败

    mysql -u root -p
    mysql -h 127.0.0.1 -u root -p
    
  • 报错如下:

  • 可能是服务未启动

  • 使用如下命令可以查看MySQL服务的状态,启动、停止、重启MySQL服务。参考文档:MAC MySql 安装(详细步骤)

    # 查看MySQL服务状态
    sudo mysql.server status
    # 开启MySQL服务(需要输入电脑密码,不是数据库登录密码)
    sudo mysql.server start
    # 停止MySQL服务
    sudo mysql.server stop
    # 重启MySQL服务
    sudo mysql.server restart
    

使用mysql-native-passwod插件进行用户认证

  • 从MySQL 8.0 开始,将默认密码认证插件从mysql-native-password调整为 caching_sha2_password,感兴趣的可以看这篇文章:从源码分析 MySQL 身份验证插件的实现细节

  • 由于工作需要,本地部署的MySQL服务对root用户应该使用mysql-native-password插件进行认证

  • 由于使用默认的 caching_sha2_password插件,通过程序访问MySQL报错

    MySQL 8.0 - Client does not support authentication protocol requested by server; consider upgrading MySQL client
    
  • 这时需要配置/my.cnf文件。首先,执行如下命令,查看/my.cnf文件的地址

    mysql --help | grep -A 1 "Default options"
    
  • 笔者选择在/usr/local/mysql/etc目录下创建my.cnf文件,注意: /usr/local/目录的更新,一般都需要使用sudo

  • 添加如下内容:

    [mysqld]
    port=3306
    bind-address=0.0.0.0
    mysql_native_password=ON # 开启mysql_native_password插件
    
  • 创建好后,重启MySQL服务。命令行登录MySQL后,执行如下SQL

    USE mysql;
    SELECT user, host, plugin FROM user;
    
  • 这时,自建用户(如root用户)的认证方式将变成mysql_native_password

  • 感谢文档:mysql_native_password DISABLED,这次一向很好用的stackoverflow和 chatGPT 竟然都没帮上我


http://www.mrgr.cn/news/81832.html

相关文章:

  • 28.Marshal.PtrToStringAnsi C#例子
  • Unity中实现转盘抽奖效果(二)
  • 在docker中对MySQL快速部署与初始数据
  • REDIS2.0
  • C++ 设计模式:观察者模式(Observer Pattern)
  • 面试题汇总
  • iOS 中的 nil、Nil、NULL、NSNull 僵尸对象和野指针
  • 深度学习笔记(5)——目标检测和图像分割
  • 嵌入式小白
  • 【网络】CookieSession
  • 玩转影刀AI Power-风景小助手教学
  • 2021.12.28基于UDP同信的相关流程
  • 【MySQL】第一弹----库的操作及数据类型
  • Tauri2+Leptos开发桌面应用--Sqlite数据库操作
  • 进军AI大模型-环境配置
  • vue Promise使用
  • Python爬虫(一)- Requests 安装与基本使用教程
  • 二叉树相关性质及其遍历
  • 【老白学 Java】第一次绘制
  • 阿里云人工智能工程师ACA认证免费课程学习笔记
  • Maven + MyBatis
  • MoH:将多头注意力(Multi-Head Attention)作为头注意力混合(Mixture-of-Head Attention)
  • Vuex用法
  • C++进阶重点知识(一)|智能指针|右值|lambda|STL|正则表达式
  • springboot整合log4j2案例以及异常输出格式案例2
  • 【SpringMVC】REST 风格