数据库01 /Mysql初识、基本指令、数据库密码相关、创建用户及授权

1. 数据库概述

  • 相关概念

    1. 数据库:数据库,简而言之可视为电子化的文件柜——存储电子文件的处所,用户可以对文件中的数据运行新增、截取、更新、删除等操作。

    2. 所谓“数据库”系以一定方式储存在一起、能予多个用户共享、具有尽可能小的冗余度、与应用程序彼此独立的数据集合

    3. 库:相当于文件夹

      表:相当于文件

      记录:表里边的内容

  • 数据库分类

    关系型:每个字段之间的关系紧密,通过任何一个字段都可以查到该组数据

    非关系型:只能通过key,去获取value

  • 数据库的优势

    1. 程序稳定性:相对来说,程序会更加稳定
    2. 数据一致性 :所有的数据都存储在一起,所有的程序操作的数据都是统一的,就不会出现数据不一致的现象
    3. 并发 :数据库可以良好的支持并发,所有的程序操作数据库都是通过网络,而数据库本身支持并发的网络操作
    4. 效率 :使用数据库对数据进行增删改查的效率要高出我们自己处理文件很多

2. 数据库管理系统/DBMS

  • DBMS/数据库管理系统 概述

    数据库管理系统(英语:Database Management System,简称DBMS)是为管理数据库而设计的电脑软件系统,一般具有存储、截取、安全保障、备份等基础功能。

  • RDBMS/关系数据库管理系统

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

      使用的是SQL语言,由于其体积小、速度快、总体拥有成本低,尤其是开放源码这一特点,一般中小型网站的开发都选择 MySQL 作为网站数据库。

    2. oracle数据库

      oracle数据库相对于mysql数据库来说比较安全,主要应用范围:传统大企业、大公司、政府、金融、证券等

    3. MariaDB数据库

      是MySQL数据库的一个分支,为了防止甲骨文公司收购了MySQL之后闭源风险,MariaDB基于事务的Maria存储引擎,替换了MySQL的MyISAM的存储引擎

    4. SQL Server数据库

      Microsoft SQL Server是微软公司开发的大型关系数据库系统。SQL Server的功能比较全面,效率高,可以作为中型企业或单位的数据库平台,SQL Server的缺点是只能在Windows系统下运行

    5. Access数据库

      Access是入门级小型桌面数据库,性能安全性都很一般,可供个人管理或小型企业使用

  • NoSQL/非关系型数据库管理系统

    • NOSQL的本意是“Not Only SQL” 指的是非关系型数据库,NoSQL的产生并不是要彻底地否定关系型数据库,而是作为传统关系型数据库的一个有效补充。NOSQL数据库在特定的场景下可以发挥出难以想象的高效率和高性能。
    1. redis数据库

      是一个开源的使用ANSI C语言编写、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库,并提供多种语言的API

    2. MongoDB数据库

      MongoDB是一个介于关系型数据库和非关系型数据库之间的产品,是非关系型数据库当中功能最丰富,最像关系数据库的

    3. memcached数据库

      Memcaced是一个开源的、高性能的、具有分布式内存对象的缓存系统。通过它可以减轻数据库负载,加速动态的web应用

  • 关系型数据库和非关系型数据库区别:

    可以简单的理解为,关系型数据库需要有表结构,非关系型数据库是key-value存储的,没有表结构

3. 结构化查询语言/SQL

  • SQL概述:

    结构化查询语言(Structured Query Language)简称SQL,是一种特殊目的的编程语言,是一种数据库查询和程序设计语言,用于存取数据以及查询、更新和管理关系数据库系统

  • SQL的作用:

    主要用于存取数据、查询数据、更新数据和管理关系数据库系统

  • SQL语言的3种类型:

    1. DDL语句 数据库定义语言:

      数据库、表、视图、索引、存储过程,例如CREATE DROP ALTER

    2. DML语句 数据库操纵语言:

      插入数据INSERT、删除数据DELETE、更新数据UPDATE、查询数据SELECT

    3. DCL语句 数据库控制语言:

      例如控制用户的访问权限GRANT、REVOKE

  • 不同数据库系统之间的SQL不能完全相互通用

