mysql_01(入门基础)

时光怂恿深爱的人放手 提交于 2020-02-14 01:16:30

mysql 入门01

  1. 什么是数据库?
  2. 数据库的分类
  3. mysql数据库的搭建
    • mysql介绍
    • 安装软件
    • 初始化
      • 查看初始密码
      • 利用初始密码登录&&修改初始密码
      • 修改密码策略
    • 相关参数
  4. mysql的基础操作

一,数据库专业术语

  • DB(DataBase)
    • 数据库:依照某种数据模型进行组织并存放到存储器的数据集合
  • DBMS(DataBase Management System)
    • 数据库管理系统:用来操作和管理数据库的服务软件
  • DBS(Database System)
    • 数据库系统:拥有数据库和数据库管理系统的计算机系统

二,数据库的分类

在这里插入图片描述

​ ps:mariadb对初学者来说与mysql几乎没有区别

三,mysql的安装和初始化

  • 数据包在官网下载下载:新版centos/redhat不在自带mysql数据包

    • 数据包的功能(部分)完整的数据包 mysql-5.7.17.tar
      在这里插入图片描述

    • 安装mysql

      [root@mysql01 ~]# tar -xvf mysql-5.7.17.tar
      mysql-community-embedded-compat-5.7.17-1.el7.x86_64.rpm 
      mysql-community-embedded-devel-5.7.17-1.el7.x86_64.rpm
      mysql-community-libs-5.7.17-1.el7.x86_64.rpm
      mysql-community-client-5.7.17-1.el7.x86_64.rpm    
      mysql-community-libs-compat-5.7.17-1.el7.x86_64.rpm
      mysql-community-common-5.7.17-1.el7.x86_64.rpm    
      mysql-community-minimal-debuginfo-5.7.17-1.el7.x86_64.rpm
      mysql-community-devel-5.7.17-1.el7.x86_64.rpm    
      mysql-community-server-5.7.17-1.el7.x86_64.rpm
      mysql-community-embedded-5.7.17-1.el7.x86_64.rpm 
      mysql-community-test-5.7.17-1.el7.x86_64.rpm
      [root@mysql01 ~]# yum install -y mysql-community-*.rpm  #安装该目录下所有包
      
      [root@mysql01 ~]# systemctl start  mysqld    #启动服务
      [root@mysql01 ~]# systemctl enable mysqld    #开机自启
      
      [root@mysql01 ~]# ss -ant | grep 3306
      LISTEN   0   80     :::3306       :::*    #服务已开启
      
      

    在这里插入图片描述

  • 查看初始密码,登录修改初始密码

    [root@mysql01 ~]# grep -i  'password' /var/log/mysqld.log
    2020-02-12T02:19:48.981591Z 1 [Note] A temporary password is generated for root@localhost: ;J6_Mlhl7)e+     #';J6_Mlhl7)e+' 是初始密码
    [root@mysql01 ~]# mysql -uroot -p';J6_Mlhl7)e+' 
    mysql>                                          #进入数据库
    mysql> alter user root@"localhost" identified by "DZ@znb123"; #符合密码复杂性原则
    Query OK, 0 rows affected (0.00 sec)
    mysql>  
    
  • 修改密码策略

    密码策略有三种 ​ 在这里插入图片描述

/*查看策略内容*/
mysql> show variables like "%password%" ;
+---------------------------------------+--------+
| Variable_name                         | Value  |
+---------------------------------------+--------+
| default_password_lifetime             | 0      |
| disconnect_on_expired_password        | ON     |
| log_builtin_as_identified_by_password | OFF    |
| mysql_native_password_proxy_users     | OFF    |
| old_passwords                         | 0      |
| report_password                       |        |
| sha256_password_proxy_users           | OFF    |
| validate_password_check_user_name     | OFF    |
| validate_password_dictionary_file     |        |/*插件用于验证密码强度的字典文件路径*/
| validate_password_length              | 8      |/*密码长度限制*/
| validate_password_mixed_case_count    | 1      |/*密码至少包含的小写和大写字母数*/
| validate_password_number_count        | 1      |/*密码至少要包含的数字个数*/ 
| validate_password_policy              | MEDIUM |/*密码策略的级别*/
| validate_password_special_char_count  | 1      |/*密码至少要包含的特殊字符数*/
+---------------------------------------+--------+
14 rows in set (0.00 sec)
/*修改策略内容*/
mysql> set  global validate_password_length=6;  /*修改密码长度*/
Query OK, 0 rows affected (0.00 sec)

mysql> set global validate_password_policy=0;   /*修改策略级别*/
Query OK, 0 rows affected (0.00 sec)

mysql> show variables like '%password%';
+---------------------------------------+-------+
| Variable_name                         | Value |
+---------------------------------------+-------+
| default_password_lifetime             | 0     |
| disconnect_on_expired_password        | ON    |
| log_builtin_as_identified_by_password | OFF   |
| mysql_native_password_proxy_users     | OFF   |
| old_passwords                         | 0     |
| report_password                       |       |
| sha256_password_proxy_users           | OFF   |
| validate_password_check_user_name     | OFF   |
| validate_password_dictionary_file     |       |
| validate_password_length              | 6     |
| validate_password_mixed_case_count    | 1     |
| validate_password_number_count        | 1     |
| validate_password_policy              | LOW   |
| validate_password_special_char_count  | 1     |
+---------------------------------------+-------+
14 rows in set (0.00 sec)
/*密码就可以设置为任意一个大于6位的密码*/

