2013-04-14 36 views
4

我試圖讓Django連接到我的本地主機MySQL上的端口3307.我注意到,當我更改settings.py中的端口號時,它仍連接到3306所以我試圖將它改爲一些無意義的值,它仍然保持連接在3306上。我在Apache2上使用WSGI,並且我也嘗試重新啓動服務器。還有什麼我必須做,使Django連接到所需的端口?這裏是我的settings.py:即使端口設置爲不正確,Django也會連接到mysql

'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. 
    } 

回答

7

您沒有通過端口3306連接;您通過本地套接字進行連接。

如果您將「主機」留空,MySQL的默認行爲是通過本地套接字(一個UNIX系統進程相互之間進行非常迅速的通信,根本不涉及網絡協議棧)進行連接。如果要明確使用網絡堆棧連接到本地主機,則必須指定「127.0.0.1」作爲主機。一旦你這樣做,在配置中選擇的端口將變得相關。

+0

Aaah!說得通!非常感謝!我會在幾分鐘內接受這個。不讓我接受它。 – pkout

1

你的答案是在HOST註釋:如果您指定127.0.0.1HOST

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

端口號僅用於 - 否則它使用一個插座。

相關問題