安装mysql数据库sudoapt-getinstallmysql-server查看都安装了些什么安装过程中会提示输入两次密码,那么这个密码就是root用户的密码,用户名自然默认就是root卸载数据库......
安装mysql数据库
sudoapt-getinstallmysql-server查看都安装了些什么
安装过程中会提示输入两次密码,那么这个密码就是root用户的密码,用户名自然默认就是root
卸载数据库这里是顺便讲一下怎么干净的卸载掉mysql数据库,与本次配置无关
先卸载:sudoapt-getremovemysql-common然后:再用:dpkg--list|grepmysql查看,还剩什么就卸载什么最后清除残留数据:dpkg-l|grep^rc|awk'{print$2}'|sudoxargsdpkg-PMysql数据库基本操作
这里我把mysql数据库基本的操作命令给大家整理出来,以供大家学习参考
mysql-uroot-p查看所有数据库,结尾有";"usepythonbj列出所有表,结尾有";"createdatabasepythonbj推荐使用下边这条命令创建数据库,意思是创建一个库字符集编码为utf-8,pythonbj是库名createdatabasepythonbjdefaultcharactersetutf8collateutf8_general_ci;删除数据库,pythonbj是库名usepythonbj;退出数据库
安装完mysql之后,登陆以后,不管运行任何命令,总是提示错误,完成以下三步退出再登,使用新设置的密码就行了,其他原样输入即可,没有错误,这里就不用管了,跳到下一步
step1:SETPASSWORD=PASSWORD('yournewpassword');step2:ALTERUSER'root'@'localhost'PASSWORDEXPIRENEVER;step3:flushprivileges;Django配置数据库:
在web项目下的下面配置mysql数据库的连接参数
DATABASES={'default':{'ENGINE':'','NAME':'pythonbj',用户名称默认是root'PASSWORD':'123456',默认'PORT':'3306',(mostrecentcalllast):File"/var/www/PythonBJ/venv/lib//site-packages/django/db/backs/mysql/",line15,inmoduleimportMySQLdbasDatabaseImportError:Nomodulenamed'MySQLdb'Theaboveexceptionwasthedirectcauseofthefollowingexception:Traceback(mostrecentcalllast):File"",line21,inmodulemain()File"",line17,inmainexecute_from_command_line()File"/var/www/PythonBJ/venv/lib//site-packages/django/core/management/__init__.py",line381,inexecute_from_command_()File"/var/www/PythonBJ/venv/lib//site-packages/django/core/management/__init__.py",line357,()File"/var/www/PythonBJ/venv/lib//site-packages/django/__init__.py",line24,(_APPS)File"/var/www/PythonBJ/venv/lib//site-packages/django/apps/",line114,inpopulateapp__models()File"/var/www/PythonBJ/venv/lib//site-packages/django/apps/",line211,inimport__module=import_module(models_module_name)File"/var/www/PythonBJ/venv/lib//importlib/__init__.py",line126,inimport_modulereturn_bootstrap._gcd_import(name[level:],package,level)File"frozenimportlib._bootstrap",line986,in_gcd_importFile"frozenimportlib._bootstrap",line969,in_find_and_loadFile"frozenimportlib._bootstrap",line958,in_find_and_load_unlockedFile"frozenimportlib._bootstrap",line673,in_load_unlockedFile"frozenimportlib._bootstrap_external",line665,inexec_moduleFile"frozenimportlib._bootstrap",line222,in_call_with_frames_removedFile"/var/www/PythonBJ/venv/lib//site-packages/django/contrib/auth/",line2,_userimportAbstractBaseUser,BaseUserManagerFile"/var/www/PythonBJ/venv/lib//site-packages/django/contrib/auth/base_",line47,inmoduleclassAbstractBaseUser():File"/var/www/PythonBJ/venv/lib//site-packages/django/db/models/",line117,in__new__new__to_class('_meta',Options(meta,app_label))File"/var/www/PythonBJ/venv/lib//site-packages/django/db/models/",line321,inadd_to__to_class(cls,name)File"/var/www/PythonBJ/venv/lib//site-packages/django/db/models/",line204,incontribute_to__table=truncate_name(_table,_name_length())File"/var/www/PythonBJ/venv/lib//site-packages/django/db/__init__.py",line28,in__getattr__returngetattr(connections[DEFAULT_DB_ALIAS],item)File"/var/www/PythonBJ/venv/lib//site-packages/django/db/",line201,in__getitem__back=load_back(db['ENGINE'])File"/var/www/PythonBJ/venv/lib//site-packages/django/db/",line110,inload_backreturnimport_module('%'%back_name)File"/var/www/PythonBJ/venv/lib//importlib/__init__.py",line126,inimport_modulereturn_bootstrap._gcd_import(name[level:],package,level)File"/var/www/PythonBJ/venv/lib//site-packages/django/db/backs/mysql/",line20,inmodule):?
我们看最后提示错误两行的提示错误:?
我大概谷歌翻译了以下,意思是缺少python连接数据的库,我们需要安装一下:
在虚拟环境下安装
(mostrecentcalllast):File"",line21,inmodulemain()File"",line17,inmainexecute_from_command_line()File"/var/www/PythonBJ/venv/lib//site-packages/django/core/management/__init__.py",line381,inexecute_from_command_()File"/var/www/PythonBJ/venv/lib//site-packages/django/core/management/__init__.py",line357,()File"/var/www/PythonBJ/venv/lib//site-packages/django/__init__.py",line24,(_APPS)File"/var/www/PythonBJ/venv/lib//site-packages/django/apps/",line114,inpopulateapp__models()File"/var/www/PythonBJ/venv/lib//site-packages/django/apps/",line211,inimport__module=import_module(models_module_name)File"/var/www/PythonBJ/venv/lib//importlib/__init__.py",line126,inimport_modulereturn_bootstrap._gcd_import(name[level:],package,level)File"frozenimportlib._bootstrap",line986,in_gcd_importFile"frozenimportlib._bootstrap",line969,in_find_and_loadFile"frozenimportlib._bootstrap",line958,in_find_and_load_unlockedFile"frozenimportlib._bootstrap",line673,in_load_unlockedFile"frozenimportlib._bootstrap_external",line665,inexec_moduleFile"frozenimportlib._bootstrap",line222,in_call_with_frames_removedFile"/var/www/PythonBJ/venv/lib//site-packages/django/contrib/auth/",line2,_userimportAbstractBaseUser,BaseUserManagerFile"/var/www/PythonBJ/venv/lib//site-packages/django/contrib/auth/base_",line47,inmoduleclassAbstractBaseUser():File"/var/www/PythonBJ/venv/lib//site-packages/django/db/models/",line117,in__new__new__to_class('_meta',Options(meta,app_label))File"/var/www/PythonBJ/venv/lib//site-packages/django/db/models/",line321,inadd_to__to_class(cls,name)File"/var/www/PythonBJ/venv/lib//site-packages/django/db/models/",line204,incontribute_to__table=truncate_name(_table,_name_length())File"/var/www/PythonBJ/venv/lib//site-packages/django/db/__init__.py",line28,in__getattr__returngetattr(connections[DEFAULT_DB_ALIAS],item)File"/var/www/PythonBJ/venv/lib//site-packages/django/db/",line201,in__getitem__back=load_back(db['ENGINE'])File"/var/www/PythonBJ/venv/lib//site-packages/django/db/",line110,inload_backreturnimport_module('%'%back_name)File"/var/www/PythonBJ/venv/lib//importlib/__init__.py",line126,inimport_modulereturn_bootstrap._gcd_import(name[level:],package,level)File"/var/www/PythonBJ/venv/lib//site-packages/django/db/backs/mysql/",line36,inmoduleraiseImproperlyConfigured(';youhave%s.'%Database.__version__):;(venv)root@ubuntu:/var/www/:;::commandnotfoundyou:commandnotfound
研究报错提示吧,发现啊,在第89行发现了raise,这个在python里指的是主动触发错误,看了一下意思是我安装的mysqlclient版本是0.9.3,不符合要大于1.3.13版本的判断条件,主动触发的这个错误信息。
安装高版本mysqlclient
虚拟环境下运行以下安装命令
pip3installmysqlclient
跨擦,奶奶的又报错了,错误信息如下:
(venv)root@ubuntu:/var/www/PythonBJvenv是虚拟环境文件夹
注释掉以上路径mysql文件夹下文件里的判断条件,应该是35,36两行,对就是下边两行,直接注释,上传覆盖
ifversion(1,3,13):raiseImproperlyConfigured(';youhave%s.'%Database.__version__)
继续生成迁移文件,继续报错,错误信息如下
(venv)root@ubuntu:/var/www/PythonBJ数据库名称'USER':'root',密码'HOST':'127.0.0.1',默认"OPTIONS":{"init_command":"SETdefault_storage_engine=INNODB;"}(mostrecentcalllast):File"",line21,inmodulemain()File"",line17,inmainexecute_from_command_line()File"/var/www/PythonBJ/venv/lib//site-packages/django/core/management/__init__.py",line381,inexecute_from_command_()File"/var/www/PythonBJ/venv/lib//site-packages/django/core/management/__init__.py",line375,_command(subcommand).run_from_argv()File"/var/www/PythonBJ/venv/lib//site-packages/django/core/management/",line323,inrun_from_(*args,**cmd_options)File"/var/www/PythonBJ/venv/lib//site-packages/django/core/management/",line361,()File"/var/www/PythonBJ/venv/lib//site-packages/django/core/management/",line390,incheckinclude_deployment_checks=include_deployment_checks,File"/var/www/PythonBJ/venv/lib//site-packages/django/core/management/commands/",line64,in_run_checksissues=run_checks(tags=[])File"/var/www/PythonBJ/venv/lib//site-packages/django/core/checks/",line72,inrun_checksnew_errors=check(app_configs=app_configs)File"/var/www/PythonBJ/venv/lib//site-packages/django/core/checks/",line10,incheck_database_((**kwargs))File"/var/www/PythonBJ/venv/lib//site-packages/django/db/backs/mysql/",line9,(self._check_sql_mode(**kwargs))File"/var/www/PythonBJ/venv/lib//site-packages/django/db/backs/mysql/",line13,in_check_sql_()ascursor:File"/var/www/PythonBJ/venv/lib//site-packages/django/db/backs/base/",line256,incursorreturnself._cursor()File"/var/www/PythonBJ/venv/lib//site-packages/django/db/backs/base/",line233,in__connection()File"/var/www/PythonBJ/venv/lib//site-packages/django/db/backs/base/",line217,inensure_()File"/var/www/PythonBJ/venv/lib//site-packages/django/db/backs/base/",line197,_connection_state()File"/var/www/PythonBJ/venv/lib//site-packages/django/db/backs/mysql/",line232,ininit_connection__sql_auto_is_null_enabled:File"/var/www/PythonBJ/venv/lib//site-packages/django/utils/",line80,in__get__res=instance.__dict__[]=(instance)File"/var/www/PythonBJ/venv/lib//site-packages/django/db/backs/mysql/",line82,inis_sql_auto_is_null_('SELECT@@SQL_AUTO_IS_NULL')File"/var/www/PythonBJ/venv/lib//site-packages/django/db/backs/",line103,inexecutesql=_executed_query(,sql,params)File"/var/www/PythonBJ/venv/lib//site-packages/django/db/backs/mysql/",line146,inlast_executed_queryquery=(errors='replace')AttributeError:'str'objecthasnoattribute'decode'(venv)root@ubuntu:/var/www/PythonBJ将decode替换成encode.
上传覆盖。
运行以下命令,迁移数据库
迁移数据库
成功啦,感觉人生已经到达了巅峰,感觉人生已经到达了高潮:
(venv)root@ubuntu:/var/www/PythonBJ#:Applyallmigrations:Course,admin,auth,contenttypes,download,readnum,sessionsRunningmigrations:_____logentry_remove_auto__logentry_add_action_flag__remove_content_type__alter_permission_name_max__alter_user_email_max__alter_user_username__alter_user_last_login__require_contenttypes_0002_alter_validators_add_error__alter_user_username_max__alter_user_last_name_max__alter_group_name_max__update_proxy____initialOK
一溜的OK,爽歪歪。