Linux下载安装MySQL8.4

这里写目录标题

一、准备工作

查看系统环境

确认Linux系统的版本和架构,确保下载的MySQL安装包与系统兼容。

csharp 复制代码
cat /etc/os-release

获取Linux发行版的信息。这个文件包含了发行版的名称、版本号等信息。

查看具体版本

bash 复制代码
ldd --version

glibc是GNU C Library,是Linux系统中非常重要的一部分。

查看系统架构

系统架构决定了应该下载32位还是64位的MySQL安装包。通过uname命令查看系统架构:

bash 复制代码
uname -m

卸载已安装的版本

检查系统是否已安装其他版本的MySQL

先进行卸载。

检查是否安装

bash 复制代码
rpm -qa | grep mysql

如果已安装mysql,先删除(我这里是新虚拟机,没有安装过)

bash 复制代码
rpm -e --nodeps +上述检查出来的包名

卸载完成后,还要还用上面的命令再次检查是否安装

搜索存在哪些mysql文件夹

bash 复制代码
find / -name mysql

如果有mysql文件夹则全部删除

bash 复制代码
rm -rf +对应的包名

再次检查mysql文件夹

二、下载MySQL安装包

先查了一下现在mysql最新的长期支持版是哪个版本,打算安装最新的LTS版.

查的结果是:

‌MySQL最新的长期支持版是MySQL 8.4。‌

MySQL的发布模型分为两个主要轨道:LTS(长期支持)和创新版本。LTS版本大约每两年发布一次,提供更长时间的更新和安全补丁支持,以确保系统的稳定和可靠。MySQL 8.4是第一个LTS版本,于2024年4月30日发布,提供了5年的标准支持和3年的扩展支持‌。

官网地址

官网地址: https://downloads.mysql.com/archives/community/

我选择的是Linux-Generic

知识扩展(不想了解的小伙伴,可以直接跳过这部分不看)

下面还有一个 red hat enterprise linux/oracle linux

inux-Generic并不是一个特指某个具体Linux发行版或版本的术语。相反,它可能是在某些安装程序、软件包管理器或文档中用于指代Linux的通用或标准版本的通用词汇。不过,由于Linux的多样性和开源特性,实际上并不存在一个名为"Linux-Generic"的官方Linux发行版。

关于Red Hat Enterprise Linux(RHEL)和Oracle Linux的选择,这两个都是企业级Linux发行版,它们提供了稳定、安全和高性能的环境,适用于需要高可靠性和可预测性的应用场景。它们之间的主要区别在于开发者和支持服务的不同:

● Red Hat Enterprise Linux(RHEL):由Red Hat公司开发和维护,提供全面的企业级支持服务,包括订阅服务、安全更新、技术支持等。RHEL以其稳定性和安全性而著称,是许多大型企业和组织的首选Linux发行版。

● Oracle Linux:由Oracle公司开发和维护,与RHEL高度兼容,因为它基于相同的源代码和二进制兼容性。Oracle Linux也提供了企业级支持服务,并且与Oracle数据库和其他Oracle产品紧密集成,提供了优化的性能和兼容性。

选择好之后,Download

三、安装过程

上传到服务器目录

解压缩,设置目录及权限

bash 复制代码
tar -xf mysql-8.4.0-linux-glibc2.17-x86_64.tar.xz

给文件夹重新命名为mysql,移动位置并重新命名

bash 复制代码
mv mysql-8.4.0-linux-glibc2.17-x86_64 /usr/local/mysq

创建mysql用户组和用户并准备MySQL数据库的存储目录

bash 复制代码
#创建一个新的用户组,命名为"mysql"

groupadd mysql

#创建一个新的用户,命名为"mysql"

useradd -r -g mysql mysql

设置MySQL数据库的存储目录及其权限

bash 复制代码
#创建目录
mkdir -p  /data/mysql        
#修改权限    
chown mysql:mysql -R /data/mysql  

chown 是 "change owner" 的缩写,用于改变文件或目录的所有者和所属组。

mysql:mysql 指定了新的所有者和所属组,这里都是 mysql。这里是将 /data/mysql 目录及其内容(如果有的话)的所有者和所属组都改为 mysql。

-R 参数表示递归地改变目录及其下所有文件和子目录的所有者和所属组。

以上命令确保了 /data/mysql 目录及其内容归 mysql 用户和组所有,这对于MySQL服务器的正常运行是必要的。