4. mysql的配置文件

  • 在mysql安装目录下创建一个my.ini(my.cnf)文件,写入下面的配置,然后重启服务端

  • 配置的用户名和密码,就叫做user和password,不能是username什么的

  • 配置文件中的注释可以有中文,但是配置项中不能出现中文

  • my.ini(windows)/my.cnf(linux)

    [client]
    #设置mysql客户端默认字符集
    default-character-set=utf8
    [mysql]
    # 设置mysql客户端默认字符集
    default-character-set=utf8
    user = 'root'
    password = '123'
    [mysqld]
    #设置3306端口
    port = 3306
    # 设置mysql的安装目录
    basedir=E:\mysql-5.6.45-winx64
    # 设置mysql数据库的数据的存放目录
    datadir=E:\mysql-5.6.45-winx64\data
    # 允许最大连接数
    max_connections=200
    # 服务端使用的字符集默认为8比特编码的latin1字符集
    character-set-server=utf8
    # 创建新表时将使用的默认存储引擎
    default-storage-engine=INNODB

5. mysql基本指令

  • 远程登录

    mysql -h 127.0.0.1 -p 3306 -u root -p
    
    -- -h:mysql服务端ip
    -- -p:mysql端口
    -- -u:登录用户名
    -- -p:登录用户名对应的密码
  • 操作库/增删改查

    -- 1.查看数据库
    show databases;
    -- 2.查看其中的一个库
    show create database db1;
    -- 3.创建数据库
    create database db1;
    -- 4.创建数据库并指定编码
    create database db1 charset utf8;
    -- 5.使用数据库
    use db1;
    -- 6.修改数据库编码
    alter database db1 charset utf8;
    -- 7.删除数据库
    drop database db1;
    -- 8.查看当前所在的库
    select database();
  • 操作表/增删改查

    -- 1.创建表(字段名不能相同)
    create table stu(id int,name char(16));
    注:char(16)5.6版本以前是字节,5.6版本以后是字符
    -- 2.查看当下库的所有表
    show tables;
    -- 3.查看刚刚创建的那一张表
    show create table stu;
    -- 4.查看一张表的基本信息
    desc stu;
    -- 5.修改表的数据类型
    alter table class modify class_name char(16);
    -- 6.修改表的字段名和数据类型
    alter table class change class_name name char(18);
    -- 7.删除表
    drop table class; -- 建表后,再给id字段设置自增
    alter table books modify id int auto_increment primary key not null;
  • 操作记录/增删改查

    -- 1.新增一条记录
    insert into stu values(1,'张三'),(2,'李四');
    insert into stu(id,name) values(1,'张三'),(2,'李四');
    -- 2.查记录
    select 字段名 from stu;(查询表中某个字段的记录)
    select * from stu;
    -- 3.条件查询
    select * from stu where id = 1;
    -- 4.修改记录
    update stu set name = 'alisa' where id = 3;
    -- 5.删除记录
    delete from stu where name='张三';
    delete from t1; -- 如果有自增id,新增的数据,仍然是以删除前的最后一样作为起始。
    truncate table t1; -- 数据量大,删除速度比上一条快,且直接从零开始,
    -- 6.将一个表的内容查出来放到另一个表中
    insert into class2 select * from class;
    -- 7.查当前的时间
    select now(); -- 删除不存在的记录不会报错

