linux安装MySQL8.0整个流程调整

linux安装MySQL8.0版本数据库

准备工作:
如果环境中已有数据库先卸载数据库服务(以下为mariadb为列):

1. 停止数据库服务:

systemctl stop mariadb.service

2. 卸载数据库服务:

yum remove mariadb mariadb-server

注意:删除/var/lib/mysql文件下的所有文件,不然会出现安装后root账户密码问题。
删除命令:

rm -ef /var/lib/mysql

完成上述操作后,进行安装MySQL8.0版本数据库

mysql8.0 rpm文件

1. 下载mysql的repo源,下载地址:

进入linux系统,输入指令:

wget https://dev.mysql.com/get/mysql80-community-release-el7-1.noarch.rpm

2. 安装mysql-community-release-el7-5.noarch.rpm包

输入指令:

sudo rpm -ivh mysql80-community-release-el7-1.noarch.rpm

3. 安装mysql

输入指令:

sudo yum install mysql-server

中间提示就一直Y就好了,等到出现Complete!则表示安装完成。根据提示安装就可以了,不过安装完成后没有密码,需要重置密码.

4. 登录时有可能报这样的错:ERROR2002 (HY000): Can‘t connect to local MySQL server through socket ‘/var/lib/mysql/mysql.sock‘ (2),原因是/var/lib/mysql的访问权限问题。下面的命令把/var/lib/mysql的拥有者改为当前用户:

输入指令:mysql-u root
这时候会出现ERROR 2002(HY000):报错
输入指令:

sudo chown -R root:root /var/lib/mysql

继续输入指令:
重启MySQL服务器:

service mysqld restart

等重新完成后在输入mysql -u root 就可以看到如下,但是现在又提醒密码错误的信息,输入指令获取随机密码。
生成随机密码
输入指令:

grep 'temporary password' /var/log/mysqld.log

而等用新密码之后再操作数据库之后会报出这样的问题,当我去查询用户的时候报这个错误:You must reset your password using ALTER USER statement beforeexecuting this statement
大致意思是说:在执行此语句之前,必须使用ALTE USER语句重设密码。
然后我们需要设置新密码

ALTER USER "root"@"localhost" IDENTIFIED BY "********";

5. 如果出现密码登陆不上,通过强制手段实现密码调整

5.1 从/etc/my.cnf 配置文件中加入skip-grant-tables

编辑my.cnf文件(如果是windows系统编辑my.ini文件),

vim /etc/my.cnf

linux安装MySQL8.0整个流程调整_第1张图片
重启MySQL服务:

service mysqld restart

输入mysql或mysql -uroot进入MySQL操作命令界面。
在这里插入图片描述
修改用户密码:

alter user 'root'@'localhost' IDENTIFIED BY 'YourNewPass@123'

linux安装MySQL8.0整个流程调整_第2张图片
修改成功后去除my.cnf中的权限开发语句,重启MySQL服务,使用正常权限进入数据库
mysql -uroot -p


6. 创建数据库,创建用户,对用户对应数据库授权

创建数据库:

create database medicare;

linux安装MySQL8.0整个流程调整_第3张图片
创建用户:

CREATE USER medicare@'%' IDENTIFIED BY 'Mda@xxxxx';

linux安装MySQL8.0整个流程调整_第4张图片
注意:有的可能会出现密码简单不允许创建
linux安装MySQL8.0整个流程调整_第5张图片

为用户对应数据库授权:
可用的权限:

ALL: 所有可用的权限
CREATE: 创建库、表和索引
LOCK_TABLES: 锁定表
ALTER: 修改表
DELETE: 删除表
INSERT: 插入表或列
SELECT: 检索表或列的数据
CREATE_VIEW: 创建视图
SHOW_DATABASES: 列出数据库
DROP: 删除库、表和视图

grant all privileges on 数据库名称.* to 数据库用户名@‘授权范围’ identified by ‘数据库用户名密码’;

grant all privileges on wxactivity.* to mysqluser@'%' identified by 'mysqluseradmin';(这是例子,%代表授权全网,localhost代表授权本机)
grant all privileges on 数据库.* to xxx@'%';

linux安装MySQL8.0整个流程调整_第6张图片
移除权限:

REVOKE all privileges ON 数据库.*  FROM xxx@';

刷新权限:

flush privileges;

7.使用远程连接的过程当中出现连接失败解决方案

因为当前数据库版本比较高,我当前使用的事MySQL8.0,远程连接时会报错:2059 - Authencation plugin ‘caching_sha2_password’ cannot be loaded:,这是MySQL新版本的校验认证方式“caching_sha2_password”,若想在MySQL8.0版本中继续使用旧版本中的认证方式需要在my.cnf 文件(windows下为my.ini文件) 中配置并重启。
找到:default_authentication_plugin=mysql_native_password,打开注解
linux安装MySQL8.0整个流程调整_第7张图片
重启服务:

service mysqld restart

再次远程连接,会出现:1045 - Access denied for user ‘root’@‘xxx’ (using password: YES) 错误,xxx:可能是IP、localhost、::1等,如果你的mysql服务中user表中的host是’%'那么就是ip,如果是’localhost’就是localhost等。
进入MySQL命令窗口后,执行命令:

select user,plugin from user where user='root';

你会看到加密认证方式是:caching_sha2_password
linux安装MySQL8.0整个流程调整_第8张图片
将其改为:mysql_native_password 加密认证模式即可。

alter user '用户名'@'%' identified with mysql_native_password by '用户密码';

连接成功。

本篇文章安装MySQL主要参考:
https://www.cnblogs.com/wangchengpei/p/10957969.html
致谢!

你可能感兴趣的:(MySQL,mysql,权限,远程连接问题)