配置my.cnf文件

找到/etc/my.cnf并打开my.cnf

bash 复制代码
vim  etc/my.cnf

这里主要包括服务器的基本设置、客户端配置、性能优化、日志记录、安全设置等。

如需设置MySQL以不区分大小写,需要在此步设置

lower_case_table_names=1

其他没什么要改的。

初始化数据库

进入mysql的bin目录下

bash 复制代码
cd usr/local/mysql/bin/

初始化

bash 复制代码
./mysqld --defaults-file=/etc/my.cnf --basedir=/usr/local/mysql/ --datadir=/data/mysql/ --user=mysql --initialize

查看初始密码

bash 复制代码
cat /data/mysql/mysql.err

将mysql服务添加到/etc/init.d/mysql中

bash 复制代码
cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysql

将/usr/local/mysql/support-files/mysql.server脚本复制到/etc/init.d/mysql的目的是为了方便地管理MySQL服务的启动、停止、重启和状态检查等操作。这个脚本是MySQL提供的一个服务管理脚本,它包含了启动和停止MySQL服务所需的命令和逻辑。

启动服务

bash 复制代码
service mysql start

查询是否启动

bash 复制代码
ps -ef|grep mysql

设置mysql环境变量

bash 复制代码
vim /etc/profile

再最后面添加

bash 复制代码
export PATH=$PATH:/usr/local/mysql/bin

重启配置

bash 复制代码
source /etc/profile

source 命令是一个内建的shell命令,用于读取并执行指定文件中的命令。当你执行 source /etc/profile 命令时,你实际上是在告诉shell读取并执行 /etc/profile 文件中的命令。

检查环境,确认 MySQL 及其工具是否安装成功

bash 复制代码
whereis mysql
whereis mysqldump

配置MySQL

进入mysql

bash 复制代码
mysql -u root -p2

填写密码

输入密码时不会显示出来,填写完成点击enter

设置密码

bash 复制代码
ALTER USER 'root'@'localhost' IDENTIFIED WITH 'caching_sha2_password' BY 'root'

by后为自己设置密码

MySQL 8.0 及以后的版本默认使用 caching_sha2_password 插件作为用户认证方式。

刷新

bash 复制代码
flush privileges

配置远程连接

bash 复制代码
use mysql;
# 将 root 用户的 host 属性设置为 %,表示 root 用户可以从任何 IP 地址连接到 MySQL 服务器。
update user set host='%' where user='root';

flush privileges;

开放端口

bash 复制代码
# 查看防火墙状态
firewall-cmd --state

# 开启防火墙               
systemctl start firewalld      

# 停止防火墙        
systemctl stop firewalld.service  

# 禁止防火墙开机启动   
systemctl disable firewalld.service    

# 重启防火墙 
systemctl restart firewalld.service    

# 开放3306端口
firewall-cmd --zone=public --add-port=3306/tcp --permanent
# 开放端口之后 需要重新启动防火墙
systemctl restart firewalld.service  

# 重新加载防火墙规则

firewall-cmd --reload

本地连接测试

相关推荐
ShuQiHere3 分钟前
【ShuQiHere】 智能代理与软件机器人:引领自动化未来的技术
运维·机器人·自动化
ᴡᴀᴋᴜ⌓‿⌓ᴡᴀᴋᴜ17 分钟前
手动在Linux服务器上部署并运行SpringBoot项目(新手向)
linux·服务器·spring boot·后端
小安运维日记33 分钟前
Linux云计算 |【第四阶段】RDBMS2-DAY3
linux·运维·服务器·数据库·mysql·云计算
F_D_Z39 分钟前
【Linux】使Ubuntu自适应窗口大小并与主机共享文件
linux·运维·ubuntu
亿林网络数据1 小时前
Linux常用应急溯源命令
linux·运维·服务器
阿猿收手吧!1 小时前
【Linux复习】指令
linux·运维·服务器
Chris-zz1 小时前
Linux:进程调度算法和进程地址空间
linux·数据结构·c++·算法·哈希算法·散列表
睡觉然后上课1 小时前
IO,进程线程面试题
linux·c语言·笔记·面试
MXsoft6181 小时前
故障告警配置:运维团队的高效管理与实践
运维
飞的肖1 小时前
MobaXterm(linux)远程运维工具使用说明
linux·运维·服务器