zoukankan      html  css  js  c++  java
  • MySQL 初识

    一、MySQL介绍:

      MySQL是一个关系型数据库管理系统,由瑞典MySQL AB 公司开发,目前属于 Oracle 旗下产品。MySQL 是最流行的关系型数据库管理系统之一,在 WEB 应用方面,MySQL是最好的 RDBMS (Relational Database Management System,关系数据库管理系统) 应用软件。
      MySQL是一种关系数据库管理系统,关系数据库将数据保存在不同的表中,而不是将所有数据放在一个大仓库内,这样就增加了速度并提高了灵活性。
      MySQL所使用的 SQL 语言是用于访问数据库的最常用标准化语言。MySQL 软件采用了双授权政策,分为社区版和商业版,由于其体积小、速度快、总体拥有成本低,尤其是开放源码这一特点,一般中小型网站的开发都选择 MySQL 作为网站数据库。
      具体介绍可以自行查看百度百科MySQL。
      MySQL分为客户端和服务端两部分:

                -服务端软件-socket服务端-本地文件操作-解析指令

                -客户端软件-socket客户端-发送指令-解析指令

      数据库管理软件的分类:

      分两大类:

    • 关系型:如sqllite,db2,oracle,access,sql server,MySQL,注意:sql语句通用   # 关系型数据库需要有表结构
    • 非关系型:mongodb,redis,memcache    # 非关系型数据库是key-value存储的,没有表结构

    二、MySQL的配置使用:

      1/安装过程省略,自行百度

      终端需要使用管理员身份运行

      2/启动mysql之前先设置下环境变量,这样就不需要每次启动mysql的时候都要切换到文件目录下

      将mysql的目录加入到环境变量(过程:此电脑>右键>属性>高级系统设置>高级>环境变量>系统变量下>双击Path>新建>

      将mysql的bin路径(比如我的mysql文件bin目录在D:mysqlin)复制,确认确认确认...)

      3/配置(mysql目录新建文件my.ini,编辑保存)

    [mysql]
    # 设置mysql客户端默认字符集
    default-character-set=utf8 
    [mysqld]
    #设置3306端口
    port = 3306 
    # 设置mysql的安装目录
    basedir=D:Program Filesmysql5.7.26
    # 设置mysql数据库的数据的存放目录
    datadir=D:Program Filesmysql5.7.26data
    # 其它配置
    max_connections=200
    character-set-server=utf8
    default-storage-engine=INNODB
    sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES

      4/安装、启动MySQL服务端

    # 安装MySQL服务
    以管理员身份打开cmd窗口后,将目录切换到你解压文件的bin目录,输入mysqld install回车运行
    
    # 启动mysql服务
    以管理员身份在cmd中输入:net start mysql

      新开一个cmd终端,启动客户端

    C:WINDOWSsystem32>mysql -uroot -p    # 输入用户名root,密码-p
    Enter password: ******                 # 输入密码,第一次安装后密码为空,直接回车就行
    可以打全:mysql -h 127.0.0.1 -P 3306 -uroot -p,默认本地ip和端口可以省略)
    Welcome to the MySQL monitor.  Commands end with ; or g.
    Your MySQL connection id is 6
    Server version: 5.7.26 MySQL Community Server (GPL)
    
    Copyright (c) 2000, 2019, 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客户端已经启动。

      在这里强调一点,cmd启动MySQL的时候最好以管理员身份运行,因为这样才能获取到完全权限。

      4/这里有必要将mysqld服务端加入到系统服务中

      前提必须先关闭mysqld和客户端

    1. 先查看mysqld进程,cmd端(管理员身份执行)输入:tasklist |findstr mysqld
    2. 第一步获取到mysqld的PID号(假设为13978),接下来输入命令杀死进程:taskkill /F /PID 13978
    3. 继续输入:mysqld install
    4. 运行:services.msc 查看计算机本地服务,查看列表中是否已经加入有MySQL

       5/修改root用户登录初始密码(破解管理员密码)

        注意:修改密码不是在mysql里面修改,需要退出客户端,在外面修改

    修改密码:

    ######登录后修改:
    5.7版本修改密码和老版本不一样:需要:
    输入:
    update mysql.user set authentication_string
    =password('新密码') where user = 'root'; flush privileges; ######不登录修改: 输入: C:WINDOWSsystem32>mysqladmin -uroot -p原密码 password 新密码 mysqladmin: [Warning] Using a password on the command line interface can be insecure. Warning: Since password will be sent to server in plain text, use ssl connection to ensure password safety.

    破解密码:

    windows下:

    Microsoft Windows [版本 10.0.17134.706]
    (c) 2018 Microsoft Corporation。保留所有权利。
    
    C:WINDOWSsystem32>mysqld --skip-grant-tables   # 绕过密码监测文件,这里第一次回车可能会卡主,关闭cmd再试一次就没问题了
    
    C:WINDOWSsystem32>mysql    # 直接进入mysql(而且是root用户)
    Welcome to the MySQL monitor.  Commands end with ; or g.
    Your MySQL connection id is 2
    Server version: 5.7.26 MySQL Community Server (GPL)
    
    Copyright (c) 2000, 2019, 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> update mysql.user set authentication_string=password('新密码') where user = 'root';
    Query OK, 1 row affected (0.00 sec)
    Rows matched: 1  Changed: 1  Warnings: 0
    
    mysql> flush privileges;   # 刷新下
    Query OK, 0 rows affected (0.00 sec)
    
    # 这样就破解成功完成密码修改。

    5/在windows下,设置配置文件(my.ini)

    [mysqld]    #服务端配置
    port = 3306      # 默认端口号
    basedir=D:mysql   # 文件目录
    datadir=D:mysqldata   # 数据库目录
    max_connections=200     # 客户端最大连接数
    character-set-server=utf8     # 统一字符编码
    collation-server=utf8_general_ci   # 排序规则
    default-storage-engine=INNODB   # 默认存储引擎为innodb
    sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES
    [mysql]   
    default-character-set=utf8    # 同一字符编码utf-8
    [client]
    default-character-set=utf8    # 统一字符编码utf-8

    三、MySQL的sql语句:(也就是敲啥命令可以达到操作数据库的增删改查)

    tip: sql书写错误,只要没加分号,可以加c使前面的sql语句失效

    • 针对文件夹的(库)
      #
      create database db1 charset utf8;
      #
      alter database db1 charset gbk;
      #
      show databases;
      show create database db1;
      #
      drop database db1;
    • 针对文件的(表)

      文件首先需要在文件夹下面,所以在操作文件之前,应该先确定操作的是哪个文件夹下面的文件

      use db1;                # 切换文件夹
      select database();      # 查看当前所在的库
      #
      create table t1(id int,name char);  # 创建出来的可能是多个文件,解耦管理
      #
      alter table t1 modify name char(16);
      alter table t1 modify name char(16) after age; # 将name字段放在age字段后面 alter table t1 add sex char(
      10); # 添加sex表头 alter table t1 drop column sex: # 删除表中sex这列 # show tables; show create table t1; # 查看表的详细信息 describe t1; == desc t1; # 查看表结构 # drop table t1;
    • 针对(记录)
      #
      insert into db1.t1 values (1,'egon'),(2,'kevin'),(3,'jason');  # into可加可不加,db1可以不指定,默认就是在当前库下
      #
      update db1.t1 set name='DSB' where id > 1;
      update db1.t1 set name='DSB' where id = 2 or id = 3;
      #
      select id,name from db1.t1;  # db1可不指定,默认当前库下
      select * from t1;
      #
      delete from db1.t1 where id >3;
      delete from db1.t1 where name='egon'  # 这里注意如果少了一个引号,后面无论敲什么都没有用了需要将引号补全

    四、存储引擎

    文件格式有很多种,对应的软件也有很多种txt,pdf等

    针对不同类型的文件,需要对应有不同的存储方式帮助我们去操作

    # 查看所有的存储引擎
    show engines;
    
    # 查看不同存储引擎存储表结构文件特点
    create table t1(id int)engine=innodb;
    create table t2(id int)engine=myisam;
    create table t3(id int)engine=blackhole;
    create table t4(id int)engine=memory;
    
    insert into t1 values(1);
    insert into t2 values(1);
    insert into t3 values(1);
    insert into t4 values(1);
  • 相关阅读:
    mysql show的常见用法
    【转】在ubuntu下完美安装RTX(解决离线、乱码问题)(图片无法显示)
    bcdedit 替代easybcd 编辑grub
    Ruby学习札记(二)[数组]
    Ruby学习札记(一)常用数据
    [分布式]分布式锁
    移动docker数据文件到nas共享盘、释放C盘空间
    [分布式]分布式限流
    [分布式]分布式会话session、spring-session
    学习强国挑战答题学习资料
  • 原文地址:https://www.cnblogs.com/suguangti/p/10845458.html
Copyright © 2011-2022 走看看