centos7下安装mysql8.0.12及设置权限

时间:2022-03-07 12:52:23

一、mysql版本介绍

mysql的官网为:https://www.mysql.com/

在官网上可以看到多个版本,主要版本如下,

1、MySQL Community Server 社区版本,开源免费,但不提供官方技术支持。
2、MySQL Enterprise Edition 企业版本,需付费,可以试用30天。
3、MySQL Cluster 集群版,开源免费。可将几个MySQL Server封装成一个Server。
4、MySQL Cluster CGE 高级集群版,需付费。

从上面的介绍可以看到,如果个人练习使用可以选择社区版本(MySQL Community Server),下面就以此版本为例进行说明。此版本的最新版本为8.0.12。

二、安装过程

mysql官网提供了多种安装方式,在linux下有三种方式,

1、yum源安装;

2、下载rpm包安装;

3、源码安装;

综合以上的三种安装方式,第一二两种都是比较适合的,我这里由于安装的centos7已经自带了yum源为此我这里可以直接使用yum安装。

1、在命令行中使用如下的命令,开始安装mysql,默认安装的是最新版本的mysql,即mysql8.0.12

yum install mysql-community-server

2、执行上述命令后,yum会自动下载所需的包及文件,最后下载完成后,会提示是否进行安装。

三、权限设置

1、登录mysql

mysql8.0.12的权限和之前mysql5.XX的权限是不一样的,新安装的mysql8.0.12是无法登录,可以通过无密码登录,需要修改配置文件,默认使用yum安装的mysql的配置文件在/etc/my.cnf,编辑此文件,在文件中加入下面的配置,即可实现无密码输入,

skip-grant-tables

上面说到的可以实现无密码输入登录mysql,其实mysql8.0.12会默认生成一个密码,此密码的位置在/var/log/mysqld.log,那么如何查看msyql的日子文件的位置那,还是在msyql的配置文件中,即/etc/my.cnf,其配置文件如下图,

centos7下安装mysql8.0.12及设置权限

从上面的配置文件中可以看到mysql的数据文件的路径为:/var/lib/mysql,日志文件为:/var/log/mysqld.log,还有其他信息可以看到,那么去日志文件中寻找mysql生成的默认临时,密码,如下图,

centos7下安装mysql8.0.12及设置权限

如上图可以看到临时密码为:C_<0u!QF,e&x

接下来就可以登录msyql了具体的是使用免密登录还是使用临时密码,可根据实际情况而定。

2、修改默认密码

前面我们已经可以正常登录mysql了,那么要做的第二件事便是修改默认密码,允许远程登录等。

在修改mysql的密码时一定要使用下面的方式,其他的方式一律不好用,比如去更新mysql.user表,使用password函数进行加密密码,这些方式针对mysql8.0.12都是不好用的,需要使用下面的方式,

mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY 'newPass';

newPass即为新的密码,由于新版的mysql对密码有限制,所以密码要包含大小写、特殊字符等,且要有一定的位数。

使用临时密码登录后一定要改密码,否则是不可以执行其他操作的。在设置了新密码之后,如果是使用的免密登录,那么一定要在配置文件中把免密的注释掉。

下面的一件事就是允许root远程登录,默认的root是不允许远程登录的,所以我们需要新建root账号,使其host的值为%,代表可以任何远程主机均可以登录,使用下面的语句

mysql>CREATE USER 'root'@'%' IDENTIFIED BY 'pass';

pass代表的是密码,这样新建了root账号,且允许任何主机进行远程登录,但还需要授予权限,

mysql>GRANT ALL PRIVILEGES ON *.* TO 'root'@'%'IDENTIFIED BY 'pass' WITH GRANT OPTION;

授权权限后一定要进行刷新,即

mysql>flush privileges;

这样才可以进行远程登录,且root具有所有权限。

四、mysql的密码加密方式

在最新的mysql中其用户的密码加密方式已经不是原来的,原来的加密方式为:mysql_native_password,在mysql8.0.12中改为了caching_sha2_password,一些客户端不支持新的加密协议,如navicat,这时可以有以下的方式,

1、更新客户端使其支持新的加密协议。

2、修改mysql的配置文件

在my.cnf中新增以下配置,即使用之前的加密方式,这样以后创建的所有用户都使用默认的协议认证方式

default_authentication_plugin=mysql_native_password

3、单独设置加密方式

对已有用户或者新建用户可以修改其加密方式,如下以root/root为例

mysql>ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'root';

接着需要为root重新设置密码,

mysql>SET PASSWORD FOR 'root'@'localhost' = PASSWORD('newpassword');
mysql>flush privileges;

综上所述,在安装的过程中遇到了以下问题,

1、修改root的密码方式;

2、新的协议认证方式,导致navicate无法登录。

有不当之处欢迎指正。