繁体   English   中英

在Windows 10上使用Django连接到远程MySQL

[英]Connect to remote mysql with django on Windows 10

我有一个在Mac和Linux上都可以使用的Django设置文件,它将允许我使用我的。 my.cnf文件以连接到AWS上的远程MySQL数据库。 但是,在Windows 10上似乎并非如此。 它一直说它无法连接到本地数据库,就像my.cnf文件不存在一样。

我已经在Windows 10上安装了mysql连接器和python mysql连接器,以及pip安装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服务器时可能会做同样的事情。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM