gpt4 book ai didi

python - 在 Windows 10 上使用 django 连接到远程 mysql

转载 作者:行者123 更新时间:2023-11-30 21:31:10 24 4
gpt4 key购买 nike

我有一个在 mac 和 linux 上工作的 Django 设置文件,它可以让我使用我的。 my.cnf 文件以连接到 AWS 上的远程 MySQL 数据库。但是,在 Windows 10 上,情况似乎并非如此。一直提示无法连接本地数据库,就好像my.cnf文件不存在一样。

我已经在 Windows 10 上安装了 mysql 连接器和 python mysql 连接器,以及 pip install mysqlclient 就像我需要在 linux 上一样,但是问题仍然存在。

db_conf = Path("Project/my.cnf")
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.mysql',
'OPTIONS': {
'read_default_file': '{}'.format(db_conf),
}
}
}

使用相同的设置文件,我可以运行 makemigrations、迁移和运行服务器。在 Windows 上,同样的事情会使它崩溃。 my.cnf 在 Windows/Mac/Linux 上是相同的任何帮助将不胜感激。

我怀疑这与 Windows 执行路径的方式有关,但我不确定如何解决这个问题,因为我通常在 Linux 中编写代码。

最佳答案

我已经解决了这个问题,但是..不是我想要的方式。我不知道为什么,但 django 和 windows 在尝试使用它连接到 mysql 数据库时似乎不喜欢使用 os.path 或 Path。

因此,我使用了使用 configparser 的更长的路由,不再让 django 读取配置文件,而是在设置文件中提供详细信息。

import configparser
db_conf = Path("Project/my.cnf")
conf = configparser.ConfigParser()
conf.read(db_conf)
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.mysql',
'NAME': conf.get("client", "database"),
'USER': conf.get("client", "user"),
'PASSWORD': conf.get("client", "password"),
'HOST': conf.get("client", "host"),
'PORT': '3306',
}
}

我觉得这整个情况很有趣的是 Path 正常工作,除非在 Windows 上尝试用 django 读取它。这不是我想要的情况,但它确实解决了问题。我希望这可以帮助其他人在连接到 Windows 上的远程 mysql 服务器时可能正在努力做同样的事情。

关于python - 在 Windows 10 上使用 django 连接到远程 mysql,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56074445/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com