我在做我的第一个django项目,我一直在突破sqlite的极限。所以我决定在添加大量额外的测试数据之前切换到mysql。从那时起,我的django应用程序中再也没有加载任何页面(管理页面和项目页面都没有)。在chrome最终显示“err\u connection\u densed”之前,我没有收到任何错误消息。
我在设置中添加了以下内容:
'default': {
'ENGINE': 'django.db.backends.mysql',
'NAME': 'db_name',
'USER': 'user',
'PASSWORD': 'password',
'HOST': '127.0.0.1',
'PORT': '3306',
'OPTIONS': {
'read_default_file': os.path.join(BASE_DIR, 'my.cnf'),
},
上面引用的my.cnf文件如下所示:
[client]
database = dbname
user = username
password = password
default-character-set = utf8
[mysqld]
max_allowed_packet = 512M
wait_timeout = 604800
interactive_timeout = 28800
它被明确地使用,因为更改文件中的数据库名称会导致django连接到另一个db。
项目使用celery ,因此我还修改了celery 结果后端:
CELERY_RESULT_BACKEND = 'db+mysql://user:password@localhost:3306/dbname'
django可以连接到数据库(请参阅下面的测试:如何在django中检查到mysql的数据库连接)。我根据这个问题的第二个答案迁移了我的内容:将django数据库从sqlite迁移到mysql的最佳方法是什么?没有任何错误。所有数据都显示在phpmyadmin中。mysql错误日志中没有任何内容。django和celery都不会在调试控制台/命令行中输出任何错误。我安装了mysqlclient和(对于celery )sqlalchemy。
切换回原来的sqlite配置可以解决这个问题,因此它肯定链接到mysql数据库。我忽略了什么?我是否错过了一些重要的配置步骤?有没有办法获得更多的错误消息?尤其是后者的完全缺失真的让我很困惑。
尝试从python控制台的数据库bia中获取objescts会导致 ´mysql_exceptions.OperationalError: (2006, 'MySQL server has gone away')
,这再次指向mysql问题。关闭旧的连接修复了这个错误,这个错误到目前为止没有再次出现,但是页面仍然没有加载。
暂无答案!
目前还没有任何答案,快来回答吧!