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 [重复]的主要内容,如果未能解决你的问题,请参考以下文章

mysql 5.7 迁移数据方案

性能问题 MySQL 5.7

将数据库从 oracle 11g 迁移到 MySql 5.7 的优点、缺点和问题是啥?

Django 从 MySQL 迁移到 Postgres

无法使用 Django 3.0.3 中的迁移 API 使用 ModelState 和 ProjectState 进行迁移

Django 无法为嵌套应用程序进行迁移