实战超详细MySQL8离线安装

news2024/9/22 20:29:42

在RedHat中,RPM Bundle 方式安装MySQL8。建议一定要用 RPM Bndle 版本安装,包全。

官网下载:https://dev.mysql.com/downloads/mysql/

1.卸载mariadb,会与MySQL安装冲突。

rpm -qa | grep mariadb 查看有无mariadb

如果有,则删除 yum -y remove mariadb-libs.x86_64

2.查看是否有 numactl

rpm -qa | grep numa

如果没有 numactl 库,或者不是64位的版本,则需要安装,网上教程挺多,需要的自行查找。

3.解压tar -xvf mysql-8.0.13-1.el7.x86_64.rpm-bundle.tar

安装6个必须安装的包,需要按顺序安装。

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

4.启动 mysql

启动服务:service mysqld start

查看状态:service mysqld status

5.登陆MySQL8

查看临时密码 grep 'password' /var/log/mysqld.log

2023-02-11T10:58:32.259446Z 6 [Note] [MY-010454] [Server] A temporary password is generated for root@localhost: >5wo7dI(atEg

使用临时密码登录:

mysql -u root -p回车后输入临时密码

6.修改新密码

alter USER 'root'@'localhost' IDENTIFIED BY 'root用户的密码';

7.设置MySQL的root用户远程登录

use mysql;

select host, user from user;

如果host为localhost则执行update user set host = "%" where user='root';

刷新生效flush privileges;

解决部分客户端无法连接的问题,比如dbvisualizer报

Unable to load authentication plugin 'caching_sha2_password

alter USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY 'root用户的密码';

刷新生效flush privileges;

8.更改时区,一般不用修改,以防万一

查看当前时间。

select now() from dual;

如果发现和当前系统时间不一致,则需要根据实际情况来修改。

set persist time_zone='-5:00';

flush privileges;

查看修改后的时区和当前时间

show variables like '%time_zone%';

select now() from dual;

9.考虑到以后可能有空间大小限制,变更一下数据目录

当前目录:/var/lib/mysql

目标目录:/opt/mysql

#先做个备份,有备无患

cd /var/lib

mkdir mysqlbak

cp -a -R /var/lib/mysql/* /var/lib/mysqlbak

#转移mysql目录到/opt

mv /var/lib/mysql /opt/

chown -R mysql:mysql /opt/mysql

#修改my.cnf

vim /etc/my.cnf

此时,启动mysql服务正常,但是 mysql -u root -p 登录会报错:

Can 't connect to local MySQL server through socket '/var/lib/mysql.sock '(2)

分析了一下,提示说无法通过socket文件/var/lib/mysql/mysql.sock连接到mysql服务器,
也就是对于mysql程序来说,尽管我把socket文件从/var/lib/mysql/mysql.sock转移到了
/opt/mysql/mysql.sock,在my.cnf里指定了socket文件位置,
但是对于mysql还是会从默认的安装目录/var/lib/mysql/里找这个mysql.sock文件,
找不着,就不知道从哪里启动了。所以,做一个软连接,让mysql能访问到移动后的 mysql.sock。

#在 /var/lib 目录,创建一个空的mysql

mkdir mysql

chown mysql:mysql mysql

#做一个软连接

ln –s /opt/mysql/mysql.sock /var/lib/mysql/

ll /var/lib/mysql

这一步很关键,网上很多做这个软连接的做法,但是都是错误的,在这一步试了好长时间才找对办法。

做完软连接后,启动 mysql 服务,能正常登录了。

10.开放防火墙端口,否则不能远程访问

#防火墙命令

启动防火墙:systemctl start firewalld

关闭防火墙:systemctl stop firewalld

重启防火墙:systemctl restart firewalld

查看防火墙:systemctl status firewalld

查看已开启的端口:firewall-cmd --list-ports

#添加端口3306

firewall-cmd --zone=public --add-port=3306/tcp --permanent

systemctl restart firewalld

firewall-cmd --reload

firewall-cmd --list-port

#关闭指定端口

firewall-cmd --zone=public --remove-port=3306/tcp --permanent

systemctl restart firewalld

firewall-cmd --reload

firewall-cmd --list-port

#查看端口被哪一个进程占用

netstat -lnpt |grep 3306

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/341534.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

数据机构笔记哈夫曼编码

1.什么是哈夫曼树?哈夫曼树经典问题:合并果堆问题:如果有三个果堆,其质量分别是1,2,3,我们现在需要将这三堆合并成一堆果堆,合并过程消耗体力等于两堆果堆的质量之和,求最小体力消耗值&#xff…

java贪心算法

1 应用场景-集合覆盖问题 假设存在下面需要付费的广播台,以及广播台信号可以覆盖的地区。 如何选择最少的广播台,让所有的地区 都可以接收到信号 2 贪心算法介绍 贪婪算法(贪心算法)是指在对问题进行求解时,在每一步选择中都采取最好或者最优…

Threadlocal为何引发内存泄漏问题

首先我们要先了解什么是泄漏问题和什么是内存溢出 内存泄漏表示程序员申请了内存,但是该内存一直无法被释放 内存溢出表示申请内存不足,就会报错 为何引发内存泄漏问题 因为每个线程都有自己独立的ThreadLocalMap对象,key为ThreadLocal&…

【C++1】函数重载,类和对象,引用,string类,vector容器,类继承和多态,/socket,进程信号

文章目录1.函数重载:writetofile(),Ctrue和false,C0和非02.类和对象:vprintf2.1 构造函数:对成员变量初始化2.2 析构函数:一个类只有一个,不允许被重载3.引用:C中&取地址&#x…

【shell 编程大全】内容格式化以及多样化输出

内容格式化以及多样化输出 1. 前倾回顾 本章节我们一起来学习下,shell中内容格式化,以及多样输出。但是在学习之前,我们先来看看上个章节【shell 变量的定义以及使用】 我们都学习到了什么知识 shell 变量的定义以及使用 变量分类变量定义类…

SpringBoot设置和读取配置文件(1)

SpringBoot配置文件是用来保存SpringBoot项目当中所有重要的数据的,比如说数据库连接信息,数据库的启动端口,如果端口被占用了,那么就可以随时修改; 1)比如说我们之前再写JDBC的代码的时候,要去写链接字符串…

C 字符串

在 C 语言中,字符串实际上是使用空字符 \0 结尾的一维字符数组。因此,\0 是用于标记字符串的结束。空字符(Null character)又称结束符,缩写 NUL,是一个数值为 0 的控制字符,\0 是转义字符&#…

SNI生效条件 - 补充nginx-host绕过实例复现中SNI绕过的先决条件

文章目录1.前置环境搭建2.测试SNI生效条件(时间)3. 证书对SNI的影响3.1 双方使用同一个证书:3.2 双方使用不同的证书与私钥4. 端口号区分测试4.1 端口号区分,证书区分:4.2 端口号区分,证书不区分:5.总结SNI运行机制6. SNI机制绕过…

Docker-安装Jenkins-使用jenkins发版Java项目

文章目录0.前言环境背景1.操作流程1.1前期准备工作1.1.1环境变量的配置1.2使用流水线的方式进行发版1.2.1新建流水线任务1.2.2流水线操作工具tools步骤stages步骤1:拉取代码编译步骤2:发送文件并启动0.前言 学海无涯,旅“途”漫漫,“途”中小记&#xff…

从0到1一步一步玩转openEuler--12 openEuler用户管理

文章目录12.1 创建用户12.1.1 useradd命令12.1.2 用户信息文件12.1.3 创建用户实例12.2 修改用户账号12.2.1 修改密码12.2.2 修改用户shell设置12.2.3 修改主目录12.2.4 修改UID12.2.5 修改账号的有效期12.3 删除用户12.4 管理员账户授权在Linux中,每个普通用户都有…

【Java 面试合集】怎么声明一个类不会被继承,以及应用场景

怎么声明一个类不会被继承,以及应用场景1. 概述 今天的Java 面试合集又来了。今天我们复习的问题是:怎么声明一个类,不可以被继承 2. 验证 public final class TestMath { }通过上述截图 我们可以看到,被关键字final 修饰过的类,…

EOC第六章《块与中枢派发》

文章目录第37条:理解block这一概念第38条:为常用的块类型创建typedef第39条:用handler块降低代码分散程度第41条:多用派发队列,少用同步锁方案一:使用串行同步队列来将读写操作都安排到同一个队列里&#x…

02 OpenCV图像通道处理

1 通道提取与合并 在数字图像处理中,图像通道是指一个图像中的颜色信息被分离为不同的颜色分量。常见的图像通道包括RGB通道、灰度通道、HSV通道等。 RGB通道是指将图像分离为红色、绿色和蓝色三个颜色通道,每个通道表示相应颜色的亮度。这种方式是最常…

【QT 5 相关实验-仪表盘-学习笔记-表盘组件练习与使用总结】

【QT 5 相关实验-仪表盘-学习笔记-表盘组件练习与使用总结】1、概述2、实验环境3、参考资料-致谢4、自我提升实验效果5、代码练习-学习后拆解(1)头文件部分(2)绘制事件绘制表盘代码(3) 每一块部分绘制6、代码移植提升类…

Spring Security in Action 第十一章 SpringSecurity前后端分离实战

本专栏将从基础开始,循序渐进,以实战为线索,逐步深入SpringSecurity相关知识相关知识,打造完整的SpringSecurity学习步骤,提升工程化编码能力和思维能力,写出高质量代码。希望大家都能够从中有所收获&#…

nginx正向代理的配置和使用

nginx正向代理的配置和使用 nginx正向代理的配置和使用nginx正向代理的配置和使用安装包准备下载nginx安装包下载正向代理模块的包版本与模块对照表部署nginx服务上传nginx包和正向模块包解压,改名安装nginx配置正向代理创建nginx用户检查nginx配置并启动nginx服务所在服务器验…

微服务02 Docker

Docker实用篇0.学习目标1.初识Docker1.1.什么是Docker微服务虽然具备各种各样的优势,但服务的拆分通用给部署带来了很大的麻烦。分布式系统中,依赖的组件非常多,不同组件之间部署时往往会产生一些冲突。在数百上千台服务中重复部署&#xff0…

实战绕过WTS-WAF的SQL注入

实战绕过WTS-WAF的SQL注入1.前言2.测试流程2.1.发现漏洞2.1.1.正常页面2.1.2.WAF警告2.1.3.非正常页面2.2.判断字段数2.2.1.非正常页面2.2.2.正常页面2.3.判断回显位2.4.信息收集2.4.1.数据库版本2.4.2.数据库名2.5.判断数据库表2.5.1.WAF告警2.5.2.获取表2.5.3.burp suite测试…

龙曲良 Tensorflow —— tensorflow高级操作(自用)

目录 一、合并与分割 1.1 tf.concat (合并) 1.2 tf.stack (增加新维度) 1.3 tf.unstack (一个一个拆分) 1.4 tf.split (均分拆分) 二、数据统计 2.1 tf.norm(默认二范数) 2…

WebRTC(一):三种架构和基本原理

文章目录一、三种架构二、为什么SFU最为常用?一、三种架构 webrtc大致可以分为三种架构: MESH mesh架构需要所有参与连接的peer简历和所有其他peer的媒体的连接,如图一。 该架构需要n-1个上下行,以此带来的带宽消耗&#xff08…