6. 数据库密码相关

  • 用户密码设置以及修改密码的三种方式

    方法1: 用SET PASSWORD命令

    -- 首先登录MySQL,使用mysql自带的那个客户端连接上mysql。
    -- 格式:
    mysql> set password for 用户名@localhost = password('新密码');
    -- 例子:
    mysql> set password for root@localhost = password('123');

    方法2:用mysqladmin

    1.mysqladmin的介绍:是一个执行管理操作的客户端程序。它可以用来检查服务器的配置和当前状态、创建和删除数据库、修改用户密码等等的功能

    2.不用进入数据库,因为已经将bin已经添加到环境变量了,这个mysqladmin也在bin目录下,所以可以直接使用这个mysqladmin功能,使用它来修改密码,不需要进入mysql里面去修改,但是这样操作不安全

    -- 格式:
    mysqladmin -u用户名 -p旧密码 password 新密码
    -- 例子:
    mysqladmin -uroot -p123456 password 123

    方法3:用UPDATE直接编辑那个自动的mysql库中的user表

    -- 1. 首先登录MySQL,连接上mysql服务端
    -- 2. 进入mysql库,这个库是所有的用户表和权限相关的表都在这个库里面
    mysql> use mysql;
    -- 3. 修改用户名对应的密码
    mysql> update user set password=password('123') where user='root' and host='localhost';
    -- 其中password=password('123') 前面的password是变量,后面的password是mysql提供的给密码加密用的
  • root密码忘记的处理方法

    1 关闭正在运行的MySQL服务
    net stop mysql -- mysql是添加的mysqld到系统服务时的服务名 2. 打开DOS窗口,转到mysql\bin目录。
    1.d:(回车)
    2.cd mysql-5.6.45-winx64(回车)
    3.cd bin(回车) 3. 输入mysqld --skip-grant-tables 回车。
    skip-grant-tables 的意思是启动MySQL服务的时候跳过权限表认证,因为之所以mysql启动之后,客户端连接的时候需要登陆认证,输入密码什么的,是因为mysql服务端启动的时候,加载了自己内部的一些权限相关信息的授权表、权限认证表什么的,这样就要求客户端必须有认证,如果启动的时没有加载这些表和设置,那么我们客户端再进行登陆的时候,就不需要认证了 4 重新启动一个窗口,连接mysql服务端 5 修改mysql库里面的user表里面的root用户记录的密码:
    password():mysql的内置函数
    update user set password = password('123') where user='root'; 6. 刷新权限(必须步骤):flush privileges; 凡是涉及到密码修改或者权限修改,修改完之后全部要再执行一下这一句 7. 关掉mysqld服务端,指令:
    tasklist|findstr mysqld
    taskkill /F /PID 进程号 8. 正常启动服务端(net start mysql)

7. 创建用户和授权

  • 对新用户的增删改

    1.创建用户:
    -- 指定ip:192.118.1.1的zhangsan用户登录
    create user 'zhangsan'@'192.118.1.1' identified by '123'; -- 指定ip:192.118.1.开头的zhangsan用户登录
    create user 'zhangsan'@'192.118.1.%' identified by '123'; -- 指定任何ip的zhangsan用户登录
    create user 'zhangsan'@'%' identified by '123'; 2.删除用户
    drop user '用户名'@'IP地址'; 3.修改用户
    rename user '用户名'@'IP地址' to '新用户名'@'IP地址'; 4.修改密码
    set password for '用户名'@'IP地址'=Password('新密码');
  • 对当前用户授权管理

    -- 查看权限
    show grants for '用户'@'IP地址' -- 授权 zhangsan用户仅对db1.t1文件有查询、插入和更新的操作
    grant select ,insert,update on db1.t1 to "zhangsan"@'%'; -- 表示有所有的权限,除了grant这个命令,这个命令是root才有的。zhangsan用户对db1下的t1文件有任意操作
    grant all privileges on db1.t1 to "zhangsan"@'%';
    -- zhangsan用户对db1数据库中的文件执行任何操作
    grant all privileges on db1.* to "zhangsan"@'%';
    -- zhangsan用户对所有数据库中文件有任何操作
    grant all privileges on *.* to "zhangsan"@'%'; -- 取消权限 -- 取消zhangsan用户对db1的t1文件的任意操作
    revoke all on db1.t1 from 'zhangsan'@"%"; -- 取消来自远程服务器的zhangsan用户对数据库db1的所有表的所有权限 revoke all on db1.* from 'zhangsan'@"%"; -- 取消来自远程服务器的zhangsan用户所有数据库的所有的表的权限
    revoke all privileges on *.* from 'zhangsan'@'%';

