2013-03-15 39 views
2

我需要测试使用mysql的Django应用程序,所以我安装了portable-xampp并加载了数据库,但是我无法通过django访问它。 它在我使用远程数据库时有效,但不在本地。 用户,密码和数据库都可以,我也尝试使用root,仅用于测试目的 有什么想法?无法使用Django使用便携式XAMPP连接到MySQL

在settings.py:

DATABASES = { 
    'default': { 
     'ENGINE': 'django.db.backends.mysql', # Add 'postgresql_psycopg2', 'postgresql', 'mysql', 'sqlite3' or 'oracle'. 
     'NAME': 'awe_db',   # Or path to database file if using sqlite3. 
     'USER': 'awe_db',      # Not used with sqlite3. 
     'PASSWORD': 'mypwd',     # Not used with sqlite3. 
     'HOST': '',      # Set to empty string for localhost. Not used with sqlite3. 
     'PORT': '',      # Set to empty string for default. Not used with sqlite3. 
    } 
} 

错误:

Traceback (most recent call last): 
File "C:\Program Files (x86)\JetBrains\PyCharm 2.6.1\helpers\pycharm\django_manage.py", line 21, in <module> 
run_module(manage_file, None, '__main__', True) 
File "C:\Python27\lib\runpy.py", line 176, in run_module 
fname, loader, pkg_name) 
File "C:\Python27\lib\runpy.py", line 82, in _run_module_code 
mod_name, mod_fname, mod_loader, pkg_name) 
File "C:\Python27\lib\runpy.py", line 72, in _run_code 
exec code in run_globals 
File "C:\Users\Fernando Alves\Dropbox\Projetos\nova_b2blue\manage.py", line 14, in <module> 
                        execute_manager(settings) 
File "C:\Python27\Lib\site-packages\django\core\management\__init__.py", line 459, in execute_manager 
utility.execute() 
File "C:\Python27\Lib\site-packages\django\core\management\__init__.py", line 382, in execute 
self.fetch_command(subcommand).run_from_argv(self.argv) 
File "C:\Python27\Lib\site-packages\django\core\management\base.py", line 196, in run_from_argv 
self.execute(*args, **options.__dict__) 
File "C:\Python27\Lib\site-packages\django\core\management\base.py", line 231, in execute 
self.validate() 
File "C:\Python27\Lib\site-packages\django\core\management\base.py", line 266, in validate 
num_errors = get_validation_errors(s, app) 
File "C:\Python27\Lib\site-packages\django\core\management\validation.py", line 103, in get_validation_errors 
connection.validation.validate_field(e, opts, f) 
File "C:\Python27\Lib\site-packages\django\db\backends\mysql\validation.py", line 14, in validate_field 
db_version = self.connection.get_server_version() 
File "C:\Python27\Lib\site-packages\django\db\backends\mysql\base.py", line 415, in get_server_version 
self.cursor().close() 
File "C:\Python27\Lib\site-packages\django\db\backends\__init__.py", line 306, in cursor 
cursor = self.make_debug_cursor(self._cursor()) 
File "C:\Python27\Lib\site-packages\django\db\backends\mysql\base.py", line 387, in _cursor 
self.connection = Database.connect(**kwargs) 
File "C:\Python27\Lib\site-packages\MySQLdb\__init__.py", line 81, in Connect 
return Connection(*args, **kwargs) 
File "C:\Python27\Lib\site-packages\MySQLdb\connections.py", line 187, in __init__ 
super(Connection, self).__init__(*args, **kwargs2) 
_mysql_exceptions.OperationalError: (2003, "Can't connect to MySQL server on 'localhost' (10061)") 
+0

您是否尝试将主机设置为'127.0.0.1'并将端口设置为'10061'? – Brandon 2013-03-15 15:25:21

+0

是的,但我使用'3306'端口,但它也不起作用。 – 2013-03-15 15:33:04

+0

不知道这是否会帮助你,但看看:http://stackoverflow.com/questions/6051043/how-to-get-django-to-work-with-mysql-in-xampp – Brandon 2013-03-15 15:35:08

回答

2

对于有人谁从谷歌发现这样做的好处,试试这个:

DATABASES = { 
    'default': { 
    'ENGINE': 'django.db.backends.mysql', 
    'NAME': 'dbname', 
    'USER': 'user', 
    'PASSWORD': 'password', 
    'HOST': '/Applications/XAMPP/xamppfiles/var/mysql/mysql.sock', 
    'PORT': '7777', 
    } 
} 

的的mysql.sock文件是这里的关键。