在 Mac OS X 上安装 MySQL Python

Posted

技术标签:

【中文标题】在 Mac OS X 上安装 MySQL Python【英文标题】:Installing MySQL Python on Mac OS X 【发布时间】:2013-04-17 10:21:47 【问题描述】:

长话短说,当我写下以下内容时:

sudo easy_install mysql-python

我得到了错误

EnvironmentError: mysql_config not found

好吧,关于如何解决这个问题有很多线程之类的,所以我运行这个代码:

export PATH=$PATH:/usr/local/mysql/bin

然后我重新运行我的 sudo 代码:

sudo easy_install MySQL-python

然后我得到以下错误。

安装脚本退出并出现错误:命令“llvm-gcc-4.2”失败,退出状态为 1

Google/Stack 溢出了,我被告知要下载我前几天下载的 GCC 包,大约 200 MB 左右,但仍然没有修复。

在这一点上我迷失了,他们说精神错乱是一遍又一遍地做同样的事情,却期待不同的结果。好吧,我一直在运行上述代码,期望得到不同的结果,所以我离发疯不远了。

在我的 Python 职业生涯的这个阶段,我是新手,但我愿意尝试几乎任何事情来启动和运行它。

如果它有助于我正式运行 Mac OS X 10.7.5,并且我确实安装了MAMP(这是一个问题吗?)

另外,前几天我第一次安装(重新安装?)MySQL 时尝试了所有这些,所以在这一点上我真的很困难。

有解决办法吗?

我绞尽脑汁,搜索了 Google,阅读了 Stack Overflow,并花了数小时试图弄清楚这一点,但无济于事。

【问题讨论】:

你能把gcc命令的输出贴到终端上吗? 当我运行gcc 时,我得到以下信息:i686-apple-darwin11-llvm-gcc-4.2 no input files 【参考方案1】:

这是我要安装的,特别是如果你想使用homebrew:

XCode 和命令行工具(由@7stud、@kjti 建议) 安装homebrew brew install mysql-connector-c pip install mysql-python

【讨论】:

