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
posted @ 2021-11-08 16:53  紫青宝剑  阅读(85)  评论(0编辑  收藏  举报