百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 编程文章 > 正文

红帽Linux中安装mysql8详细步骤

qiyuwang 2025-03-12 20:09 8 浏览 0 评论

注意:我写的解压路径和截图路径不一致,仅供参考

先前往官网下载mysql8

下载地址:https://dev.mysql.com/downloads/

选择指定版本和系统

下载命令

进入root目录,执行wget命令下载

wget https://downloads.mysql.com/archives/get/p/23/file/mysql-8.0.33-linux-glibc2.28-x86_64.tar.gz

删除Linux中的mysql(如果有的话),上传安装包

先查看mysql是否存在

如下命令:rpm -qa|grep -i mysql

如果使用这个命令之后没有出现任何内容,表示没有安装过mysql,如果有出现,则删除。

如果存在,那么停止mysql,删除所有的服务

停止命令:service mysqld stop

检查是否存在命令:rpm -qalgrep -i mysql

查询所在路径:find / -name mysql

删除命令:rm -rf 路径 (例如:rm -rf /etc/rc.d/init.d/mysgl)

解压安装MySQL

解压至指定目录

tar -zvxf mysql-8.0.33-linux-glibc2.28-x86_64.tar.gz -C /mnt/soft/mysql-8.0.33

先给目录新增权限以便后面写文件使用(以免权限不足带来问题)

chmod 750 /mnt/soft/mysql-8.0.33

进入MySQL根目录,创建data文件夹

进入mysql解压目录

cd /mnt/soft/mysql-8.0.33

执行创建data命令:mkdir data

创建mysql组和用户

创建mysql组

groupadd mysql

创建mysq用户

useradd -g mysql mysql

执行如图:

出现这样的提示表示已经创建过mysql组和用户了。

将安装的MySQL权限给mysql用户

chown -R mysql.mysql /mnt/soft/mysql-8.0.33

MySQL初始化

初始化

在初始化之前提一嘴,Linux中的MySQL默认是区分表明大小写的,如果你是安装的也是MySQL8,那么不区分大小需要在数据库初始化时设置,不然初始化后,在配置文件在设置重启时是会报错的。

进入mysql解压目录

cd /mnt/soft/mysql-8.0.33/bin

./mysqld --user=mysql --basedir=/mnt/soft/mysql-8.0.33 --datadir=/mnt/soft/mysql-8.0.33/data --lower-case-table-names=1 --initialize

–lower-case-table-names=1 即设置不区分表明大小写,最后面的 dwW3</EIewj 为初始化生产的临时密码。

初始化失败

./mysqld: error while loading shared libraries: libaio.so.1: cannot open shared object file: No such file or directory

原因:

这是一个与运行MySQL数据库相关的问题。出现这个错误的原因是系统缺少了名为libaio.so.1的共享库文件。

使用命令查看是否已安装libaio软件包,命令如下:rpm -qa|grep libaio

可以看到并没有安装libaio软件包。

解决办法:

先安装numactl软件包,命令如下:yum -y install numactl.x86_64

然后安装libaio开发包,命令如下:yum install libaio-devel.x86_64

再次查看是否安装成功libaio软件包

rpm -qa|grep libaio

可以看到安装成功了,再次初始化应该就可以成功了。

修改MySQL配置文件

初次进入时配置是空的,进入命令

vim /etc/my.cnf

[mysqld]

#设置MySQL运行端口

port=3306

# MySQL根目录

basedir=/mnt/soft/mysql-8.0.33

# MySQL的data目录

datadir=/mnt/soft/mysql-8.0.33/data

#日志文件

log-error=/mnt/soft/mysql-8.0.33/logs/mysqld.log

#socket

socket=/mnt/soft/mysql-8.0.33/mysql.sock

#PID文件

pid-file=/mnt/soft/mysql-8.0.33/mysqld.pid

symbolic-links=0

#慢查询配置

slow_query_log=ON

long_query_time=200

slow_query_log_file=/mnt/soft/mysql-8.0.33/logs/mysql_slow_query.log

#问题原因

#MySQL8.0新增data dictionary的概念,数据初始化的时候在Linux下默认使用lower-case-table-names=0参数,数据库启动的时候读取my.cnf文件中的值。若二者值不一致则在MySQL的错误日志中记录报错信息。

lower_case_table_names = 1

#MySQL允许最大的进程连接数

max_connections = 3000

#设置在网络传输中一次消息传输量的最大值

max_allowed_packet = 32M

#解决“java.sql.SQLException: Expression #1 of ORDER BY clause is not in SELECT list,references column”

sql_mode='STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION'

保存退出

添加服务到系统

进入MySQL的/mnt/soft/mysql-8.0.33

cd /mnt/soft/mysql-8.0.33

cp -a ./support-files/mysql.server /etc/init.d/mysql

授权以及添加服务

授权

这里授权和添加服务都是在MySQL的根目录中操作。

chmod +x /etc/init.d/mysql

添加服务

chkconfig --add mysql

将MySQL命令添加到服务

命令: ln -s “你的MySQL根目录/bin/mysql” /usr/bin ,这一步是为了能在任何地方通过用户名和密码登录MySQL

ln -s /mnt/soft/mysql-8.0.33/bin/mysql /usr/bin

踩坑

直到上一步都没有出错,在登录mysql时报如下错:

可能是挂载的路径错了,到挂载目录查看,命令如下

cd /usr/bin

可以看到mysql服务是红色的,并且一直在闪,正常的应该是绿色的

我当前的mysql根目录是8.0.32,添加的时候写成了8.0.31,怪不得会报错。解决办法:删除当前mysql的服务,重新添加。先删除,命令如下:rm -rf /usr/bin/mysql