​ ps:以上都是临时配置重启后会失效

#永久配置(小心参数名写错)
vim /etc/my.cnf
[mysqld]
validate_password_policy=0 
validate_password_length=6

四,数据库的操作(核心sql语句)

  • sql功能 核心命令
    数据查询 select(查找)
    数据定义 create(创建) , drop(删除库/表) ,alter(改变)
    数据操纵 insert(插入) , update(更新数据) , delete(删除数据)
    数据控制 grant(赋予权限) , revoke(回收权限)
  • 数据库连接

    命令格式 mysql -h服务器地址 -u用户名 -p密码 [数据库名]  //本机可以省略-h
    [root@mysql02 ~]# mysql -hlocalhost -uroot -p   
    Enter password: 
    
  • 修改密码

    mysql> alter user 用户@"数据库地址" identified by "密码";   /*修改密码的格式*/
    
  • 查找库,切换库,创建库,删库

    /*显示所有的库*/
    mysql> show databases; 
    +--------------------+
    | Database           |
    +--------------------+
    | information_schema |
    | mysql              |
    | performance_schema |
    | sys                |
    +--------------------+
    4 rows in set (0.01 sec)
    /*切换至库目录下*/
    mysql> use mysql;
    Reading table information for completion of table and column names
    You can turn off this feature to get a quicker startup with -A
    
    Database changed
    /*创建库*/
    mysql> create database test01;
    Query OK, 1 row affected (0.00 sec)
    mysql> show databases;
    +--------------------+
    | Database           |
    +--------------------+
    | information_schema |
    | mysql              |
    | performance_schema |
    | sys                |
    | test01             |
    +--------------------+
    5 rows in set (0.00 sec)
    /*删库*/ 
    mysql> drop database test01;
    Query OK, 0 rows affected (0.00 sec)
    
    mysql> show databases;
    +--------------------+
    | Database           |
    +--------------------+
    | information_schema |
    | mysql              |
    | performance_schema |
    | sys                |
    +--------------------+
    4 rows in set (0.00 sec)
    
  • 查找表名,查询表记录,创建表,查看表结构,插入表记录,修改表记录,删除表

    /*查找表名(只能在库中操作)*/
    mysql> use sys;    
    mysql> show tables;
    +-----------------------------------------------+
    | Tables_in_sys                                 |
    +-----------------------------------------------+
    | host_summary                                  |
    | host_summary_by_file_io                       |
    | host_summary_by_file_io_type                  |
    | host_summary_by_stages                        |
    | host_summary_by_statement_latency             |
    | host_summary_by_statement_type                |
    | ... ... ... ... ... ....                      |
    | x$waits_by_host_by_latency                    |
    | x$waits_by_user_by_latency                    |
    | x$waits_global_by_latency                     |
    +-----------------------------------------------+
    101 rows in set (0.01 sec)
    /*插寻表记录(只说最简单的)*/
    mysql> select   *   from   sys.host_summary;
           查询     所有   从    库名.表名;
    /*创建表*/
    mysql> create database test01;     
    Query OK, 1 row affected (0.00 sec)
    
    mysql> use test01;
    Database changed
    mysql> create table 
    > player(name varchar(5),sex char(1),QQ varchar(12)) DEFAULT charset=utf8;
    Query OK, 0 rows affected (0.01 sec)
    
    mysql> show tables;
    +------------------+
    | Tables_in_test01 |
    +------------------+
    | player           |
    +------------------+
    1 row in set (0.00 sec)
    /*查看表结构*/
    mysql> desc player;
    +-------+-------------+------+-----+---------+-------+
    | Field | Type        | Null | Key | Default | Extra |
    +-------+-------------+------+-----+---------+-------+
    | name  | varchar(5)  | YES  |     | NULL    |       |
    | sex   | char(1)     | YES  |     | NULL    |       |
    | QQ    | varchar(12) | YES  |     | NULL    |       |
    +-------+-------------+------+-----+---------+-------+
    3 rows in set (0.00 sec)
    /*插入表记录*/
    mysql> insert into  player values ("鲁班七号","男","174451542");
    Query OK, 1 row affected (0.00 sec)
    
    mysql> select * from player;
    +--------------+------+-----------+
    | name         | sex  | QQ        |
    +--------------+------+-----------+
    | 鲁班七号     || 174451542 |
    +--------------+------+-----------+
    1 row in set (0.00 sec)
    /*修改表记录*/
    mysql> update player set sex="女" where name="鲁班七号";
    Query OK, 1 row affected (0.00 sec)
    Rows matched: 1  Changed: 1  Warnings: 0
    
    mysql> select * from player;
    +--------------+------+-----------+
    | name         | sex  | QQ        |
    +--------------+------+-----------+
    | 鲁班七号     || 174451542 |
    +--------------+------+-----------+
    1 row in set (0.00 sec)
    /*删除表*/
    mysql> drop table player ;
    Query OK, 0 rows affected (0.01 sec)
    mysql> show tables;
    Empty set (0.00 sec)
    
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!