zoukankan      html  css  js  c++  java
  • 数据库-MySQL

    一. 数据库概述

    什么是数据(DATA)?

     描述事物的符号记录称为数据,描述事物的符号既可以是数字,也可以是是文字,图片,图像,声音,语言等,

    数据由多种表现形式,他们都可以经过数字化后存入计算机.

     在计算机中描述一个 事物, 就需要抽取这一事物的典型特征,组成一条记录,就相当于文件里的一行内容.

    什么是数据库(DATABASE,简称DB)

     数据库即是存放数据的仓库,只不过这个仓库是在计算机存储设备上,而且数据是按一定的格式存放的.

    数据库是长期存放在计算机内,有组织,可共享的数据即可.

    数据库中的数据按一定的数据模型组织,描述和储存,具有较小的冗余度,较高的数据独立性和易扩展性.并可为多用户共享.

    什么是数据库管理系统(DataBase Management System)?

    如MySQL,Oracle,SQLite

    mysql主要用于大型门户,例如搜狗,新浪等,它主要的优势就是开放源代码,因为开放源代码这个数据库是免费的,他现在是甲骨文公司的产品.

    数据库服务器, 数据管理系统, 数据库, 表 与 记录的关系 (重点!!!)

    记录: 1 xxx 23232 32 ( 多个字段的信息组成一条记录,即文件中的一行内容)

    表: student, school, class_list ( 即文件)

    数据库: fly_stu ( 即是 文件夹)

    数据库管理系统: 如mysql ( 是一个软件)

    数据库服务器: 一台计算机 (对内存要求比较高).

      总结: 数据库服务器: 运行数据库管理软件

          数据库管理软件: 管理数据库

          数据库: 即文件夹, 用来组织文件/表.

          表: 即文件,用来存放多行内容/多条记录.

    二. MySQL安装和基本管理

      主要内容:

        1. mysql的介绍安装和启动

        2.mysql破解密码

        3. mysql中统一字符编码

    mysql 是一个关系型数据库管理系统.关系数据库将数据保存在不同的表中,而不是将所有数据放在一个大仓库内,这样就增加了速度并提高了灵活性.

    mysql是什么?

     通俗的来说: mysql就是一个基于socket编写的C/S架构的软件.(client/server)

    数据库管理软件分类

     分两大类:

      关系型: 如sqllite,db2,oracle,access,sql,server,MySQL. 注意: sql语句通用

      非关系型: mongodb,redis,memcache

    总结两句话:

      关系型数据库需要有表结构

      非关系型数据库是key-value存储的,没有表结构.

    所以,现在我们使用关系型数据库管理系统(RDEMS)来存储和管理的大数据量.所谓的关系型数据库,

    是建立在关系模型基础上的数据库,借助于集合代数等数学概念和方法来处理数据库中的数据.

    RDBMS即关系数据库管理系统的特点:

      1. 数据以表格的形式出现

      2. 每行为各种记录名称

      3. 每列为记录名称所对应的数据域

      4. 许多的行和列组成一张表单

      5. 若干的表单组成database

    RDBMS 术语

    在我们开始学习MySQL数据库前,让我们先了解RDBMS的一些术语:

      数据库: 数据库是一些关联表的集合.

      数据表: 表是数据的矩阵,在一个数据库中的表看起来像一个简单的电子表格.

      列: 一列(数据元素) 包含了相同的数据,例如邮政编码的数据.

      行: 一行(=元组, 或记录) 是一组相关的数据, 例如一条用户订阅的数据.

      冗余: 存储两倍数据,冗余降低了性能,但提高了数据的安全性.

      主键: 主键是唯一的. 一个数据表中只能包含一个主键. 你可以使用主键来查询数据.

      外键: 外键用于关联两个表.

      复合键: 复合键(组合键)将多个列作为一个索引键,一般用于复合索引.

      索引: 使用索引可快速访问数据库表中的特定信息,索引是对数据库表中一列或多列的值进行排序的一种结构.类似于书籍的目录.

      参照完整性: 参照的完整性要求关系中不允许引用不存在的实体.

    MySQL的下载安装

     想要使用MySQL来存储并保存数据,则需要做几件事情:

      1.安装MySQL服务端

      2.安装MySQL客户端

      3. 客户端 连接 服务端

      4. 客户端 发送命令给 服务端MySQL 服务的接收命令并执行相应操作( 增删改查等)

     下载地址: 

    https://dev.mysql.com/downloads/mysql/

    3, 解压

     如果想要让MySQL安装在指定目录,那么就将解压后的文件夹移动到指定目录,如: E:mysql-5.5.570winx64

    4. 添加环境变量

      将详细路径添加到环境变量中.用 ; 分割.

    5. 初始化

      mysqld --initialize-insecure

    6. 启动mysql服务

      mysqld # 启动MySQL服务

    7.启动mysql客户端并连接mysql服务端 ( 新开一个cmd窗口 )

      mysql -u root -p  #连接mysql服务器

      上一述解决了一些问题,但不够彻底,因为在执行mysql 启动mysql服务器时,当前终端会被hang住,那么做一下设置即可解决此问题,即将MySQL服务制作成windows服务.

    注意: --install前,必须用mysql启动命令的绝对路径

    # 制作MySQL的windows服务,在终端执行此命令:

    ''E:mysqlmysql-5.7.21-winx64inmysqld" --install

    # 移除MySQL的windows服务,在终端执行此命令:

    "C:mysqlmysql-5.7.21-winx64inmysqld" --remove

    注册成服务之后,以后再启动和关闭MySQL服务时,仅需执行如下命令:

    # 启动mysql服务

    net start mysql

    # 关闭mysql服务

    net stop mysql

    windows 下登录设置密码

    打开终端,输入mysql

    输入mysql提供的函数: select user(); # 查看当前登陆的账号

    当前登陆的默认账号为root@localhost

    如果想切到root账号登陆
    执行命令:

    mysql -uroot -p

    再查看当前用户:

    select user();

    管理员为root(拥有最高权限,管理员账号),密码为空,以无密码的方式登陆了管理员账号,是非常危险的一件事情,所以要为管理员账号设置密码.

    设置密码

    设置管理员root账号密码为123

    C:....> mysqladimin -uroot -p password "123" # 设置初始密码,由于原密码为空,因为-p可以不用,注意这句话不起作用,请使用update mysql.user set authentication_string = password('') where User='root';

    然后再登陆账号,不输入密码则会出现如下结果:

     mysql -uroot -p

    再执行如下操作:

     mysql -uroot -p123

    如果想将原始密码123,设置新密码为456

    C:...> mysqladmin -uroot -p"123" password "456" # 修改mysql密码,因为已经有密码了,所以必须输入原密码才能设置新密码.

    依次执行如下操作:

    mysql -uroot -p456

    select user();

    密码忘记---破解密码

    跳过授权方式,直接登陆!!

    1.以管理员身份打开cmd

    2.停掉mysql服务端

    C:...> net stop mysql

    MySQL 服务正在停止.

    MySQL 服务已成功停止.

    3.执行如下命令跳过授权表

    # 跳过授权表

    C:..> mysqld --skip-grant-tables

    4.再次查看

    mysql -u root -p

      之前密码是456,现在可以跳过密码,直接登录. 

    5.现在可以任意的更改密码,执行如下命令.

    update mysql.user set authentication_string = password('') where User='root';

    6.刷新权限

    flush privileges;

    7.退出mysql,执行命令:exit

    8.让用户去加载权限,以管理员身份进入cmd,查看当前mysq进程

    tasklist |findstr mysql  # 查看当前mysql的进程

    9. 杀死当前的进程,执行如下命令.

    taskkill /F /PID 2132 # 杀死当前的进程pid

    10.再次执行如下操作,还原.

    net start mysql

    mysql -uroot -p

    统一字符编码

    进入mysql客户端,执行s

    为了统一字符编码,请执行如下操作:

    (1),my.ini文件是mysql的配置文件,

    在E:mysqlmysql-5.7.21-winx64文件下创建my.ini文件

    (2), 将如下代码拷贝保存.

    [mysqld]
    # 设置mysql的安装目录 **后面的路径一定是安装sql的目录(自己电脑的)**
    basedir=E:mysqlmysql-5.7.21-winx64
    # 设置mysql数据库的数据的存放目录,必须是data
    datadir= E:mysqlmysql-5.7.21-winx64data

    sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES
    # mysql端口
    port=3306
    # 字符集
    [mysqld]
    character-set-server=utf8
    collation-server=utf8_general_ci
    [client]
    default-character-set=utf8
    [mysql]
    default-character-set=utf8

    (3),以管理员身份重启服务,执行如下命令.

    net stop MySQL

    net start MySQL

    (4), 在cmd中输入mysql进入mysql环境,执行s,显示如下信息,表示成功.

    s

    
    
    
    

    [mysqld]# 设置mysql的安装目录 **后面的路径一定是安装sql的目录(自己电脑的)**basedir=C:mysql-5.7.22-winx64mysql-5.7.22-winx64# 设置mysql数据库的数据的存放目录,必须是datadatadir=C:mysql-5.7.22-winx64mysql-5.7.22-winx64datasql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES# mysql端口port=3306# 字符集[mysqld]character-set-server=utf8collation-server=utf8_general_ci[client]default-character-set=utf8[mysql]default-character-set=utf8

    ---恢复内容结束---

    一. 数据库概述

    什么是数据(DATA)?

     描述事物的符号记录称为数据,描述事物的符号既可以是数字,也可以是是文字,图片,图像,声音,语言等,

    数据由多种表现形式,他们都可以经过数字化后存入计算机.

     在计算机中描述一个 事物, 就需要抽取这一事物的典型特征,组成一条记录,就相当于文件里的一行内容.

    什么是数据库(DATABASE,简称DB)

     数据库即是存放数据的仓库,只不过这个仓库是在计算机存储设备上,而且数据是按一定的格式存放的.

    数据库是长期存放在计算机内,有组织,可共享的数据即可.

    数据库中的数据按一定的数据模型组织,描述和储存,具有较小的冗余度,较高的数据独立性和易扩展性.并可为多用户共享.

    什么是数据库管理系统(DataBase Management System)?

    如MySQL,Oracle,SQLite

    mysql主要用于大型门户,例如搜狗,新浪等,它主要的优势就是开放源代码,因为开放源代码这个数据库是免费的,他现在是甲骨文公司的产品.

    数据库服务器, 数据管理系统, 数据库, 表 与 记录的关系 (重点!!!)

    记录: 1 xxx 23232 32 ( 多个字段的信息组成一条记录,即文件中的一行内容)

    表: student, school, class_list ( 即文件)

    数据库: fly_stu ( 即是 文件夹)

    数据库管理系统: 如mysql ( 是一个软件)

    数据库服务器: 一台计算机 (对内存要求比较高).

      总结: 数据库服务器: 运行数据库管理软件

          数据库管理软件: 管理数据库

          数据库: 即文件夹, 用来组织文件/表.

          表: 即文件,用来存放多行内容/多条记录.

    二. MySQL安装和基本管理

      主要内容:

        1. mysql的介绍安装和启动

        2.mysql破解密码

        3. mysql中统一字符编码

    mysql 是一个关系型数据库管理系统.关系数据库将数据保存在不同的表中,而不是将所有数据放在一个大仓库内,这样就增加了速度并提高了灵活性.

    mysql是什么?

     通俗的来说: mysql就是一个基于socket编写的C/S架构的软件.(client/server)

    数据库管理软件分类

     分两大类:

      关系型: 如sqllite,db2,oracle,access,sql,server,MySQL. 注意: sql语句通用

      非关系型: mongodb,redis,memcache

    总结两句话:

      关系型数据库需要有表结构

      非关系型数据库是key-value存储的,没有表结构.

    所以,现在我们使用关系型数据库管理系统(RDEMS)来存储和管理的大数据量.所谓的关系型数据库,

    是建立在关系模型基础上的数据库,借助于集合代数等数学概念和方法来处理数据库中的数据.

    RDBMS即关系数据库管理系统的特点:

      1. 数据以表格的形式出现

      2. 每行为各种记录名称

      3. 每列为记录名称所对应的数据域

      4. 许多的行和列组成一张表单

      5. 若干的表单组成database

    RDBMS 术语

    在我们开始学习MySQL数据库前,让我们先了解RDBMS的一些术语:

      数据库: 数据库是一些关联表的集合.

      数据表: 表是数据的矩阵,在一个数据库中的表看起来像一个简单的电子表格.

      列: 一列(数据元素) 包含了相同的数据,例如邮政编码的数据.

      行: 一行(=元组, 或记录) 是一组相关的数据, 例如一条用户订阅的数据.

      冗余: 存储两倍数据,冗余降低了性能,但提高了数据的安全性.

      主键: 主键是唯一的. 一个数据表中只能包含一个主键. 你可以使用主键来查询数据.

      外键: 外键用于关联两个表.

      复合键: 复合键(组合键)将多个列作为一个索引键,一般用于复合索引.

      索引: 使用索引可快速访问数据库表中的特定信息,索引是对数据库表中一列或多列的值进行排序的一种结构.类似于书籍的目录.

      参照完整性: 参照的完整性要求关系中不允许引用不存在的实体.

    MySQL的下载安装

     想要使用MySQL来存储并保存数据,则需要做几件事情:

      1.安装MySQL服务端

      2.安装MySQL客户端

      3. 客户端 连接 服务端

      4. 客户端 发送命令给 服务端MySQL 服务的接收命令并执行相应操作( 增删改查等)

     下载地址: 

    https://dev.mysql.com/downloads/mysql/

    3, 解压

     如果想要让MySQL安装在指定目录,那么就将解压后的文件夹移动到指定目录,如: E:mysql-5.5.570winx64

    4. 添加环境变量

      将详细路径添加到环境变量中.用 ; 分割.

    5. 初始化

      mysqld --initialize-insecure

    6. 启动mysql服务

      mysqld # 启动MySQL服务

    7.启动mysql客户端并连接mysql服务端 ( 新开一个cmd窗口 )

      mysql -u root -p  #连接mysql服务器

      上一述解决了一些问题,但不够彻底,因为在执行mysql 启动mysql服务器时,当前终端会被hang住,那么做一下设置即可解决此问题,即将MySQL服务制作成windows服务.

    注意: --install前,必须用mysql启动命令的绝对路径

    # 制作MySQL的windows服务,在终端执行此命令:

    ''E:mysqlmysql-5.7.21-winx64inmysqld" --install

    # 移除MySQL的windows服务,在终端执行此命令:

    "C:mysqlmysql-5.7.21-winx64inmysqld" --remove

    注册成服务之后,以后再启动和关闭MySQL服务时,仅需执行如下命令:

    # 启动mysql服务

    net start mysql

    # 关闭mysql服务

    net stop mysql

    windows 下登录设置密码

    打开终端,输入mysql

    输入mysql提供的函数: select user(); # 查看当前登陆的账号

    当前登陆的默认账号为root@localhost

    如果想切到root账号登陆
    执行命令:

    mysql -uroot -p

    再查看当前用户:

    select user();

    管理员为root(拥有最高权限,管理员账号),密码为空,以无密码的方式登陆了管理员账号,是非常危险的一件事情,所以要为管理员账号设置密码.

    设置密码

    设置管理员root账号密码为123

    C:....> mysqladimin -uroot -p password "123" # 设置初始密码,由于原密码为空,因为-p可以不用,注意这句话不起作用,请使用update mysql.user set authentication_string = password('') where User='root';

    然后再登陆账号,不输入密码则会出现如下结果:

     mysql -uroot -p

    再执行如下操作:

     mysql -uroot -p123

    如果想将原始密码123,设置新密码为456

    C:...> mysqladmin -uroot -p"123" password "456" # 修改mysql密码,因为已经有密码了,所以必须输入原密码才能设置新密码.

    依次执行如下操作:

    mysql -uroot -p456

    select user();

    密码忘记---破解密码

    跳过授权方式,直接登陆!!

    1.以管理员身份打开cmd

    2.停掉mysql服务端

    C:...> net stop mysql

    MySQL 服务正在停止.

    MySQL 服务已成功停止.

    3.执行如下命令跳过授权表

    # 跳过授权表

    C:..> mysqld --skip-grant-tables

    4.再次查看

    mysql -u root -p

      之前密码是456,现在可以跳过密码,直接登录. 

    5.现在可以任意的更改密码,执行如下命令.

    update mysql.user set authentication_string = password('') where User='root';

    6.刷新权限

    flush privileges;

    7.退出mysql,执行命令:exit

    8.让用户去加载权限,以管理员身份进入cmd,查看当前mysq进程

    tasklist |findstr mysql  # 查看当前mysql的进程

    9. 杀死当前的进程,执行如下命令.

    taskkill /F /PID 2132 # 杀死当前的进程pid

    10.再次执行如下操作,还原.

    net start mysql

    mysql -uroot -p

    统一字符编码

    进入mysql客户端,执行s

    为了统一字符编码,请执行如下操作:

    (1),my.ini文件是mysql的配置文件,

    在E:mysqlmysql-5.7.21-winx64文件下创建my.ini文件

    (2), 将如下代码拷贝保存.

    [mysqld]
    # 设置mysql的安装目录 **后面的路径一定是安装sql的目录(自己电脑的)**
    basedir=E:mysqlmysql-5.7.21-winx64
    # 设置mysql数据库的数据的存放目录,必须是data
    datadir= E:mysqlmysql-5.7.21-winx64data

    sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES
    # mysql端口
    port=3306
    # 字符集
    [mysqld]
    character-set-server=utf8
    collation-server=utf8_general_ci
    [client]
    default-character-set=utf8
    [mysql]
    default-character-set=utf8

    (3),以管理员身份重启服务,执行如下命令.

    net stop MySQL

    net start MySQL

    (4), 在cmd中输入mysql进入mysql环境,执行s,显示如下信息,表示成功.

    s

    
    
    
    
    
  • 相关阅读:
    WP之Sql Server CE数据库
    WP布局之Pivot和Panorama
    设计模式之职责链模式
    设计模式之命令模式
    设计模式之桥接模式
    设计模式之组合模式
    设计模式之备忘录模式
    设计模式之适配器模式
    记录参加微软打造开发者社会生态圈线下会议
    ”我的2016“-太多难忘的第一次
  • 原文地址:https://www.cnblogs.com/marry215464/p/9780745.html
Copyright © 2011-2022 走看看