首先是關于啟動mysql:
1.在mac下可以用pkg文件直接安裝。
2.然后可以在系統(tǒng)偏好設置里面啟動。但是你會發(fā)現(xiàn)你除了啟動mysql其余什么都不能夠做。
3.因為你會發(fā)現(xiàn):

4.這意味我們需要進入到mysql的目錄中去。(和windows中命令的運行相類似)
/usr/local/mysql/
5.ls:

6.進入bin文件夾中,bin中存放的是可以執(zhí)行的文件。
7.執(zhí)行
./mysql -u root -p password 可以在輸入原來的密碼之后更換密碼。8.執(zhí)行
./mysql -u root -p可以在輸入密碼后進入數(shù)據(jù)庫中,這些的前提都是你在系統(tǒng)偏好設置里面開啟了mysql。9.如果沒有開啟數(shù)據(jù)庫可以使用
sudo /usr/local/mysql/support-files/mysql.server start 來啟動。10.同時關閉數(shù)據(jù)庫用的命令是
sudo /usr/local/mysql/support-files/mysql.server stop
----------------------分割線?喵喵喵。--------------
OK,現(xiàn)在可以在命令行中正確使用mysql了,那么我們需要在我們django框架下的python3項目中正確的使用mysql。
1.mysql和python之間的連接需要一個中間的部分。
2.python3.2開始就不對mysqlDB支持了,但是django的默認連接是mysqlDB,這樣我們只能通過其他的方式來連接數(shù)據(jù)庫了。
3.python3.2之后使用PyMySQL連接數(shù)據(jù)庫,當你使用:
pip install PyMySQL
來安裝pymysql的時候你會發(fā)現(xiàn),他會告訴你已經(jīng)安裝好了。但我的情況是這個沒用。
所以我又重新安裝了一遍,怎么安裝呢?
下載zip包,命令行cd到解壓后的目錄,然后輸入:
python setup.py install
我是重新安裝一遍數(shù)據(jù)庫就可以正常的連接了。。。(:з」∠)
4.然后需要在項目的init.py文件中的插入:
import pymysql
pymysql.install_as_MySQLdb()
不加的話可能會報錯,像這樣:
Unhandled exception in thread started by <function check_errors.<locals>.wrapper at 0x10f198378>
Traceback (most recent call last):
File "/usr/local/lib/python3.5/site-packages/django/db/backends/mysql/base.py", line 25, in <module>
import MySQLdb as Database
ImportError: No module named 'MySQLdb'

5.當然在settings.py文件也還要插入mysql的配置信息:

