Django(8)

http://www.liujiangblog.com/course/django/163

一些基础内容略过

 

使用MySQL数据库

 

在实际生产环境,Django是不可能使用SQLite这种轻量级的基于文件的数据库作为生产数据库。一般较多的会选择MySQL。

下面介绍一下如何在Django中使用MySQL数据库。

一、安装MySQL

29.png-118.5kB

不建议在Windows中部署MySQL,建议迁移到Linux上来。

我这里使用的是ubuntu16.04。

安装ubuntu 建立虚拟机后,建议拔网线安装,反正我卡了一下午。

虚拟机启动的时候

 

  1. 在打开VMware后,点击安装好的系统,可是无法正常启动,弹出错误提示无法连接mks:套接字连接尝试次数太多,这时我们点击确定按钮。

    VM无法连接mks套接字连接尝试次数太多怎么办

  2. 接着在Windows10桌面上点击开始按钮,在弹出菜单中点击“运行”菜单项。

    VM无法连接mks套接字连接尝试次数太多怎么办

  3. 这时就会打开Windows10的运行窗口,在窗口中输入命令services.msc,然后点击确定按钮。

    VM无法连接mks套接字连接尝试次数太多怎么办

  4. 这时会打开Windows10的服务列表,在列表中找到Vmware Autorization Service服务项

    VM无法连接mks套接字连接尝试次数太多怎么办

  5. 右键点击该服务项,在弹出菜单中点击“属性”菜单项。

    VM无法连接mks套接字连接尝试次数太多怎么办

  6. 在打开的服务属性窗口中,点击“启动类型”下拉按钮,在弹出菜单中选择“自动”菜单项。

    VM无法连接mks套接字连接尝试次数太多怎么办

  7. 接下来再点击“启动”按钮,最后点击确定按钮,启动该项服务即可。

    VM无法连接mks套接字连接尝试次数太多怎么办

  8. 8

    用同样的方法,我们再把下面的几个Vmware相关的服务启动,然后再运行VMware就可以了。

    VM无法连接mks套接字连接尝试次数太多怎么办

 

安装命令:

进入窗口指令为CTRL+ALT+T

sudo apt-get update
sudo apt-get install mysql-server mysql-client

30.png-42kB

中途,请设置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

提示如下:

[[email protected]: ~]$ 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
版权声明:本文为Lingsx04原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/Lingsx04/article/details/81749376