十二、MySQL8.0.32离线安装(适用于Linux-CentOS 7)

前言

1CentOS6和CentOS7在MySQL的使用中的区别

防火墙 6是iptables7是firewalld
启动服务的命令 6是service7是systemctl

2查看是否安装过MySQL未安装请跳过

如果你是用rpm安装, 检查一下RPM PACKAGE

rpm -qa | grep -i mysql # -i 忽略大小写

检查mysql service

systemctl status mysqld.service

如果存在mysql-libs的旧版本包显示如下

rpm -qa | grep -i mysql

3MySQL的卸载未安装请跳过

① 关闭 mysql 服务

systemctl stop mysqld.service

② 查看当前 mysql 安装状况

rpm -qa | grep -i mysql
# 或
yum list installed | grep mysql

③ 卸载上述命令查询出的已安装程序

yum remove mysql-xxx mysql-xxx mysql-xxx mysqk-xxxx

务必卸载干净反复执行 rpm -qa | grep -i mysql 确认是否有卸载残留
④ 删除 mysql 相关文件
查找相关文件

find / -name mysql

删除上述命令查找出的相关文件

rm -rf xxx

⑤ 删除 my.cnf

rm -rf /etc/my.cnf

1、下载

1认准官方网站

在这里插入图片描述

2选择“DOWNLOADS”

在这里插入图片描述

3 MySQL的三大版本

aMySQL Enterprise Edition企业版本付费
bMySQL Cluster CGE高级集群版收费
cMySQL Community Server社区版开源
在这里插入图片描述
个人使用选择“社区版”即可
在这里插入图片描述
本文章以“CentOS-7”为例
在这里插入图片描述
选中“RPM Bundle”下载
在这里插入图片描述
点击下图超链接进行下载
在这里插入图片描述
下载完成后如下图
在这里插入图片描述
解压后文件如下图
在这里插入图片描述

4使用远程工具

登录账户 root/密码
执行命令

cd /opt/
ll

在这里插入图片描述
在这里插入图片描述
根据MySQL版本新建文件夹存放MySQL安装包
再执行命令

mkdir mysql-8.0.32-1.el7.x86_64

在这里插入图片描述

5使用文件传输工具

将MySQL安装包上传至“/opt/mysql-8.0.32-1.el7.x86_64”目录下
在这里插入图片描述
在这里插入图片描述

6解压MySQL安装包

执行命令

tar -xvf mysql-8.0.32-1.el7.x86_64.rpm-bundle.tar

在这里插入图片描述

2、安装

1准备工作

在安装之前先做三项准备操作。
a由于 MySQL 安装过程中会通过 MySQL 用户在 /tmp 目录下新建 tmp_db 文件。赋予其权限执行:
执行命令

chmod -R 777 /tmp

在这里插入图片描述
b检查依赖是否存在CentOS7安装了桌面环境默认存在
执行命令

rpm -qa|grep libaio
rpm -qa|grep net-tools

在这里插入图片描述
cMySQL 与 mysql-libs 冲突提前移除
执行命令

yum remove mysql-libs 
或者 
rpm -e mariadb-libs --nodeps

在这里插入图片描述

2开始安装

rpm Redhat Package Manage缩写通过RPM的管理用户可以把源代码包装成以rpm为扩展名的文件形式易于安装。
-i --install 安装软件包
-v–verbose 提供更多的详细信息输出
-h–hash 软件包安装的时候列出哈希标记 (和 -v 一起使用效果更好)展示进度条
执行命令执行安装严格按照顺序

rpm -ivh mysql-community-common-8.0.32-1.el7.x86_64.rpm

在这里插入图片描述

rpm -ivh mysql-community-client-plugins-8.0.32-1.el7.x86_64.rpm

在这里插入图片描述

rpm -ivh mysql-community-libs-8.0.32-1.el7.x86_64.rpm

在这里插入图片描述

rpm -ivh mysql-community-client-8.0.32-1.el7.x86_64.rpm

在这里插入图片描述

rpm -ivh mysql-community-icu-data-files-8.0.32-1.el7.x86_64.rpm

在这里插入图片描述

rpm -ivh mysql-community-server-8.0.32-1.el7.x86_64.rpm

在这里插入图片描述
此时安装完毕

3、查看MySQL版本

执行如下命令如果成功表示安装MySQL成功。类似java --version可以显示出版本信息。
执行命令

mysql --version
或者
mysqladmin --version

在这里插入图片描述
执行如下命令查看是否安装成功。需要增加 -i 不用区分大小写否则搜索不到。
执行命令

rpm -qa|grep -i mysql

在这里插入图片描述

4、服务初始化

为了保证数据库目录与文件的所有者为mysql登录用户如果你是以root身份运行mysql服务需要执行下面的命令初始化
执行命令

mysqld --initialize --user=mysql