pip install mysql-python 上出现错误:error: /Library/Python/2.7/site-packages/_mysql.so: Permission denied 我使用自制 python 安装,在我的机器上,Python 包位于/usr/local/lib/python2.7/site-packages/,对我来说是可写的 (homebrew doesn't want to use sudo)。您也可能会发现 Homebrew and Python 是一本好书。如果您只想使用系统 python,sudo pip install... 可能会成功。 我收到以下错误 - Command "python setup.py egg_info" failed with error code 1.. Command "python setup.py egg_info" failed with error code 1 in /private/var/folders/xr/4nbrl6_n67ggkm4v6zkk8v_nq0kng2/T/pip-install-hxjvbd/mysql-python/ 失败。我正在使用 Python 3.6.4 mysql-python 尚不支持 Python 3:> 目前支持 MySQL-3.23 到 5.5 和 Python-2.4 到 2.7。未来的版本将支持 Python-3.0。支持 PyPy。 source【参考方案2】:

另一种选择是使用pymysql,它是与 MySQL 的纯 Python 客户端连接,因此您不必乱编译,这是一个很好的练习,但如果您只是想完成某件事,这可能会令人沮丧. pymysql 遵循与 MySQLdb 相同的 API,它本质上可以用作替代品。

另外,它曾经是 MySQLdb,不适用于 Python 3,但这可能已经改变,pymysql 没有那个问题,这也导致我切换,但这可能已经改变。 pymysql 可能比 MySQLdb 慢,但你必须看看你是否注意到,它也使用不同的许可证(pymysql 为 MIT,MySQLdb 为 GPL)

【讨论】:

我不确定这是否是一种创可贴类型的解决方案,但它确实有效!我能够轻松安装 pymysql 并毫无问题地连接到我的 DB/运行命令。将来我仍然有兴趣学习如何启动和运行 MySQL,但现在这应该可以解决问题。谢谢保罗! @Peter:很高兴它有帮助,由于 C 接口,MySQLdb 安装起来很棘手(但这确实使它更快)。不过,如果你以后切换到 MySQLdb,你的 Python 代码不需要做太多改动,所有对游标和连接的调用都应该与 pymysql 相同,你只需要导入一些其他的东西。 这对我来说非常有用,比旧的 JDBS ODBC 驱动程序更容易跳舞 MySQLdb 已分叉到 mysqlclient-python 项目 (github.com/PyMySQL/mysqlclient-python) 以支持 Python 3+ 如果有人能提供帮助,我在使用 pymysql 时遇到问题:***.com/questions/46145845/…【参考方案3】:

通过homebrew安装mysql,然后就可以通过pip安装mysql python了。

pip install MySQL-python

它对我有用。

【讨论】:

为我工作。还发现了这个建议:***.com/questions/25459386/… 在 python 3.6.5 上说 ModuleNotFoundError: No module named 'ConfigParser'【参考方案4】:

对于 Python 3+mysql-python 库已损坏。相反,请使用mysqlclient library。 Install with: pip install mysqlclient

它是支持 Python 3+ 的 mysql-python(也称为 MySQLdb)的一个分支

这个库与 MySQL 客户端的 C 接口对话,比纯 python pymysql 库更快。

注意:您需要安装 mysql-developer 工具。在 Mac 上执行此操作的一种简单方法是运行

brew install mysql-connector-c

将此任务委托给自制软件。如果您使用的是 linux,则可以通过 mysqlclient github page 的说明安装这些。

【讨论】:

这是一个巨大的帮助,解决了我的问题。谢谢。 使用 Ansible (v2.8.5) mysql_db 模块、Python 3.7.5、10.4.6-MariaDB 的 macOS 10.13.6 (High Sierra) 于 2019 年取得成功。我不需要 brew mysql-connector-c 公式。【参考方案5】:

我正在使用 OSX -v 10.10.4。上面的解决方案是quick & easy。

正在发生的 OSX 默认没有连接库。

首先你应该安装连接器:

brew install mysql-connector-c

然后用 pip mysql 安装

pip install mysql-python

【讨论】:

如果你还没有安装第一个 pip,你应该先安装它。 Pip 它是 Python 的包管理器,虽然你的 Mac 中已经有 Python,但它可能没有安装。 我收到以下错误 - Command "python setup.py egg_info" failed with error code 1.. 【参考方案6】:

安装 PyMySQL

安装 pip => sudo easy_install pip

安装 PyMySQL=> sudo easy_install-3.7 pymysql

检查是否安装的终端命令 => pip3 list

安装 PyMySQL=> sudo pip install PyMySQL

检查是否安装的终端命令 => pip3 list

MySQL

macOS Sierra Public Beta 不能很好地与 MySQL 5.7.x 配合使用,但现在使用 MySQL 5.7.16 解决了这些问题

MySQL 没有预装 macOS Sierra,需要从 MySQL 网站下载。

(https://dev.mysql.com/downloads/mysql/) MySQL 5.7.16 的最新版本可以与 macOS 的公开版本一起使用。

如果您已经拥有 MySQL 5.7 并且您已将操作系统从 El Capitan 升级到 Sierra,我希望这没问题,但如果有人对此感兴趣,将会感兴趣。

使用 Mac OS X 10.11(x86,64 位),DMG 存档版本(适用于 macOS Sierra)。

如果您是从以前的 OSX 升级并拥有旧的 MySQL 版本,则不必更新它。 MySQL 升级的一件事总是对数据库进行数据转储,以防万一出现问题,在升级到 macOS Sierra 之前,请确保您的 MySQL 服务器运行。

下载时您不必注册,寻找 » 不用了,请带我去下载! – 直接到下载镜像下载来自离您最近的镜像中的软件。

下载后打开 .dmg 并运行安装程序。

安装完成后,您会看到一个带有临时 mysql 根密码 的对话框——这是 MySQL 根密码而不是 macOS 管理员密码,复制并粘贴它以便您可以使用它。但是我发现临时密码几乎没用,所以我们需要立即更改它。

您还被告知: 如果您丢失了此密码,请参阅 MySQL 参考手册中的如何重置 Root 密码部分。(https://dev.mysql.com/doc/refman/5.7/en/resetting-permissions.html)

更改 MySQL 根密码

请注意,这与 macOS 的 root 或管理员密码不同 - 这是 mysql root 用户 的唯一密码,使用一个并记住/记下它是什么。

停止 MySQL

sudo /usr/local/mysql/support-files/mysql.server stop

如果停止引发权限问题

先检查错误文件。

tail -f /usr/local/mysql/data/*.err

完全关闭或终止进程。确认没有mysql进程在运行

mysqladmin -uroot shutdown
sudo killall mysqld 

ps -ef | grep mysql

给予权限

sudo chown -RL root:mysql /usr/local/mysql
sudo chown -RL mysql:mysql /usr/local/mysql/data
chmod -R 755 /usr/local/mysql/data
chmod -R 755 /usr/local/mysql/data/accountname.local.pid

or Right click->get info and change the permission for 
/usr/local/mysql/data
/usr/local/mysql/data/Pushparajas-MacBook-Pro.local.pid

启动mysql

sudo mysql.server start

在安全模式下启动它:

sudo mysqld_safe --skip-grant-tables

这将是一个持续的命令,直到进程完成,因此打开另一个 shell/终端窗口,并使用临时生成的密码登录:

mysql -u root -p
FLUSH PRIVILEGES;
ALTER USER 'root'@'localhost' IDENTIFIED BY 'MyNewPass'

; 将小写的“MyNewPass”更改为您想要的 - 并保留单引号。

\q

启动 MySQL

sudo /usr/local/mysql/support-files/mysql.server start

启动 MySQL

然后您可以从系统偏好设置或通过命令行启动 MySQL 服务器。

命令行启动 MySQL。

sudo /usr/local/mysql/support-files/mysql.server start

要从终端查找 MySQL 版本,请在提示符处键入:

/usr/local/mysql/bin/mysql -v -uroot -p

这也让你进入与 mySQL 的 shell 交互对话,输入 \q 退出。

安装后,为了在不输入命令的完整路径的情况下使用 mysql 命令,您需要将 mysql 目录添加到您的 shell 路径中,(可选步骤)这是在您的主目录中的“.bash_profile”文件中完成的,如果您没有该文件,只需使用 vi 或 nano 创建它:

cd ; nano .bash_profile
export PATH="/usr/local/mysql/bin:$PATH"

第一个命令将您带到您的主目录并打开 .bash_profile 文件,或者如果它不存在则创建一个新文件,然后添加上面的行,将 mysql 二进制路径添加到您可以运行的命令中。输入“control + x”退出文件,并在提示时输入“y”保存更改。这里要做的最后一件事是重新加载 shell 以使上述内容立即工作。

source ~/.bash_profile
mysql -v

你会再次获得版本号,只需输入“q”即可退出。

修复 2002 MySQL Socket 错误

修复迫在眉睫的 2002 套接字错误 - 这是链接 MySQL 放置套接字的位置和 macOS 认为它应该在的位置,MySQL 将其放在 /tmp 中,而 macOS 在 /var 中查找它/mysql套接字是一种允许mysql客户端/服务器通信的文件。

sudo mkdir /var/mysql
sudo ln -s /tmp/mysql.sock /var/mysql/mysql.sock

phpMyAdmin

httpd.conf 文件中取消注释

LoadModule php7_module libexec/apache2/libphp7.so

如果您还没有从 MySQL 部分修复 2002 套接字错误,请先修复 -

sudo mkdir /var/mysql
sudo ln -s /tmp/mysql.sock /var/mysql/mysql.sock

下载 phpMyAdmin,(https://www.phpmyadmin.net/downloads/) zip 英文包适合很多用户,然后解压缩并将文件夹及其内容移动到文档根目录 (~/Sites/) 将文件夹重命名为 'phpmyadmin'。

制作config文件夹

mkdir ~/Sites/phpmyadmin/config

更改权限

chmod o+w ~/Sites/phpmyadmin/config

在浏览器中运行设置 http://localhost/~username/phpmyadmin/setup/ 或 http://localhost/phpmyadmin/setup/

你需要创建一个新的localhost mysql服务器连接,点击new server

切换到Authentication选项卡,设置本地mysql root用户和密码。

添加用户名“root”(可能已经填充,添加您之前为 MySQL root 用户设置的密码,单击保存,您将返回上一个屏幕。 (这不是 macOS 管理员或 root 密码——它是 MySQL root 用户)。

确保你点击保存,然后一个config.inc.php现在在phpmyadmin目录的/config目录下,移动这个文件到/phpmyadmin的根目录然后删除现在 /config 目录。

在最新的phpmyadmin中,下载config.inc.php并放到phpmyadmin目录下。

如果您想设置新服务器,请将 config.inc.php 移动到某个位置并尝试 http://localhost/~username/phpmyadmin/setup

现在转到http://localhost/~username/phpmyadmin/ 将允许您与您的 MySQL 数据库进行交互。

要升级 phpmyadmin,只需下载最新版本并将旧的 'config.inc.php' 从现有目录复制到新文件夹并替换 - 备份旧版本以防万一。

权限

要运行没有权限问题的网站,最好将 Web 根目录及其内容设置为所有人都可写,因为这是本地开发,所以不应该是安全问题。

假设您在 User Sites 文件夹中的以下位置 ~/Sites/testsite 中有一个站点,您可以将其设置为可写,如下所示:

sudo chmod -R a+w ~/Sites/testsite

如果您担心安全性,那么您可以将所有者设置为 Apache _www 而不是让它成为世界可写的,但是在处理文件时,您必须以管理员身份进行更多身份验证,您“不是”楼主,你可以这样做:

sudo chown -R _www ~/Sites/testsite

这将递归地设置内容归 Apache 用户所有。 如果您将网站存储在 System 级别的文档根目录中,例如 ~/Sites/testsite,那么它必须是后者:

sudo chown -R _www ~/Sites/testsite

如果您有一个单用户工作站,另一种更简单的方法是将 Apache 网络用户从 _www 更改为您的帐户。 而已!您现在拥有在 macOS Sierra 之上运行的原生 AMP 堆栈。

参考链接 - https://coolestguidesontheplanet.com/get-apache-mysql-php-and-phpmyadmin-working-on-macos-sierra/#ssu

【讨论】:

【参考方案7】:

在 Mojave 上,我在查找 SSL 库时遇到了错误,这就是最终无需修改 mysql_config 的方法:

sudo pip install MySQL-Python --global-option=build_ext --global-option="-I/usr/local/opt/openssl/include" --global-option="-L/usr/local/opt/openssl/lib"

希望这可以为某人节省几个小时的心痛

【讨论】:

在大苏尔为我工作。其他方式在大苏尔对我不起作用。谢谢!【参考方案8】:

是时候成为一个大男孩并从源代码安装了。试试这个:

1) 下载 MySQL-python-1.X.X.tar.gz 文件(默认会到你的下载目录)

2) 打开终端窗口并 cd 到下载目录。

3) 解压你下载的文件:

~/Downloads$ tar xfvz MySQL-python-1.X.X.tar.gz

这将在您的下载目录中创建一个名为 MySQL-python 的目录

4) cd 进入新创建的目录。

5) 通常,您只需打开名为 README 或 INSTALL 的文件并按照说明进行操作——但通常要安装 python 模块,您只需:

$ sudo python setup.py install

如果您愿意看一下,在您新创建的 MySQL-python 目录中应该有一个名为 setup.py 的文件,并且您正在调用该程序来安装模块。

还要注意:

export PATH=$PATH:/usr/local/mysql/bin

如果您在命令行上执行此操作,则它不是永久性的。您需要将该行放在主目录(~/ 或等效的 /Users/YOUR_USER_NAME)中名为 .bashrc 的文件中。要查看 .bashrc 是否已经存在(它是一个隐藏文件),请发出命令:

$ ls -al 

然后寻找 .bashrc。如果 .bashrc 不存在,则创建它。

【讨论】:

好吧,所以我经历了一切,直到 5 点之后都很好,其中我再次收到 mysql_config not found 错误。 1) cd 到 /usr/local/mysql/bin 并执行 $ ls 并查看 mysql-config 是否在其中。如果是,则执行 $ echo $PATH。如果 /usr/local/mysql/bin 不在您的 PATH 中,则使用您发布的导出命令将其放入 .bashrc 内的路径中。要确保终端正在使用您的新 .bashrc,请键入 $ source .bashrc,然后打开另一个终端窗口并再次尝试安装。 ...制作 $ source ~/.bashrc 好吧,我有点困惑,但我认为我们正在取得一些进展,我做了cd /usr/local/mysql/bin,当我运行ls 时,我看到列出了 mysql_config。然后我输入echo $PATH 并收到以下输出/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/usr/X11/bin 现在下一个菜鸟问题,我该如何处理该字符串? 所以你只是忽略了我告诉你打开或创建文件 ~/.bashrc 的所有时间?【参考方案9】:

正如我之前提到的其他人......让 Python 在 Mac 上与 MySQL 一起工作是一个 ?@#$@&%^!!噩梦。

最初从原始 Django 网站在 Mac OS 10.7.5 上安装 Django 框架,当 MySQLdb 不起作用时,经过数小时的谷歌搜索和尝试 SO 的解决方案后,我已经从 BitNami http://bitnami.com/stack/django 安装了 Django 堆栈/p>

不过,遇到了上面提到的问题,然后还有一些问题......

最终帮助我的是 Josh 在他的博客上推荐的内容:http://joshbranchaud.com/blog/2013/02/10/Errors-While-Setting-Up-Django.html

现在 Python 2.7 终于连接到 MySQL 5.5

【讨论】:

我感受到你的痛苦。我曾经在做和你一模一样的事情时遇到了很多麻烦。我最终放弃了这个项目。前几天,我不得不再次开始使用 python 和 mysql 并在 pymysql 上取得了立竿见影的成功(它刚刚工作)。不确定它是否适合您。如果不是,我道歉。不过值得一看。 谢谢。我最终离开了 Django 并转向了 Web2Py。有什么不同!安装简单快速,文档更好,IDE 很好,开箱即用,可与 MySQL 一起使用,内置 Web 服务器,调试器等。推荐它。【参考方案10】:

您遇到的问题是您的 Mac 上未安装 gcc 编译器。如果您安装了 XCode,它将被安装。您必须下载gcc 编译器并手动安装。请点击以下链接并下载它 -

https://github.com/downloads/kennethreitz/osx-gcc-installer/GCC-10.7-v2.pkg

我曾经在安装 Ruby 1.9 时遇到过这个问题,我不得不自己编译 ruby​​,因为当时不支持 Mountain Lion。安装包后,通过gcc命令验证安装。

【讨论】:

我已经安装了 Xcode 以及上面链接的 GCC 工具。【参考方案11】:

我在 Mac OS X 10.11.4 15E65 上使用 Python 2.7.11 :: Anaconda 2.3.0 (x86_64)。

您可能需要按照以下步骤操作:

安装自制软件 打开终端并运行:brew install mysql-connector-c 点安装mysql-python

Anaconda 会安装好 mysql-python,然后你就可以从 MySQLdb 启动了。

祝你好运。谢谢。

【讨论】:

【参考方案12】:

最重要的是,我无法解决它。但是我将文件添加到 /usr/local/include 解决它。

https://github.com/peterlee0304/MySQL-Python/blob/master/my_config.h

在 /usr/local/include 中,添加一个 my_config.h 文件。

然后 pip 安装 MySQL-Python

解决它!

【讨论】:

太好了。也许您可以直接在此处发布config.h 文件的相关部分,并注明必要的补充? 是的,我也想做。但这条评论限制了字数。【参考方案13】:

对我有用的是:

LDFLAGS=-L/usr/local/opt/openssl/lib pip install mysql-python

【讨论】:

【参考方案14】:

以下内容可能会有所帮助。

brew install mysql-connector-c
CFLAGS =-I/usr/local/Cellar/mysql-connector-c/6.1.11/include pip install MySQL-python
brew unlink mysql-connector-c

【讨论】:

嗨!欢迎来到 ***!如果您能简要说明所提议的解决方案为何/何时起作用,您的回答会更有帮助。 @norok2 是的,没错,就像以前阻止过任何人一样。【参考方案15】:

我改用 PyMySQL,它工作正常!

sudo easy_install-3.7 pymysql

【讨论】:

以上是关于在 Mac OS X 上安装 MySQL Python的主要内容,如果未能解决你的问题,请参考以下文章

在最新版本的 Mac OS X 上安装旧版本的 MySQL 5.5

在 Mac OS X El Capitan 10.11.4 上安装 MySQL 5.7

在 Mac OS X 上启动 MySQL 的问题

如何从 Mac OS X 中卸载 MySQL?

无法在 Mac OS X 上启动 mysql 得到 mysql.sock 连接错误

设置 MySQL 和 Oracle 数据库 Mac OS X