解决 Mac Python安装 mysqlclient 库报错

2023-11-11

历经千辛万苦终于解决了,参考牛人笔记,记录一下

安装 brew

首先安装 brew,百度,教程很多

安装 mysql

#安装
brew install mysql

#配置环境变量
echo 'export PATH="/opt/homebrew/opt/mysql-client/bin:$PATH"' >> ~/.bash_profile

#使环境变量生效
source ~/.bash_profile

#通过脚本启动mysql服务
mysql.server start

#启动 mysql 并设置为开机启动
brew services start mysql

#初始化,设置密码
mysql_secure_installation

ya..... bin % mysql_secure_installation        
Enter password: 

Securing the MySQL server deployment.


VALIDATE PASSWORD PLUGIN can be used to test passwords //密码验证插件,为了提高安全性,需要验证密码
and improve security. It checks the strength of password  // 它会检查密码的强度
and allows the users to set only those passwords which are  //只允许用户设置足够安全的密码
secure enough. Would you like to setup VALIDATE PASSWORD plugin?   //提示安装密码验证插件

Press y|Y for Yes, any other key for No: y

There are three levels of password validation policy:  //三个等级的验证策略

LOW Length >= 8  //最小长度大于等于8个字符
MEDIUM Length >= 8, numeric, mixed case, and special characters    //数字,字母,特殊字符 混合,具体的应该是至少1个数字,1个字母,1个特殊字符,长度不超过32个字符
STRONG Length >= 8, numeric, mixed case, special characters and dictionary file   //  最严格,加上了,字典文件

Please enter 0 = LOW, 1 = MEDIUM and 2 = STRONG: 2                      //这里我选择2 MEDIUM
Using existing password for root.

