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
2.2 安装
sudo yum --enablerepo=mysql80-community install mysql-community-server
提示安装插件时选择:Y
2.3 启动Mysql8.0
sudo service mysqld start
- 启动完成
2.4 查看mysql服务运行状态
service mysqld status
2.5 查看root临时密码
-
安装完mysql之后,会生成一个临时的密码让root用户登录
grep "A temporary password" /var/log/mysqld.log
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:密码策略改简单一点
-
报错
-
密码错误,注意提示的是双冒号
-
-
由于错误执行过其他语句,因此我在此处先修改一次密码;
mysqld_safe --user=mysql --skip-grant-tables --skip-networking &
注:以后安装请注意输出的Mysql是密码;
-
修改密码策略,在修改密码
-
策略说明 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;
-
将root用户的host修改为%
-
刷新权限
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; #刷新权限
-
执行出错在修改一次密码策略
-
-
连接测试;使用navicat测试
-
踩坑不易,转载请指明出处;
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 INTO和UPDATE WHERE CURRENT用于对一个或多个表单独行的操作。
3.6 事务处理语言(TPL)
- 它的语句能确保被DML语句影响的表的所有行及时得以更新。TPL语句包括BEGINTRANSACTION,COMMIT和ROLLBACK。