数据库01 /Mysql初识、基本指令、数据库密码相关、创建用户及授权的更多相关文章

  1. Mysql查看登录用户以及修改密码和创建用户以及授权(转载)

    本文转自(https://www.cnblogs.com/manzb/p/6491924.html) 1.mysql查看当前登录用户,当前数据库: select user(); select data ...

  2. Mysql基础(一):Mysql初识、基本指令、数据库密码相关、创建用户及授权

    来源:https://www.cnblogs.com/liubing8/p/11432534.html 目录 数据库01 /Mysql初识.基本指令.数据库密码相关.创建用户及授权 1. 数据库概述 ...

  3. MySQL数据库(1)- 数据库概述、MySQL的安装与配置、初始SQL语句、MySQL创建用户和授权

    一.数据库概述 1.什么是数据(Data) 描述事物的符号记录称为数据,描述事物的符号既可以是数字,也可以是文字.图片,图像.声音.语言等,数据由多种表现形式,它们都可以经过数字化后存入计算机. 在计 ...

  4. MySQL数据库~~~~~创建用户和授权、备份和还原

    一 MySQL创建用户和授权 1.1 对新用户增删改 1.创建用户: # 指定ip:192.118.1.1的chao用户登录 create user 'chao'@'192.118.1.1' iden ...

  5. oracle 数据库创建用户并授权

    oracle 数据库创建用户并授权 备注: userName 为用户名,123456 为密码 drop user userName cascade; create user userName iden ...

  6. mysql(单表查询,多表查询,MySQl创建用户和授权,可视化工具Navicat的使用)

    单表查询 语法: 一.单表查询的语法 SELECT 字段1,字段2... FROM 表名 WHERE 条件 GROUP BY field HAVING 筛选 ORDER BY field LIMIT ...

  7. MySQL 创建用户 与 授权

    例,需要给 121.52.215.100 连接添加一个用户 dee,密码是 123456,他只能对数据库 vshop 有 select 权限: CREATE USER '; GRANT SELECT ...

  8. 14-补充内容:MySQl创建用户和授权

    [转]14-补充内容:MySQl创建用户和授权 权限管理 我们知道我们的最高权限管理者是root用户,它拥有着最高的权限操作.包括select.update.delete.update.grant等操 ...

  9. mysql系列六、mysql创建用户、授权、备份及恢复命令

    一.创建用户和授权 下面的操作中,其中someusername为用户名,somepassword为密码,somedbname为数据库名 1.创建用户 create user 'someusername ...

随机推荐

  1. C语言视频教程下载(百万年薪程序员录制,免费公开)

    <C/C++语言高性能服务开发基础>您可以自由下载.传播.发布或其它商业用途. 视频文件共13.6G,提供了QQ群文件和百度网盘两种方法,建议采用QQ群文件下载,速度较快. 一.下载方法 ...

  2. @atcoder - AGC029F@ Construction of a tree

    目录 @description@ @solution@ @accepted code@ @details@ @description@ 给定 N - 1 个 {1, 2, ..., N} 的子集,第 ...

  3. 1.二进制部署kubernetes

    目录 kubernetes的五个组件 master节点的三个组件 kube-apiserver kube-controller-manager kube-scheduler node节点的两个组件 k ...

  4. 一分钟开始持续集成之旅系列之:C 语言 + Makefile

    作者:CODING - 朱增辉 前言 make 工具非常强大,配合 makefile 文件可以实现软件的自动化构建,但是执行 make 命令依然需要经历手动输入执行.等待编译完成.将目标文件转移到合适 ...

  5. 第三章:软件也要拼脸蛋-UI 开发的点点滴滴

    常用控件 常用控件有:按钮 Button.文本显示框 TextView.图片显示框 ImageView.文本编辑框 EditText.进度条 ProgressBar.提示框 AlertDialog.进 ...

  6. JavaWeb开发之四:servlet技术 黑马程序员_轻松掌握JavaWeb开发之四Servlet开发 方立勋老师视频教程相当的经典

    总结: 记住:servlet对象在应用程序运行的过程中只创建一次,浏览器每次访问的时候,创建reponse对象 request对象,然后调用servlet的service方法,reponse对象和re ...

  7. 技术干货丨卷积神经网络之LeNet-5迁移实践案例

    摘要:LeNet-5是Yann LeCun在1998年设计的用于手写数字识别的卷积神经网络,当年美国大多数银行就是用它来识别支票上面的手写数字的,它是早期卷积神经网络中最有代表性的实验系统之一.可以说 ...

  8. Python3-Django-1.开发环境搭建

    官网 https://www.djangoproject.com/ 安装 http://www.runoob.com/django/django-install.html 创建项目 方式一(命令行): ...

  9. java集合--模拟斗地主发牌洗牌

    import java.util.*; /** * @Date: 2020/6/17 19:53 */public class Test04 { public static void main(Str ...

  10. Glusterfs读写性能测试与分析

    一.测试目的: 1.测试分布卷(Distributed).分布式复制卷(Distributed-Replicate).条带卷(Strip)和分布式条带复制卷(Distributed-Strip-Rep ...