重新添加:ln -s /mnt/soft/mysql-8.0.33/bin/mysql /usr/bin

可以看到mysql服务添加成功,可以登录mysql了

启动MySQL

启动MySQL命令

service mysql start

查看MySQL状态

service mysql status

修改密码

mysql客户端连接

mysql -h 127.0.0.1 -uroot -p

输入密码:

执行命令:alter user 'root'@'localhost' identified by '123456';

修改允许远程连接

分别执行以下命令
#使用mysql库
use mysql;
#修改root用户远程连接配置
update user set Host = '%' where Host = 'localhost' and User='root';
#刷新保存数据库,此时远程连接生效
flush privileges;

防火墙

查看防火墙状态

firewall-cmd --state

重新加载配置

firewall-cmd --reload

查看开放的端口

firewall-cmd --list-ports

开启防火墙端口

命令含义:

  –zone #作用域

  –add-port=9200/tcp #添加端口,格式为:端口/通讯协议

  –permanent #永久生效,没有此参数重启后失效

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

如果执行添加端口命令后,需要执行重新加载配置命令才生效

关闭防火墙端口

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

相关推荐

别再乱找了!这才是 Alist 本地安装挂载的正确打开方式

一、探秘Alist的神奇世界在这个数据爆炸的时代,我们的生活里充斥着各种各样的网盘服务,百度网盘、阿里云盘、腾讯微云等等,它们成了我们存储资料的得力助手。但随着网盘数量的增多,管理这些分散在不同平...

如何将数据从旧iPhone传输到新iPhone 16?这五个方法你必须知道!

前不久,苹果发布了备受期待的iPhone16系列,新机型搭载了更强大的芯片、更流畅的操作体验,还有备受热议的全新摄像系统。无论你是冲着A18仿生芯片,还是更丰富的动态岛功能,相信很多果粉早已跃跃欲试...

大数据传输的定义与大数据传输解决方案的选择

当我们需要处理大量的数据时,我们就要把数据从一个地方移动到另一个地方。这个过程就叫做大数据传输。它通常需要用到高速的网络连接、分散的存储系统和数据传输协议,以保证数据的快速、可靠和安全的移动。常用的大...

【工具】在线传输文件工具(在线文件互传)

前言在线传输文件工具主要是用于在不同的设备之间,如手机、电脑、平板等快速便捷地传送文件。告别使用USB传统传输文件的方式。...

如何使用 CAN-FD 在 LPC5500 上传输数据

目录1引言2CAN-FD3示例演示1引言...

轻松同步:将照片从三星手机传输到iPad的简便方法

概括想要在新iPad上查看三星照片吗?但是,如果您不知道如何将照片从三星手机传输到iPad,则无法在iPad上查看图片。为此,本文分享了7个有用的方法,以便您可以使用它们在不同操作系统之...

常见又地道的网络缩写:美剧中常说的SFW到底是个啥?

在这堂课中,让我们来学习更多在数字网络世界中常用的有趣网络用语。7shifts/unsplashhttp,https“http”和“https”是万维网(www)传输文件用的协议。“http”是hy...

每天学会一个计算机网络协议之FTP

开始行文之前提出一个问题,相信大家在看完本文后一定可以回答当我们在网站上填写注册信息的时候,需要我们上传照片,上传的过程发生了什么?下面引入我们的主角,FTP文件传输协议FTPFileTransf...

即用即走,这3款文件分享工具真香

打工人的日常,免不了「文件分享存储服务」的需求。我们一般会选择不同的网盘,但是大家也知道,网盘不是限速就是叫你充值。今天跟大家简单推荐3款文件分享工具,既可以免登录匿名使用,而且操作简单稳定性也不错。...

安卓手机里的文件和照片与Mac互传的办法

因为HandShake一段时间未更新,似乎目前不可操作。我一时间未找到更好的「传输」办法,经实践操作,向大家介绍一下「安卓手机」,包括「一加」、「索尼」,都可用此方法,来进行文件传输到Mac的...

软网推荐:同一个平台选择不同的传输方法

平时上网的时候,我们经常要分享一些文件给其他朋友,一般通过云服务平台来实现。今天笔者给大家介绍的Worksphere传输服务,它提供了两种不同的分享方式,方便我们根据实际需要进行选择。一个链接分享所有...

跨平台不限速的免费文件传输网站(跨平台不限速的免费文件传输网站是什么)

大家好,欢迎来到天天惠分享,不知道各位平时都是用什么方法来进行文件跨平台传输的呢?是百度网盘?微信还是QQ?亦或是有线传输。虽然这些方法都可以达到传输的目的,但都有各自的缺陷,使用起来一言难尽。比如百...

全网最全最详细的全平台文件传输方法,解决你文件传输问题(一)

前言想必现在大多数人文件传输的方法还是使用qq微信,但是qq微信的文件传输有时候真是,...

文件传输工具有哪些?这3款堪称办公必备!

在不同设备间,想把文件从一台设备传输到另一台,尤其是大体积文件,更是免不了用到文件传输工具,可以说文件传输工具已成为提升效率的关键载体。面对海量文档、设计素材、会议纪要的流转需求,传统邮件附件、U盘拷...

小白也能用的跨网文件交换系统!10款简单易上手的文件摆渡工具

跨网文件交换系统对于需要频繁在不同网络环境中进行文件共享的用户来说至关重要。以下是10款简单易上手的文件摆渡工具,适合小白用户使用,帮助他们高效地分享和传输文件。10款简单易上手的跨网文件交换工具1....

取消回复欢迎 发表评论: