在 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 建议) 安装homebrewbrew 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-pythonAnaconda 会安装好 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