這個是老生常談的一個東西了。
然后我們跑一遍:
Performing system checks...
Unhandled exception in thread started by <function check_errors.<locals>.wrapper at 0x102a6b6a8>
Traceback (most recent call last):
File "/usr/local/lib/python3.5/site-packages/django/db/backends/base/base.py", line 199, in ensure_connection
self.connect()
File "/usr/local/lib/python3.5/site-packages/django/db/backends/base/base.py", line 171, in connect
self.connection = self.get_new_connection(conn_params)
File "/usr/local/lib/python3.5/site-packages/django/db/backends/mysql/base.py", line 263, in get_new_connection
conn = Database.connect(**conn_params)
File "/usr/local/lib/python3.5/site-packages/PyMySQL-0.7.9-py3.5.egg/pymysql/__init__.py", line 90, in Connect
return Connection(*args, **kwargs)
File "/usr/local/lib/python3.5/site-packages/PyMySQL-0.7.9-py3.5.egg/pymysql/connections.py", line 688, in __init__
self.connect()
File "/usr/local/lib/python3.5/site-packages/PyMySQL-0.7.9-py3.5.egg/pymysql/connections.py", line 906, in connect
self._request_authentication()
File "/usr/local/lib/python3.5/site-packages/PyMySQL-0.7.9-py3.5.egg/pymysql/connections.py", line 1114, in _request_authentication
auth_packet = self._read_packet()
File "/usr/local/lib/python3.5/site-packages/PyMySQL-0.7.9-py3.5.egg/pymysql/connections.py", line 981, in _read_packet
packet.check_error()
File "/usr/local/lib/python3.5/site-packages/PyMySQL-0.7.9-py3.5.egg/pymysql/connections.py", line 393, in check_error
err.raise_mysql_exception(self._data)
File "/usr/local/lib/python3.5/site-packages/PyMySQL-0.7.9-py3.5.egg/pymysql/err.py", line 107, in raise_mysql_exception
raise errorclass(errno, errval)
pymysql.err.InternalError: (1049, "Unknown database 'choosesubject'")
The above exception was the direct cause of the following exception:
Traceback (most recent call last):
File "/usr/local/lib/python3.5/site-packages/django/utils/autoreload.py", line 226, in wrapper
fn(*args, **kwargs)
File "/usr/local/lib/python3.5/site-packages/django/core/management/commands/runserver.py", line 121, in inner_run
self.check(display_num_errors=True)
File "/usr/local/lib/python3.5/site-packages/django/core/management/base.py", line 374, in check
include_deployment_checks=include_deployment_checks,
File "/usr/local/lib/python3.5/site-packages/django/core/management/base.py", line 361, in _run_checks
return checks.run_checks(**kwargs)
File "/usr/local/lib/python3.5/site-packages/django/core/checks/registry.py", line 81, in run_checks
new_errors = check(app_configs=app_configs)
File "/usr/local/lib/python3.5/site-packages/django/core/checks/model_checks.py", line 30, in check_all_models
errors.extend(model.check(**kwargs))
File "/usr/local/lib/python3.5/site-packages/django/db/models/base.py", line 1266, in check
errors.extend(cls._check_fields(**kwargs))
File "/usr/local/lib/python3.5/site-packages/django/db/models/base.py", line 1337, in _check_fields
errors.extend(field.check(**kwargs))
File "/usr/local/lib/python3.5/site-packages/django/db/models/fields/__init__.py", line 893, in check
errors = super(AutoField, self).check(**kwargs)
File "/usr/local/lib/python3.5/site-packages/django/db/models/fields/__init__.py", line 208, in check
errors.extend(self._check_backend_specific_checks(**kwargs))
File "/usr/local/lib/python3.5/site-packages/django/db/models/fields/__init__.py", line 311, in _check_backend_specific_checks
return connections[db].validation.check_field(self, **kwargs)
File "/usr/local/lib/python3.5/site-packages/django/db/backends/mysql/validation.py", line 41, in check_field
field_type = field.db_type(connection)
File "/usr/local/lib/python3.5/site-packages/django/db/models/fields/__init__.py", line 629, in db_type
return connection.data_types[self.get_internal_type()] % data
File "/usr/local/lib/python3.5/site-packages/django/db/__init__.py", line 33, in __getattr__
return getattr(connections[DEFAULT_DB_ALIAS], item)
File "/usr/local/lib/python3.5/site-packages/django/utils/functional.py", line 35, in __get__
res = instance.__dict__[self.name] = self.func(instance)
File "/usr/local/lib/python3.5/site-packages/django/db/backends/mysql/base.py", line 183, in data_types
if self.features.supports_microsecond_precision:
File "/usr/local/lib/python3.5/site-packages/django/utils/functional.py", line 35, in __get__
res = instance.__dict__[self.name] = self.func(instance)
File "/usr/local/lib/python3.5/site-packages/django/db/backends/mysql/features.py", line 54, in supports_microsecond_precision
return self.connection.mysql_version >= (5, 6, 4) and Database.version_info >= (1, 2, 5)
File "/usr/local/lib/python3.5/site-packages/django/utils/functional.py", line 35, in __get__
res = instance.__dict__[self.name] = self.func(instance)
File "/usr/local/lib/python3.5/site-packages/django/db/backends/mysql/base.py", line 367, in mysql_version
with self.temporary_connection() as cursor:
File "/usr/local/Cellar/python3/3.5.2/Frameworks/Python.framework/Versions/3.5/lib/python3.5/contextlib.py", line 59, in __enter__
return next(self.gen)
File "/usr/local/lib/python3.5/site-packages/django/db/backends/base/base.py", line 564, in temporary_connection
cursor = self.cursor()
File "/usr/local/lib/python3.5/site-packages/django/db/backends/base/base.py", line 231, in cursor
cursor = self.make_debug_cursor(self._cursor())
File "/usr/local/lib/python3.5/site-packages/django/db/backends/base/base.py", line 204, in _cursor
self.ensure_connection()
File "/usr/local/lib/python3.5/site-packages/django/db/backends/base/base.py", line 199, in ensure_connection
self.connect()
File "/usr/local/lib/python3.5/site-packages/django/db/utils.py", line 94, in __exit__
six.reraise(dj_exc_type, dj_exc_value, traceback)
File "/usr/local/lib/python3.5/site-packages/django/utils/six.py", line 685, in reraise
raise value.with_traceback(tb)
File "/usr/local/lib/python3.5/site-packages/django/db/backends/base/base.py", line 199, in ensure_connection
self.connect()
File "/usr/local/lib/python3.5/site-packages/django/db/backends/base/base.py", line 171, in connect
self.connection = self.get_new_connection(conn_params)
File "/usr/local/lib/python3.5/site-packages/django/db/backends/mysql/base.py", line 263, in get_new_connection
conn = Database.connect(**conn_params)
File "/usr/local/lib/python3.5/site-packages/PyMySQL-0.7.9-py3.5.egg/pymysql/__init__.py", line 90, in Connect
return Connection(*args, **kwargs)
File "/usr/local/lib/python3.5/site-packages/PyMySQL-0.7.9-py3.5.egg/pymysql/connections.py", line 688, in __init__
self.connect()
File "/usr/local/lib/python3.5/site-packages/PyMySQL-0.7.9-py3.5.egg/pymysql/connections.py", line 906, in connect
self._request_authentication()
File "/usr/local/lib/python3.5/site-packages/PyMySQL-0.7.9-py3.5.egg/pymysql/connections.py", line 1114, in _request_authentication
auth_packet = self._read_packet()
File "/usr/local/lib/python3.5/site-packages/PyMySQL-0.7.9-py3.5.egg/pymysql/connections.py", line 981, in _read_packet
packet.check_error()
File "/usr/local/lib/python3.5/site-packages/PyMySQL-0.7.9-py3.5.egg/pymysql/connections.py", line 393, in check_error
err.raise_mysql_exception(self._data)
File "/usr/local/lib/python3.5/site-packages/PyMySQL-0.7.9-py3.5.egg/pymysql/err.py", line 107, in raise_mysql_exception
raise errorclass(errno, errval)
django.db.utils.InternalError: (1049, "Unknown database 'choosesubject'")
解決方法來自這里。因為沒有創(chuàng)建SCS數(shù)據(jù)表。。我以為NAME關鍵字只是用來標識用的,爽快的打出了gg。。
后續(xù)遇到問題還會更新。(?_?)
多想能夠不更新就好了呢。。。