zoukankan      html  css  js  c++  java
  • Linux安装Mysql8.0及SQL分类的补充

    Linux安装Mysql8.0

    参考文章:https://blog.csdn.net/qq_38570633/article/details/109257430

    参考文献:https://blog.csdn.net/mmake1994/article/details/85944438

    1、查看环境

    1.1 查看是否有安装过mysql

    rpm -qa | grep -i mysql
    

    1.2 删除Mysql

    yum -y remove MySQL-*
    
    一般用rpm -e 的命令删除mysql,这样表面上删除了mysql,可是mysql的一些残余程序仍然存在,并且通过第一步的方式也查找不到残余,而yum命令比较强大,可以完全删除mysql.(ps:用rpm删除后再次安装的时候会提示已经安装了,这就是rpm没删除干净的原因)
    

    1.3 把所有出现的目录统统删除

    find / -name mysql
    
    • 查找mysql的一些目录,把所有出现的目录删除,可以使用rm -rf 路径,删除时请注意,一旦删除无法恢复。

    1.4 删除配置文件

    rm -rf /etc/my.cnf
    

    1.5 删除mysql的默认密码

    rm -rf /root/.mysql_sercret
    

    删除mysql的默认密码,如果不删除,以后安装mysql这个sercret中的默认密码不会变,使用其中的默认密码就可能会报类似Access denied for user ‘root@localhost’ (using password:yes)的错误.

    五步完成之后,这样mysql就全部删除干净了,若没安装过mysql可忽略以上步骤

    2、安装

    2.1配置Mysql 8.0安装源

    • sudo rpm -Uvh https://dev.mysql.com/get/mysql80-community-release-el7-3.noarch.rpm
      
      

      image-20211108111757277

    2.2 安装

    sudo yum --enablerepo=mysql80-community install mysql-community-server
    

    提示安装插件时选择:Y

    image-20211108112239474

    2.3 启动Mysql8.0

    sudo service mysqld start
    
    • 启动完成
    • image-20211108112435320

    2.4 查看mysql服务运行状态

    service mysqld status
    

    image-20211108112518273

    2.5 查看root临时密码

    • 安装完mysql之后,会生成一个临时的密码让root用户登录

      grep "A temporary password" /var/log/mysqld.log
      

      image-20211108112709126

    2.6 更改临时密码

    输入:mysql -uroot -p
    在Enter password:后面输入临时密码
    登录成功
    输入:ALTER USER ‘root’@‘localhost’ IDENTIFIED BY ‘new password’;
    会提示:ERROR 1819 (HY000): Your password does not satisfy the current policy requirements(密码不符合当前策略)
    方案1: 设置符合策略的密码(大小写字母+数据+符号)
    方案2:密码策略改简单一点
    
    • 报错

      image-20211108113605581

    • 密码错误,注意提示的是双冒号
    • image-20211108141016798

    • 由于错误执行过其他语句,因此我在此处先修改一次密码;

      mysqld_safe --user=mysql --skip-grant-tables --skip-networking &
      

      注:以后安装请注意输出的Mysql是密码;

      image-20211108143500821

    • 修改密码策略,在修改密码

      image-20211108143652952

    • 策略说明
      validate_password.length 是密码的最小长度,默认是8,我们把它改成6
      输入:set global validate_password.length=6;
      set global validate_password_length=6
      validate_password.policy 验证密码的复杂程度,我们把它改成0
      输入:set global validate_password.policy=0;
      validate_password.check_user_name 用户名检查,用户名和密码不能相同,我们也把它关掉
      输入:set global validate_password.check_user_name=off;
      
      
    • 再执行修改密码的命令
      输入:ALTER USER ‘root’@‘localhost’ IDENTIFIED BY ‘12345’;
      密码设成功
      

    2.7 配置远程访问

    • 查看用户配置

      select host, user, authentication_string, plugin from user;
      

      image-20211108144321820

    • 将root用户的host修改为%

      image-20211108144925041

    • 刷新权限

      FLUSH PRIVILEGES;
      
    • 打开端口,在网页上设置

    • 修改加密规则

      ALTER USER 'root'@'localhost' IDENTIFIED BY 'password' PASSWORD EXPIRE NEVER; #修改加密规则 
      
      ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'password'; #更新一下用户的密码 
      
      FLUSH PRIVILEGES; #刷新权限 
      
    • 执行出错在修改一次密码策略

    • image-20211108154117968

      image-20211108154233642

    • 连接测试;使用navicat测试

      image-20211108154427444

    • 踩坑不易,转载请指明出处;

    3、补充SQL分类

    参考文献:https://blog.csdn.net/mmake1994/article/details/85944438

    3.1 SQL(结构化查询语言)

    • 结构化查询语言(Structured Query Language)简称SQL,结构化查询语言是一种数据库查询和程序设计语言,用于存放数据以及查询、更新和管理关系数据库系统;同时也是数据库脚本文件的扩展名。结构化查询语言是高级的非过程化编程语言,允许用户在高层数据结构上工作。它不要求用户指定对数据的存放方法,也不需要用户了解具体的数据存放方式,所以具有完全不同底层结构的不同数据库系统,可以使用相同的结构化查询语言作为数据输入与管理的接口。结构化查询语言语句可以嵌套,这使它具有极大的灵活性和强大的功能。

    3.2 数据查询语言(DQL)

    • 数据查询语言(Data Query Language, DQL)是SQL语言中,负责进行数据查询而不会对数据本身进行修改的语句,这是最基本的SQL语句。保留字SELECT是DQL(也是所有SQL)用得最多的动词,其他DQL常用的保留字有FROM,WHERE,GROUP BY,HAVING和ORDER BY。这些DQL保留字常与其他类型的SQL语句一起使用。

    3.3 数据定义语言(DDL)

    • 数据定义语言 (Data Definition Language, DDL) 是SQL语言集中,负责数据结构定义与数据库对象定义的语言,由CREATE、ALTER与DROP三个语法所组成,最早是由 Codasyl (Conference on Data Systems Languages) 数据模型开始,现在被纳入 SQL 指令中作为其中一个子集。

    3.4 数据操纵语言(DML)

    • 数据操纵语言(Data Manipulation Language, DML)是SQL语言中,负责对数据库对象运行数据访问工作的指令集,以INSERT、UPDATE、DELETE三种指令为核心,分别代表插入、更新与删除。

    3.5 指针控制语言(CCL)

    • 它的语句,像DECLARE CURSOR,FETCH INTOUPDATE WHERE CURRENT用于对一个或多个表单独行的操作。

    3.6 事务处理语言(TPL)

    • 它的语句能确保被DML语句影响的表的所有行及时得以更新。TPL语句包括BEGINTRANSACTION,COMMITROLLBACK
  • 相关阅读:
    springCloud 服务间相互调用
    不同环境下整合相同格式的文件
    Linux 安装mysql
    利用Maven打War包引入本地Jar包
    linux服务器部署项目详细步骤
    DM数据库导入dmp文件报大小写敏感问题解决办法
    synchronized 实现过程
    TypeScript学习笔记
    @RequestMapping注解详解
    常用的Linux命令
  • 原文地址:https://www.cnblogs.com/Blogwj123/p/15524949.html
Copyright © 2011-2022 走看看