4

我正在尝试让 Django 在端口 3307 上连接到我的本地主机 MySQL。我注意到当我更改 settings.py 中的端口号时,它仍然连接到 3306。所以我尝试将它更改为一些无意义的值,它仍然在 3306 上保持连接。我在 Apache2 上使用 WSGI,我也尝试重新启动服务器。为了使 Django 连接到所需的端口,我还需要做些什么吗?这是我的settings.py:

'default': {
        'ENGINE': 'django.db.backends.mysql', # Add 'postgresql_psycopg2', 'mysql', 'sqlite3' or 'oracle'.
        'NAME': 'mydb',                # Or path to database file if using sqlite3.
        'TEST_NAME': 'test_mydb',
        # The following settings are not used with sqlite3:
        'USER': 'mydb',
        'PASSWORD': 'mydb',
        'HOST': '',                      # Empty for localhost through domain sockets or '127.0.0.1' for localhost through TCP.
        'PORT': '33074',                      # Set to empty string for default.
    }
4

2 回答 2

9

您没有通过端口 3306 连接;您正在通过本地套接字进行连接。

如果您将“主机”留空,MySQL 默认行为是通过本地套接字连接(一个 UNIX 系统,用于进程之间非常快速地相互通信,根本不涉及网络堆栈)。如果要显式使用网络堆栈连接到 localhost,则必须指定“127.0.0.1”作为主机。完成此操作后,配置中选择的端口将变得相关。

于 2013-04-14T20:07:36.453 回答
2

您的答案在评论中HOST

Empty for localhost through domain sockets or '127.0.0.1' for localhost through TCP.

端口号仅在您指定时127.0.0.1使用HOST- 否则使用套接字。

于 2013-04-14T20:07:34.173 回答