http://www.liujiangblog.com/course/django/163
一些基础内容略过
使用MySQL数据库
在实际生产环境,Django是不可能使用SQLite这种轻量级的基于文件的数据库作为生产数据库。一般较多的会选择MySQL。
下面介绍一下如何在Django中使用MySQL数据库。
一、安装MySQL
不建议在Windows中部署MySQL,建议迁移到Linux上来。
我这里使用的是ubuntu16.04。
安装ubuntu 建立虚拟机后,建议拔网线安装,反正我卡了一下午。
虚拟机启动的时候
-
在打开VMware后,点击安装好的系统,可是无法正常启动,弹出错误提示无法连接mks:套接字连接尝试次数太多,这时我们点击确定按钮。
-
接着在Windows10桌面上点击开始按钮,在弹出菜单中点击“运行”菜单项。
-
这时就会打开Windows10的运行窗口,在窗口中输入命令services.msc,然后点击确定按钮。
-
这时会打开Windows10的服务列表,在列表中找到Vmware Autorization Service服务项
-
右键点击该服务项,在弹出菜单中点击“属性”菜单项。
-
在打开的服务属性窗口中,点击“启动类型”下拉按钮,在弹出菜单中选择“自动”菜单项。
-
接下来再点击“启动”按钮,最后点击确定按钮,启动该项服务即可。
-
8
用同样的方法,我们再把下面的几个Vmware相关的服务启动,然后再运行VMware就可以了。
安装命令:
进入窗口指令为CTRL+ALT+T
sudo apt-get update
sudo apt-get install mysql-server mysql-client
中途,请设置root用户的密码。
mysql -u root -p 按回车,输入密码后提示access denied......ues password YES/NO的错误。
第一步:
这时你需要进入/etc/mysql目录下,然后sudo vim/vi debian.cnf查看里面的用户名和密码,然后使用这个文件中的用户名和密码进入mysql,假如debian.cnf中的用户名为debian-sys-maint,则:
mysql -u debian-sys-maint -p按回车,这时需要你输入密码,复制debian.cnf中的密码(不要手动输入,因为容易产生错误)。
此时你能进入到mysql里面了。(这里很麻烦 因为我没使用过vi/vim,光标啥的很麻烦,建议提前使用,大佬们说很好用)
第二步:
修改人root密码
根据上一步登录mysql客户端
mysql> use mysql;
Database changed
mysql> update user set password=password('new password') where user='root';
Query OK, 4 rows affected (0.00 sec)
Rows matched: 4 Changed: 4 Warnings: 0
mysql> flush privileges;
Query OK, 0 rows affected (0.00 sec)
mysql> quit
第三步:
用新改的root和密码登录查看。
然而我的还是不能用,于是:
1、首先将my.ini中加入在[mysqld]节点上加skip-grant-tables
主要作用是:跳过表中的验证,可以无密码登陆。我没用,因为我使用的是进去看到的那个sys的用户登录
2、登录之后查询plugin字段值:
mysql> select plugin from user where user = 'root';
执行结果plugin字段为空。我的不为空,但是我还是按照他的改了
3、更新plugin字段为mysql默认值:
mysql> update user set plugin='mysql_native_password';
查询更新结果:
4、更新成功,继续执行更新密码操作:
mysql> update user set authentication_string=password('123456') where user='root' and host='localhost';我查阅的时候发现问题主要在这,好像是localhost中没有root,但是我不明白
5、刷新权限:
mysql> flush privileges;
6、将my.ini中的skip-grant-tables注释掉或者删掉
重启mysql,密码更新成功,亲测有效!免了,我刷新之后quit退出后重新登录就成功了
安装完毕后,使用命令行工具,输入root的密码,进入mysql:
mysql -u root -p
提示如下:
[feixue@feixue-VirtualBox: ~]$ mysql -u root -p
Enter password:
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 4
Server version: 5.7.20-0ubuntu0.16.04.1 (Ubuntu)
Copyright (c) 2000, 2017, Oracle and/or its affiliates. All rights reserved.
Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
mysql>
可以使用命令,先看看当前数据库系统内有哪些已经默认创建好了的数据库:
mysql> SHOW DATABASES;
+--------------------+
| Database |
+--------------------+
| information_schema |
| mysql |
| performance_schema |
| sys |
+--------------------+
4 rows in set (0.04 sec)
假设我们的Django工程名字为'mysite',那么我们就创建一个mysite数据库,当然,名字其实随意,但是一样的更好记忆和区分,不是么?
CREATE DATABASE mysite CHARACTER SET utf8;
强调:一定要将字符编码设置为utf8,很多错误就是没正确设置编码导致的!
创建好mystie数据库后,可以用上面的命令,检查一下,没有问题,就退出mysql。
mysql> CREATE DATABASE mysite CHARACTER SET utf8;
Query OK, 1 row affected (0.00 sec)
mysql> SHOW DATABASES;
+--------------------+
| Database |
+--------------------+
| information_schema |
| mysite |
| mysql |
| performance_schema |
| sys |
+--------------------+
5 rows in set (0.00 sec)
mysql> exit;
Bye