来源:https://www.cnblogs.com/liubing8/p/11432534.html

目录

数据库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'@'%';

Mysql基础(一):Mysql初识、基本指令、数据库密码相关、创建用户及授权的更多相关文章

  1. mysql数据库补充知识1 安装数据库破解数据库密码已经创建用户

    一.安装MYSQL数据库 1.yum安装 #二进制rpm包安装 yum -y install mysql-server mysql 2.源码安装   1.解压tar包 cd /software tar ...

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

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

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

    数据库01 /Mysql初识.基本指令.数据库密码相关.创建用户及授权 目录 数据库01 /Mysql初识.基本指令.数据库密码相关.创建用户及授权 1. 数据库概述 2. 数据库管理系统/DBMS ...

  4. (3.15)mysql基础深入——mysql默认数据库/系统数据库

    (3.15)mysql基础深入——mysql默认数据库 关键词:Mysql默认数据库,mysql系统数据库 系统数据库的组成 一共4个 [1]information_schema(可以理解成字典表) ...

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

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

  6. (3.16)mysql基础深入——mysql字符集

    (3.16)mysql基础深入——mysql字符集 关键字:mysql字符集,mysql编码 目录 1.概念 2.常用的字符编码 3.查看mysql字符集 [3.1]查看服务器支持的字符集 [3.2] ...

  7. (3.12)mysql基础深入——mysql日志文件/其他文件(socket/pid/表结构/Innodb)

    (3.12)mysql基础深入——mysql日志文件/其他文件(socket/pid/表结构/Innodb) 关键词:mysql日志文件,mysqldumpslow分析工具 目录:日志文件的分类 1. ...

  8. (3.11)mysql基础深入——mysql文件分类与配置文件管理

    (3.11)mysql基础深入——mysql文件分类与管理 关键词:mysql配置文件,mysql参数文件,mysql中的my.cnf 目录:mysql数据库文件分类: [1]参数文件:my.cnf ...

  9. MySQL基础、MySQL安装和MariaDB安装

    MySQL基础 目录 MySQL基础 关系型数据库介绍 数据结构模型 RDBMS专业名词 关系型数据库的常见组件 SQL语句 MySQL安装与配置 MySQL安装 MariaDB安装 关系型数据库介绍 ...

随机推荐

  1. netty实现消息中心(二)基于netty搭建一个聊天室

    前言 上篇博文(netty实现消息中心(一)思路整理 )大概说了下netty websocket消息中心的设计思路,这篇文章主要说说简化版的netty聊天室代码实现,支持群聊和点对点聊天. 此demo ...

  2. dbca oracle 12 c 遇到ora27125

    网上大部分方法是把dba组放在内核的,没有效果,可以尝试 google找到一位大神的方案,成功解决 https://oracle-admin.com/2014/01/22/ora-27125-unab ...

  3. [博主推荐]如何利用注册 的 bug 来疯狂注册,不停开小号"做"事情,支持 手机号&邮箱

    [博主推荐]如何利用注册 的 bug 来疯狂注册,不停开小号"做"事情,支持 手机号&邮箱  非常简单 1.手机号注册: 用手机号注册 网站基本都支持 可以用推荐的网址: ...

  4. OpenSSH详解

    OpenSSH详解(思维导图) 1. SSH概述 SSH 软件架构 认证方式 2. OpenSSH 2.1 客户端程序ssh 配置文件 ssh命令 客户端免密登录 scp sftp 2.2 服务端程序 ...

  5. [CF453D]Little Pony and Elements of Harmony

    题目   点这里看题目. 分析   设\(count(x)\)为\(x\)的二进制中\(1\)的个数.因此\(f(u,v)=count(u\oplus v)\)   看一看每次转移,我们发现最不友好的 ...

  6. 一文入门Kafka,必知必会的概念通通搞定

    Kakfa在大数据消息引擎领域,绝对是没有争议的国民老公. 这是kafka系列的第一篇文章.预计共出20篇系列文章,全部原创,从0到1,跟你一起死磕kafka. 本文盘点了 Kafka 的各种术语并且 ...

  7. Scrum Master教你四招,瓦解团队内部刺头

    摘要:<Scrum精髓>一书中将Scrum Master的职责总结为六类:敏捷教练,服务型领导,“保护伞”,“清道夫”,过程权威,“变革代言人”.作为“保护伞“,Scrum Master应 ...

  8. mybatis 学习教程

    https://www.cnblogs.com/ashleyboy/category/1246107.html

  9. 使用Docker构建企业Jenkins CI平台

    在如今的互联网时代,随着软件开发复杂度的不断提高,软件开发和发布管理也越来越重要.目前已经形成一套标准的流程,最重要的组成部分就是持续集成(Continuous Integration,CI)及持续部 ...

  10. 玩Python小游戏猜数字,在游戏中掌握基础,你还能学不会?

    学python怎么离得开案例呢? 今天再继续给大家分享一个Python教程里的猜数字游戏     我最近也是在学python,从事编程工作几年了,但是python还是今年才开始玩的,不得不说,这真是一 ...