在这里插入图片描述
说明–initialize选项默认以“安全”模式来初始化则会为root用户生成一个密码并将该密码标记为过期登录后你需要设置一个新的密码生成的临时密码会往日志中记录一份。

查看密码
执行命令

cat /var/log/mysqld.log

在这里插入图片描述

5、启动MySQL查看状态

mysqld这个可执行文件就代表着MySQL服务器程序运行这个可执行文件就可以直接启动一个服务器进程。

1查看服务状态

systemctl status mysqld

在这里插入图片描述

2启动服务

systemctl start mysqld

在这里插入图片描述
再次查看服务启动状态
在这里插入图片描述

3停止服务

systemctl stop mysqld.service

4重启服务

systemctl restart mysqld.service

查看进程

ps -ef | grep -i mysql

在这里插入图片描述

6、查看MySQL服务是否自启动

systemctl list-unit-files|grep mysqld.service

在这里插入图片描述
默认是enabled。
如不是enabled可以运行如下命令设置自启动。

systemctl enable mysqld.service

在这里插入图片描述
如果希望不进行自启动运行如下命令设置。

systemctl disable mysqld.service

在这里插入图片描述

7、 MySQL登录

1首次登录

mysql -hlocalhost -P3306 -uroot -p

在Enter password录入初始化密码
在这里插入图片描述

2修改密码

因为初始化密码默认是过期的所以查看数据库会报错。

ALTER USER 'root'@'localhost' IDENTIFIED BY 'new_password';

在这里插入图片描述
5.7版本之后不含5.7mysql加入了全新的密码安全机制。设置新密码太简单会报错。
在这里插入图片描述
改为更复杂的密码规则之后设置成功可以正常使用数据库了
在这里插入图片描述

8、设置远程登录

1连接超时问题

在用SQLyog或Navicat或者DBeaver中配置远程连接Mysql数据库时遇到如下报错信息这是由于Mysql配置了不支持远程连接引起的。
在这里插入图片描述

2确认网络

在远程机器上使用ping ip地址 保证网络畅通
在这里插入图片描述

3在远程机器上使用telnet命令 保证端口号开放 访问

语法 telnet ip地址 端口号
拓展 telnet命令开启
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
出现连接失败问题。
在这里插入图片描述

4关闭防火墙或开放端口

方式一关闭防火墙
CentOS6

service iptables stop

CentOS7
查看防火墙状态

systemctl status firewalld.service

打开防火墙

systemctl start firewalld.service

关闭防火墙

systemctl stop firewalld.service

在这里插入图片描述
设置开机启用防火墙

systemctl enable firewalld.service

设置开机禁用防火墙

systemctl disable firewalld.service

在这里插入图片描述
方式二开放端口
查看开放的端口号

firewall-cmd --list-all

设置开放的端口号

firewall-cmd --add-service=http --permanent
firewall-cmd --add-port=3306/tcp --permanent

重启防火墙

firewall-cmd --reload

5Linux下修改配置

在Linux系统MySQL下测试

use mysql;
select Host,User from user;

在这里插入图片描述
  可以看到root用户的当前主机配置信息为localhost修改Host为通配符%
  Host列指定了允许用户登录所使用的IP比如user=rootHost=192.168.1.1。这里的意思就是说root用户只能通过192.168.1.1的客户端去访问。user=rootHost=localhost表示只能通过本机客户端去访问。
  而 %是个 通配符 如果Host=192.168.1.%那么就表示只要是IP地址前缀为“192.168.1.”的客户端都可以连接。如果 Host=% 表示所有IP都有连接权限。
**注意**在生产环境下不能为了省事将host设置为%这样做会存在安全问题具体的设置可以根据生产环境的IP进行设置。

update user set host = '%' where user ='root';

在这里插入图片描述
Host修改完成后记得执行flush privileges;使配置立即生效

flush privileges;

在这里插入图片描述

问题一 如果出现配置新连接报错错误号码 2058分析是 mysql 密码加密方法变了。mysql 8.0 默认使用 caching_sha2_password 身份验证机制。从原来的mysql_native_password 更改为 caching_sha2_password。所以需要将caching_sha2_password修改为mysql_native_password即可。
**解决方法**Linux下 mysql -u root -p 登录你的 mysql 数据库然后 执行这条SQL

ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY '123456';

然后在重新配置SQLyog的连接则可连接成功了OK。
在这里插入图片描述
问题二问题一几乎一样用问题一的解决方式也可以
在这里插入图片描述
解决办法 JDBC 连接串中加入 allowPublicKeyRetrieval=true 参数
参数修改为后可以再次修改为false但是这样每次建立新连接的时候都需要修改为true
在这里插入图片描述
连接成功
在这里插入图片描述

阿里云国内75折 回扣 微信号:monov8
阿里云国际,腾讯云国际,低至75折。AWS 93折 免费开户实名账号 代冲值 优惠多多 微信号:monov8 飞机:@monov6