MySQL管理

MySQL管理
一、安装MySQL Server,以Window PC为例
        进入https://dev.mysql.com/downloads/installer/下载windows版本的mysql-installer-community-8.0.13.0.msi(使用community版本,Note: MySQL Installer is 32 bit, but will install both 32 bit and 64 bit binaries.),然后参照https://jingyan.baidu.com/article/642c9d343557e9644b46f743.html进行安装。主要注意几点:1、Choosing a Setup Type环节,选择Server Only即可满足大多数开发者的诉求;2、Installation环节,mysql install会自动检测依赖的环境缺失包,例如VC,请点击Execute补充安装缺失包,然后再点击Next进行Mysql的安装;3、在Type and Networking环节,选择Development Machine选项会使用最小的内存分配(因为是个人练习使用,所以不用占用太多电脑内存);4、Account and Roles环节,除了给root设置密码外,建议至少还新增一个User;5、windows service环节,建议配置mysql开机启动,省去手工开mysql服务步骤;
二、登录MySQL Server
在安装Mysql服务的windows PC服务器,打开MySQL Command Line Client窗口,输入root用户密码即可。
MySQL管理_第1张图片
登录成功后,会print一些提示信息。例如每个完整的Comand命令都以;或者\g转义字符结束,实际上也可以\G转义字符结束,只不过是按列方式print结果;
三、管理MySQL Server的users
(未完待续:参考https://www.cnblogs.com/SQL888/p/5748824.html)
MySQL Server安装完成后,默认有一个叫做mysql的DataBase。在MySQL Command Line Client中,通过MySQL的DESC命令可以查看mysql.user表结构,使用SQL通用查询语句来了解你感兴趣的用户(例如python这个用户):

DESC mysql.user;
select user,host,plugin from mysql.user;
select * from mysql.user where user='python' \G

host列限制了允许user登录所使用的设备地址,root用户的localhost,表示root只能从安装MySQL Server的设备上登录,而%是个通配符,如果Host=192.168.1.%,那么就表示只要是IP地址前缀为“192.168.1.”的客户端都可以连接。如果Host=%,表示所有IP都有连接权限。
注意,MySQL 8.0.4开始默认使用caching_sha2_password作为认证的插件

mysql> select user,host,plugin from mysql.user;
+------------------+-----------+-----------------------+
| user             | host      | plugin                |
+------------------+-----------+-----------------------+
| python           | %         | caching_sha2_password |
| mysql.infoschema | localhost | caching_sha2_password |
| mysql.session    | localhost | caching_sha2_password |
| mysql.sys        | localhost | caching_sha2_password |
| root             | localhost | caching_sha2_password |
+------------------+-----------+-----------------------+
5 rows in set (0.00 sec)

而对于之前的版本的mysql,默认的认证插件为mysql_native_password。这会导致之前常用的Mysql管理软件无法认证登陆Mysql数据库,建议通过alter user命令,将root和其他相关用户修改为native认证模式:

ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'Changeme_123';
ALTER USER 'python'@'%' IDENTIFIED WITH mysql_native_password BY 'Changeme_123';
flush privileges;
mysql> select user,host,plugin from mysql.user;
+------------------+-----------+-----------------------+
| user             | host      | plugin                |
+------------------+-----------+-----------------------+
| python           | %         | mysql_native_password |
| mysql.infoschema | localhost | caching_sha2_password |
| mysql.session    | localhost | caching_sha2_password |
| mysql.sys        | localhost | caching_sha2_password |
| root             | localhost | mysql_native_password |
+------------------+-----------+-----------------------+
5 rows in set (0.00 sec)

mysql>

 

四、Mysql数据库管理
1、图形化Mysql管理软件。可以选择HeidiSQL

2、Mysql shell管理
(待续,参考https://www.cnblogs.com/jiangxiaobo/p/6110647.html)
例如创建swuwensite这个DB,use suwensite后,show tables表格清单为空
create database suwensite default charset=utf8;

 

五、在Django中使用Mysql
Django与MySQL对应关系:
类(class)——表(table)
实例(class里面的每一个实例)——记录(table中的每一条记录,或者叫Columns)

1、创建Django项目
例如cmd到目录,创建Suwensite这个项目
django-admin startproject Suwensite

2、配置项目settings.py的Databases为Mysql

#Suwensite/settings.py
DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.mysql',
        'NAME': ‘Suwensite’),
        'USER':'python',
        'PASSWORD':'Changeme_123',
        'HOST':'127.0.0.1',
        'PORT':'3306',
    }
}

3、运行migrate以在MySQL数据库中创建INSTALLED_APPS中各应用所对应的表
python manage.py migrate

4、给项目新增一个应用和对应Models,加入INSTALLED_APPS,并为该app创建数据库表

D:\Python\Projects\Suwensite>django-admin startapp polls
#polls/ models.py
from django.db import models
class Question(models.Model):
    question_text = models.CharField(max_length=200)
    pub_date = models.DateTimeField('date published')
class Choice(models.Model):
    question = models.ForeignKey(Question, on_delete=models.CASCADE)
    choice_text = models.CharField(max_length=200)
    votes = models.IntegerField(default=0)
#Suwensite/settings.py
INSTALLED_APPS = [
    'polls.apps.PollsConfig',
#...
]
D:\Python\Projects\Suwensite>
python manage.py check
python manage.py makemigrations polls
python manage.py migrate

5、检查Mysql数据库表, 已经生成表
 

mysql> use suwensite
Database changed
mysql> show tables
    -> \g
+----------------------------+
| Tables_in_suwensite        |
+----------------------------+
| auth_group                 |
| auth_group_permissions     |
| auth_permission            |
| auth_user                  |
| auth_user_groups           |
| auth_user_user_permissions |
| django_admin_log           |
| django_content_type        |
| django_migrations          |
| django_session             |
| polls_choice               |
| polls_question             |
+----------------------------+
12 rows in set (0.00 sec)

6、Django数据库API
python manage.py shell进入shell模式后,from 模型 import 类
(待整理,见https://yiyibooks.cn/xx/Django_1.11.6/topics/db/queries.html)
 

你可能感兴趣的:(DB)