在Mac OS X上安装MySQL Python

时间:2013-04-24 02:18:04

标签: python mysql macos

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

sudo easy_install MySQL-python

我收到错误

  

EnvironmentError:找不到mysql_config

好吧,所以有很多线程等关于如何修复它,所以我运行这段代码:

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

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

sudo easy_install MySQL-python

然后我收到以下错误。

  

安装脚本退出并显示错误:命令'llvm-gcc-4.2'因退出状态1而失败

Google / Stack Overflow,我被告知要下载我前几天做过的GCC软件包,200 MB或者那些,但仍然没有修复。

此时我迷失了,他们说疯狂一遍又一遍地做同样的事情,同时期待不同的结果。好吧,我不断运行前面提到的代码,期待不同的结果,所以我不会远离疯狂。

在我的Python职业生涯的这一点上,我对此很陌生,但我愿意尝试几乎任何事情来实现这一目标。

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

另外,有一天,当我第一次尝试所有这些时,我安装(重新安装?)MySQL,所以我现在真的处于困境。

有修复吗?

我绞尽脑汁,搜索谷歌,阅读Stack Overflow,花了好几个小时试图解决这个问题无济于事。

15 个答案:

答案 0 :(得分:55)

这是我要安装的内容,特别是如果您想使用homebrew

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

答案 1 :(得分:25)

另一种选择是使用pymysql它是一个纯粹的Python客户端连接到MySQL,所以你不必乱搞编译,一个很好的练习,但如果你只是想获得它可能会令人沮丧完成的事情。 pymysql遵循与MySQLdb相同的API,它基本上可以用作替代品。

此外,它曾经是MySQLdb,不适用于Python 3,但这可能已经改变,pymysql没有那个也引起我切换的问题,但这可能已经改变了。 pymysql可能比MySQLdb慢,但你必须看看你是否注意到它,它也在不同的许可下(对于pymysql的MIT,对于MySQLdb的GPL)

答案 2 :(得分:12)

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

pip install MySQL-python

它对我有用。

答案 3 :(得分:9)

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

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

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

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

brew install mysql-connector-c

将此任务委托给自制软件。如果您使用的是Linux,则可以通过mysqlclient github page

中的说明进行安装

答案 4 :(得分:5)

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

默认情况下,OSX没有连接库。

首先应安装连接器:

brew install mysql-connector-c

然后用pip mysql安装

pip install mysql-python

答案 5 :(得分:2)

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

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

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

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
如果您在命令行中执行此操作,则

不是永久性的。您需要将该行放在主目录中名为.bashrc的文件中(〜/或等效/ Users / YOUR_USER_NAME)。要查看.bashrc是否已存在(它是隐藏文件),请发出命令:

$ ls -al 

并查找.bashrc。如果.bashrc不存在,则创建它。

答案 6 :(得分:2)

正如其他人在我之前提到的......让Python在Mac上使用MySQL是一个?@#$ @&%^ !!梦魇。

最初从最初的Django网站在Mac OS 10.7.5上安装了Django框架,当MySQLdb不起作用,经过几个小时的谷歌搜索和尝试来自SO的解决方案后,我从BitNami安装了Django堆栈{{3} }

仍然,得到了上面提到的问题,然后还有一些......

最终帮助我的是Josh在他的博客上推荐的内容:http://bitnami.com/stack/django

现在Python 2.7最终连接到MySQL 5.5

答案 7 :(得分:1)

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

  

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

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

答案 8 :(得分:1)

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

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

  • 安装homebrew
  • 打开终端并运行:brew install mysql-connector-c
  • pip install mysql-python

然后Anaconda将安装mysql-python,然后你可以从MySQLdb开始。

祝你好运。感谢。

答案 9 :(得分:1)

要安装PyMySQL

install pip => sudo easy_install pip

安装PyMySQL => sudo easy_install-3.7 pymysql

terminal命令检查是否已安装=> pip3 list

安装PyMySQL => sudo pip install PyMySQL

terminal命令检查是否已安装=> 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 Server 未运行

下载时无需注册,请查找 »不,谢谢,带我去下载! –直接转到下载镜像并下载从离您最近的镜子中下载软件。

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

安装完成后,您会看到一个带有临时 mysql root密码的对话框-即MySQL root密码而不是macOS管理员密码,请复制并粘贴以便使用。但是我发现临时密码几乎没有用,因此我们需要立即对其进行更改。

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

更改MySQL根密码

请注意,这与macOS的root或admin密码不同–这是 mysql root用户的唯一密码,使用一个并记住/记下它的确切位置。< / p>

停止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

这将是一个持续执行的命令,直到该过程完成为止,因此打开另一个外壳/终端窗口,并使用临时生成的密码登录:

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”保存更改。最后要做的是重新加载外壳,以使上面的内容立即起作用。

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服务器连接,单击新服务器

切换到身份验证标签,然后设置本地mysql根用户和密码。

添加用户名“ 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 从现有目录复制到新文件夹中并替换-备份较旧的版本即可,以防万一。 >

权限

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

让我们说您在 User Sites 文件夹中的以下位置〜/ Sites / testsite 中拥有一个网站,您可以将其设置为可写,如下所示:

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

如果您担心安全性,则可以将所有者设置为Apache _www ,而不是将其设置为世界范围内的可读性,但是在处理文件时,您将必须以管理员身份进行更多身份验证,因此您“不是”所有者,您可以这样做:

sudo chown -R _www ~/Sites/testsite

这将递归地将内容设置为由Apache用户拥有。 如果您将网站存储在系统级别的文档根目录下,例如〜/ Sites / testsite ,则必须是后者:

sudo chown -R _www ~/Sites/testsite

如果您拥有一个用户工作站,另一种简便的方法是将Apache Web用户从_www更改为您的帐户。 而已!现在,您可以在macOS Sierra上运行本机AMP堆栈。

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

答案 10 :(得分:1)

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

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

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

然后pip安装MySQL-Python

解决!

答案 11 :(得分:0)

对我有用的是:

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

答案 12 :(得分:0)

在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"

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

答案 13 :(得分:0)

我改用PyMySQL,它可以正常工作!

sudo easy_install-3.7 pymysql

答案 14 :(得分:-1)

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

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