Django - 无法进行迁移,MySQL 5.7.19,Py 3.6.2 [重复]
Posted
技术标签:
【中文标题】Django - 无法进行迁移,MySQL 5.7.19,Py 3.6.2 [重复]【英文标题】:Django - can't do migrations, MySQL 5.7.19, Py 3.6.2 [duplicate] 【发布时间】:2018-01-25 09:41:41 【问题描述】:帮助我被困在 Django 地狱中! 我正在尝试学习 Django,并且正在尝试在我自己的计算机(MacOS 10.12.6)上建立一个测试站点。我的 Python 版本是 3.6.2,带有 Django 1.11.4 和 mysql 5.7.19。
我正处于我想做的地步:
python manage.py migrate
但是...它不起作用...我已经安装了 mysql-connector 2.1.6 并且该特定版本似乎有一个错误which is documented here。发布的错误看起来像我的。 MySQL 说该错误已在 2.1.7 版中修复,但我无法使用 pip 下载该错误,而且我在任何地方都看不到它。 pip 看到的唯一其他更高版本是 2.2.3,并且根本不安装。
我找到了其他instructions that suggested using mysqlclient(和here),但即使这样也行不通。我收到此错误...
pip install mysqlclient
Collecting mysqlclient
Using cached mysqlclient-1.3.10.tar.gz
Complete output from command python setup.py egg_info:
/bin/sh: mysql_config: command not found
Traceback (most recent call last):
File "<string>", line 1, in <module>
File "/private/var/folders/d9/z3yxpfl505s_jwtty_x3576h0000gn/T/pip-build-8vj20eqa/mysqlclient/setup.py", line 17, in <module>
metadata, options = get_config()
File "/private/var/folders/d9/z3yxpfl505s_jwtty_x3576h0000gn/T/pip-build-8vj20eqa/mysqlclient/setup_posix.py", line 44, in get_config
libs = mysql_config("libs_r")
File "/private/var/folders/d9/z3yxpfl505s_jwtty_x3576h0000gn/T/pip-build-8vj20eqa/mysqlclient/setup_posix.py", line 26, in mysql_config
raise EnvironmentError("%s not found" % (mysql_config.path,))
OSError: mysql_config not found
----------------------------------------
Command "python setup.py egg_info" failed with error code 1 in /private/var/folders/d9/z3yxpfl505s_jwtty_x3576h0000gn/T/pip-build-8vj20eqa/mysqlclient/
我希望有人可以帮助我克服这个问题,因为我肯定被困在这一点上。提前谢谢!
-b
【问题讨论】:
您确定安装了 MySQL 或工具吗? 我想我想通了...我必须将 mysql_config 的路径添加到 $PATH...如果我自己解决问题,我可以删除一个问题吗:/ 不要删除问题。这个问题可能对未来的读者有所帮助。接受对你帮助最大的答案。 @BSmith 是的——就是这样......我需要将“/usr/local/mysql/bin”添加到我的 $PATH 并且我能够安装 mysqlclient。一旦我将 ENGINE 设置改回 'django.db.backends.mysql' - 我就能够通过这一步。如果没有人觉得它有用,我会投票删除它。 对不起,发布的答案 Mohideen 与此问题无关,但感谢大家的帮助(和眼睛)。 【参考方案1】:我认为你的 Mysql 连接器有问题.. 所以试试这些,
sudo apt-get install mysql-server
mysql-config 位于不同的包中,可以从以下位置安装:
sudo apt-get install libmysqlclient-dev
【讨论】:
【参考方案2】:这是线索,不幸的是,我在发布我的问题后就明白了:
/bin/sh: mysql_config: command not found
我认为 MySQL 可执行文件的路径是正确的,但事实并非如此。我将此添加到我的 .bash_profile 文件中:
export PATH=$PATH:/usr/local/mysql/bin
然后将settings.py中的ENGINE设置改回:
'ENGINE': 'django.db.backends.mysql',
..迁移很顺利。
【讨论】:
以上是关于Django - 无法进行迁移,MySQL 5.7.19,Py 3.6.2 [重复]的主要内容,如果未能解决你的问题,请参考以下文章
将数据库从 oracle 11g 迁移到 MySql 5.7 的优点、缺点和问题是啥?
无法使用 Django 3.0.3 中的迁移 API 使用 ModelState 和 ProjectState 进行迁移