Estimated strength of the password: 50                                   //这里也是密码强度的评级
Change the password for root ? ((Press y|Y for Yes, any other key for No) : y

New password:                                                        //密码 

Re-enter new password: 

Estimated strength of the password: 50 
Do you wish to continue with the password provided?(Press y|Y for Yes, any other key for No) : y     //提示要使用刚刚输入的密码吗?
 ... Failed! Error: Your password does not satisfy the current policy requirements                   //插件验证不通过,不符合当前安全要求级别

New password:                                                        //密码

Re-enter new password: 

Estimated strength of the password: 100 
Do you wish to continue with the password provided?(Press y|Y for Yes, any other key for No) : y
By default, a MySQL installation has an anonymous user,               //默认情况下,MySQL有一个匿名用户,
allowing anyone to log into MySQL without having to have              //这个匿名用户,不必有一个用户为他们创建,匿名用户允许任何人登录到MySQL,
a user account created for them. This is intended only for            //这只是为了方便测试使用
testing, and to make the installation go a bit smoother.
You should remove them before moving into a production                //在正式环境使用的时候,建议你移除它
environment.

Remove anonymous users? (Press y|Y for Yes, any other key for No) : y                //提示移除匿名用户
Success.

Normally, root should only be allowed to connect from                        //一般情况下,root用户只允许使用"localhost"方式登录,
'localhost'. This ensures that someone cannot guess at                       // 以此确保,不能被某些人通过网络的方式访问
the root password from the network.

Disallow root login remotely? (Press y|Y for Yes, any other key for No) : n          //

 ... skipping.
By default, MySQL comes with a database named 'test' that                      //默认情况下,MySQL数据库中有一个任何用户都可以访问的test库,
anyone can access. This is also intended only for testing,                     //这也仅仅是为了测试
and should be removed before moving into a production                          // 在正式环境下,应该移除掉
environment.

Remove test database and access to it? (Press y|Y for Yes, any other key for No) : y
 - Dropping test database...
Success.

 - Removing privileges on test database...
Success.

Reloading the privilege tables will ensure that all changes                       //刷新权限表,以确保所有的修改可以立刻生效
made so far will take effect immediately.

Reload privilege tables now? (Press y|Y for Yes, any other key for No) : y
Success.

All done! 

安装 MySQL-Connector-c

brew install mysql-connector-c

安装 XCode-

xcode-select --install

安装 OpenSSL

brew install openssl

安装后终端会显示配置环境变量方法

If you need to have openssl@3 first in your PATH, run:
  echo 'export PATH="/opt/homebrew/opt/openssl@3/bin:$PATH"' >> ~/.zshrc

For compilers to find openssl@3 you may need to set:
  export LDFLAGS="-L/opt/homebrew/opt/openssl@3/lib"
  export CPPFLAGS="-I/opt/homebrew/opt/openssl@3/include"

取消链接MySQL和链接的MySQL连接器mysql-connector-c

brew unlink mysql
brew link --overwrite mysql-connector-c

如图连接mysql-connector-c有警告
Warning: mysql-client is keg-only and must be linked with --force.
执行
brew link --overwrite mysql-connector-c --force

安装 mysqlclient

使用pip install mysqlclient不会出现任何错误

在这里插入图片描述

再次连接 MySQL

做取消链接MySQL和链接的MySQL连接器mysql-connector-c相反的操作:

brew unlink mysql-connector-c
brew link --overwrite mysql --force

参考链接:https://www.cnblogs.com/shen-qiang/p/13607977.html
参考链接:https://www.jianshu.com/p/b0585609c8db

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

解决 Mac Python安装 mysqlclient 库报错 的相关文章

随机推荐

  • 【1G-6G】移动通信技术发展

    移动通信技术发展 1G 早在1947年 贝尔实验室的科学家就提出了蜂窝通信的概念 在20世纪60年代对此进行了系统的实验 20世纪60年代末 70年代初开始出现了第一个蜂窝 Cellular 系统 蜂窝的意思是将一个大区域划分为若干个相邻的
  • ATT&CK - T1546.003

    事件触发的执行 WMI事件订阅 目的 出现场景 ATT CK T1546 003 https attack mitre org techniques T1546 003 检查方式 复现方式 目的 建立持久性 出现场景 比如一些病毒的启动方式
  • excel 两列模糊匹配给出结果_EXCEL快速对比两列数据的不同

    作者 Miss 蜗牛 链接 https www jianshu com p 68b867d4558a 在工作中 我们经常需要对比两列数据或文本是否相同 如果是比较简单并且比较少的时候 我们可以肉眼一个一个的核对 或者都是数字的时候 可以用减
  • MySQL数据库和Oracle数据库的区别

    由于SQL Server不常用 所以这里只针对MySQL数据库和Oracle数据库的区别 1 对事务的提交 MySQL默认是自动提交 而Oracle默认不自动提交 需要用户手动提交 需要在写commit 指令或者点击commit按钮 2 分
  • TensorFlow Lite 入门样例,亲测有效

    参考链接 tensorflow 物体检测模型相关资料 https github com tensorflow models tree master research object detection java api接口 https ten
  • Java设计模式-状态模式

    状态模式 在软件开发过程中 应用程序中的有些对象可能会根据不同的情况做出不同的行为 我们把这种对象称为有状态的对象 而把影响对象行为的一个或多个动态变化的属性称为状态 当有状态的对象与外部事件产生互动时 其内部状态会发生改变 从而使得其行为
  • 【转】机器学习--- 分类算法详解

    原文链接 http blog csdn net china1000 article details 48597469 感觉狼厂有些把机器学习和数据挖掘神话了 机器学习 数据挖掘的能力其实是有边界的 机器学习 数据挖掘永远是给大公司的业务锦上
  • 电阻并联计算_电工必备10套计算公式,收藏了!

    1 串联电路电流和电压有以下几个规律 如 R1 R2串联 电流 I I1 I2 串联电路中各处的电流相等 电压 U U1 U2 总电压等于各处电压之和 电阻 R R1 R2 总电阻等于各电阻之和 如果n个阻值相同的电阻串联 则有R总 nR
  • Linux如何删除服务器上以问号开头的文件

    编辑配置文件的时候由于写入了中文 保存的时候乱码了 生成了问号文件 正常的删除命令是无法删除的 rm rf vimrc 那如何删除呢 使用文件的inode号 获取inode号 ls i 删除文件 find inum 34164153 exe
  • E: Could not get lock /var/lib/dpkg/lock-frontend - open (11: Resource temporarly unavailable)

    这篇文章阅读量最高 就借下楼 下面是我的视频主页 有数字图像处理 深度学习相关的一些视频分享 欢迎围观 MYVision MY视界的个人空间 哔哩哔哩 bilibili 数字图像处理通俗教程 冈萨雷斯 哔哩哔哩 bilibili 0 Pyt
  • opencv人脸检测--detectMultiScale函数

    opencv人脸检测 detectMultiScale函数 转载请注明出处 http blog csdn net itismelzp article details 50379359 首先上两张图 现在要对上面两张图进行人脸检测 一 Haa
  • sqli-labs 21-40关

    21关 进行基本尝试发现用户名与密码都被过滤 那么先登陆试试吧 登陆之后页面变为 发现注入点可能为ip cookie agent 使用抓包软件试试 看这个东西显然被加密了 尝试过之后发现cookie是注入点 不加密时 报错 查看一下题目co
  • 大数据Hadoop学习之————基于物品的协同过滤算法实现物品推荐

    一 基础概念 协同过滤算法一般分为两种实现 基于用户的协同过滤算法 userCF 通过寻找相似兴趣的其他用户 为指定用户推荐物品 比如用户A喜欢商品A B 用户B也喜欢商品A和B 则可以认为用户A和B兴趣相似 这时候就可以像用户A推荐用户B
  • 小程序基本知识点

    Page data定义内容 data name ball changename 更新data里面的数据 this setData name name
  • 如何用人工智能预测股票(完整答案)

    前言 十分钟实现人工智能股价预测 是一个深度学习的练习项目 其通过机器学习算法 根据过去几年与某只股票相关的K线走势 公司相关报道的情感分析作为数据集 通过训练来得到可以预测股价的机器学习模型 并用该模型对股价进行预测 本项目使用几种不同的
  • ajax请求必须打断点才能成功,请问ajax请求过程中都经历了哪些状态?

    紫衣仙女 AJAX运行过程中5种状态 0 未初始化 还没有调用send 方法 1 载入 已调用send 方法 正在发送请求 2 载入完成 send 方法执行完成 3 交互 正在解析响应内容 4 完成 响应内容解析完成 可以在客户端调用了 p
  • RT-DETR论文解读与代码

    RTdetr ecoder和decoder部分pytorch复现代码链接见文末 1 初始化策略与源码有所差异 使用过程中可以根据自己的需求进行更换 2 代码经过一条一条的debug 本身没有bug 并且是依据作者源码用pytorch实现 但
  • 给定数组长度2n,分成n对,求n对最小元素之和最大

    给定长度为 2n 的数组 你的任务是将这些数分成 n 对 例如 a1 b1 a2 b2 an bn 使得从1 到 n 的 min ai bi 总和最大 示例 1 输入 1 4 3 2 输出 4 解释 n 等于 2 最大总和为 4 min 1
  • 2021-09-23 opencv学习笔记(图像变换,二值化,滤波器介绍及python实现)

    opencv学习笔记 颜色空间 改变颜色空间 cv2 cvtColor 目标追踪 如何查找某个颜色的HSV值 图形变换 缩放 cv2 resize 平移 旋转 仿射变换 透视变换 二值化 简单阈值法 自适应阈值 Otsu二值化 俗称大津法
  • 解决 Mac Python安装 mysqlclient 库报错

    文章目录 安装 brew 安装 mysql 安装 MySQL Connector c 安装 XCode 安装 OpenSSL 取消链接MySQL和链接的MySQL连接器mysql connector c 安装 mysqlclient 再次连