找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 88|回复: 3

[建站] Rocky Linux9.4 安装mysql8.4

[复制链接]
  • 打卡等级:Lv7.热心大叔
  • 打卡总天数:279
  • 打卡月天数:3
  • 打卡总奖励:8516
  • 最近打卡:2026-05-11 09:07:12

381

主题

599

回帖

1万

积分

管理员

积分
11455
发表于 2024-11-8 13:05:38 | 显示全部楼层 |阅读模式
10月15日,MySQL 8.0.40 GA,MySQL 8.4.3 LTS,MySQL 9.1.0 创新版本三版齐发。MySQL 8.0.40 / 8.4.3 都是长期支持版本,本次发版主要解决 Bug 若干,MySQL 9.1.0 创新版本会包含一些新特性,接下来我们看下详细内容。

目前大部分生产环境的 MySQL 版本仍是 5.7 或 8.0(由于 5.7 已经结束支持,建议升级到 8.0)MySQL 8.0.40


MySQL 8.4.3 LTS
MySQL 8.0.40 的大部分补丁会同步打到 8.4.3 上,这里我们着重关注一下差异点。
功能变化性能; 复制:用于跟踪二进制日志事务依赖关系的数据结构已从 Tree 更改为 ankerl::unordered_dense::map,它使用的空间减少了约 60%,因此应有助于提高依赖关系跟踪性能。(Bug #37008442)
JavaScript 程序在使用语句句柄接口的存储过程的 DML 语句中使用用户变量有时会导致在执行此类存储过程后执行任何语句时服务器意外退出。为了解决这个问题,我们现在在从语句句柄接口执行子语句后将用于存储用户变量及其值的内存重置为语句执行内存根。(Bug #36892945)

MySQL 9.1.0 InnovationMySQL 9.1.0 为创新版本,引入若干新特性,这些新特性可能会在 9.x 长期版本发布之前再次变化,并不建议用于生产环境。

一. MySQL9.0有什么新特性
  查看任何软件产品,官网一定是第一选择
这是本狗领导说过的一句话,受益匪浅。不管是文档手册也好,还是升级补丁之类,只要我们使用软件,一定要以官网为主!!
下面本狗带着小伙伴一起翻一下官网,掌握阅读官网新特性小技巧
1.打开官网找到发行说明
  https://dev.mysql.com/doc/relnotes/mysql/9.0/en/
发行说明中会包含版本清单、文档、新功能特性入口,方便查阅

2.点击MySQL 9.0 中的新增功能 通过MySQL 9.0 中的新增功能跳转对应功能清单

官网下载

老版本是否有必要升级MySQL9.0
  • 新功能需求:
    MySQL 9.0可能包含MySQL 8.0中没有的新功能,如改进的向量数据类型支持、更严格的外键约束执行等。如果你的应用或业务需要这些新功能,升级可能是必要的。
  • 性能优化:
    每个新版本通常都会带来性能上的优化,包括查询执行速度、存储引擎的改进等。如果性能是关键考量因素,升级可以带来显著的提升。
  • 安全性增强:
    新版本往往包含最新的安全补丁和增强的安全特性,这对于保护敏感数据至关重要。
  • 技术支持和维护:
    长期支持(LTS)版本会获得更长时间的技术支持和安全更新,确保你的数据库系统保持稳定和安全。
  • 生态系统的兼容性:
    随着软件生态系统的发展,一些新的工具、框架或服务可能需要较新的数据库版本才能充分利用其功能

总结: 真心没必要生级!!!大厂紧跟节奏的除外
总结
个人观点:MySQL9.0并没有什么大特性更新,没必要升级,看看热闹就好
  • 打卡等级:Lv7.热心大叔
  • 打卡总天数:279
  • 打卡月天数:3
  • 打卡总奖励:8516
  • 最近打卡:2026-05-11 09:07:12

381

主题

599

回帖

1万

积分

管理员

积分
11455
 楼主| 发表于 2024-11-8 13:29:30 | 显示全部楼层
在官网mysql.com  选中DOWNLOADS
  在最下面有社区版(community)版的下载 点击进入
选中MySQL Community Server


MySQL :: 下载 MySQL Community Server


在mysql官网下载安装包,我这里使用的是yum安装
mysql yum包下载地址: MySQL :: Download MySQL Yum Repository
在这里我选择了el9的mysql安装包(mysql84-community-release-el9-1.noarch.rpm)
因为Rocky Linux9.4的内核是el9,可以通过 uname -r 查看您操作系统的内核版本     


在mysql官网下载安装包,我这里使用的是yum安装
mysql yum包下载地址: MySQL :: Download MySQL Yum Repository
在这里我选择了el9的mysql安装包(mysql84-community-release-el9-1.noarch.rpm)
因为Rocky Linux9.4的内核是el9,可以通过 uname -r 查看您操作系统的内核版本      

点击Download 进入,复制下载链接
https://dev.mysql.com/get/mysql84-community-release-el9-1.noarch.rpm      

使用yum 在线安装 rpm
yum -y install https://dev.mysql.com/get/mysql8 ... se-el9-1.noarch.rpm

更新yum库
yum makecache

检查yum库是否安装
yum repolist enabled | grep "mysql.*-community.*"

开始安装mysql
yum install -y mysql-community-server

启动与配置mysql
开启忽略大小写(这个版本必须初始化的时候就设置,要不然后期想开启忽略大小写,就无法开启了)
/usr/sbin/mysqld --initialize --user=mysql --lower-case-table-names=1

1、启动
    systemctl start mysqld    #开启MySQL
    systemctl status mysqld   #查看MySQL状态

2、查看默认密码
    cat /var/log/mysqld.log
     
    找到password 后面带有密码

3、登录myql
mysql -uroot -p

4、第一次登录需要修改密码
ALTER USER 'root'@'localhost' IDENTIFIED BY '新密码';

5、开发远程连接权限
    use mysql;  #选择mysql数据库
    update user set host = '%' where user ='root';  #开放远程权限
    flush privileges;  #刷新立即生效
    systemctl restart mysqld   #重启MySQL
    systemctl stop firewalld   #关闭防火墙

#查版本
mysql -V
  • 打卡等级:Lv7.热心大叔
  • 打卡总天数:279
  • 打卡月天数:3
  • 打卡总奖励:8516
  • 最近打卡:2026-05-11 09:07:12

381

主题

599

回帖

1万

积分

管理员

积分
11455
 楼主| 发表于 2024-11-8 14:53:32 | 显示全部楼层
   Linux下安装mysql8的方式很多通过系统带的包管理器apt|yum|dpkg 等工具安装简单快捷,但是每种方式多多少少有些区别
还好MySQL官方提供了二进制安装包可以在Linux系统下通用。无论是基于Debian的Ubuntu系列还是Redhat系列的CentOS是可以,终于可以只用专注一种安装方式了。
ubuntu系统 执行 sudo -i 切换到root 方便操作

查看系统是否支持glibc2.28
因为安装的版本比较新需要新版glic2.28
redhat、centos系列使用以下命令
strings /lib64/libc.so.6 | grep GLIBC_2.28
有输出版本号证明支持


ebian、ubuntu系列使用以下命令
strings /lib/x86_64-linux-gnu/libc.so.6 | grep GLIBC_2.28
若是不支持需要添加 GLIBC_2.28 查看这篇教程安装

移除旧版本
如果你安装过mysql 为了防止出现奇奇怪怪问题,我们把旧版本卸载删除相关包和残留文件
redhat、centos系列使用yum命令
    # yum 查询已安装的 MySQL 相关包
    rpm -qa | grep -i mysql
    # 卸载 MySQL 相关包
    yum remove mysql-*
    # 卸载完再查询还有无相关包
    rpm -qa | grep -i mysql
debian、ubuntu系列使用apt命令
    # 卸载mysql相关
    apt-get remove --purge mysql-*
    # 清除残留
    apt-get autoremove
    apt-get autoclean

删除相关配置文件和安装目录
   rm -rf /etc/my.cnf
   rm -rf /var/lib/mysql
   rm -rf /etc/mysql


安装mysql依赖
安装mysql所需要的依赖
redhat、centos系列使用yum命令
yum install -y libaio
yum install -y ncurses-compat-libs

debian、ubuntu系列使用apt命令
apt-get install libaio1

MySQL :: 下载 MySQL Community Server

cd /usr/local/
  1. wget -P /soft https://dev.mysql.com/get/Downloads/MySQL-8.4/mysql-8.4.3-linux-glibc2.28-x86_64.tar.xz
复制代码


解压安装包

解压到 /usr/local/
tar xvf /soft/mysql-8.4.3-linux-glibc2.28-x86_64.tar.xz -C /usr/local/

解压后目录名太长改成 mysql
mv /usr/local/mysql-8.4.3-linux-glibc2.28-x86_64 /usr/local/mysql


查询系统中是否存在mysql用户
cat /etc/passwd | cut -f1 -d':' | grep -w "mysql" -c

    #创建一个新的用户组,命名为“mysql”
    groupadd mysql
    #创建一个新的用户,命名为“mysql”
    useradd -r -g mysql mysql
groupadd mysql && useradd -r -g mysql -s /bin/false mysql


    #创建目录
    mkdir -p  /usr/local/mysql         
    #赋予权限,将  /usr/local/mysql  目录及其所有子目录和文件的所有权更改为用户 mysql 和组 mysql。这里解释一下命令的各个部分          chown mysql:mysql -R /usr/local/mysql

修改权限创建目录
依次执行下面命令
# 创建数据目录,根据自己需求调整
mkdir -p /disk/mysqldata

cd /usr/local/mysql
mkdir mysql-files
mkdir log
touch log/error.log
chmod 750 mysql-files
chown mysql:mysql -R /usr/local/mysql/
chown mysql:mysql /disk/mysqldata

chmod -R 777 /var/lib/mysql

初始化mysql

#--basedir 安装目录  --datadir数据存储目录 可以按需调整 开启忽略大小写
/usr/local/mysql/bin/mysqld --initialize --user=mysql --basedir=/usr/local/mysql --datadir=/disk/mysqldata mysql --lower-case-table-names=1

查看初始化日志 root账户的初始化密码输出在日志中
#初始化日志输出到 /usr/local/mysql/log/error.log 文件中

#查看该文件
cat /usr/local/mysql/log/error.log

设置配置文件
配置文件位于 /etc/my.cnf
创建配置文件
gedit /etc/my.cnf
文件中写入以下内容(配置文件根据自己需要调整)
  1. [client]
  2. # 指定了客户端与服务器通信的套接字文件路径
  3. socket = /tmp/mysql.sock

  4. [mysqld_safe]
  5. # 错误日志的存放位置。
  6. log_error = /disk/mysqldata/error.log
  7. # 存放服务器进程 ID 的文件
  8. pid_file = /disk/mysqldata/mysqld.pid

  9. [mysql]
  10. socket = /tmp/mysql.sock

  11. [mysqld]
  12. # mysql 的运行用户 这里的用户一定要和初始化时的用户一致
  13. user = mysql
  14. # 指定 MySQL 服务监听的端口为 3306
  15. port = 3306
  16. # 指定 MySQL 的安装目录
  17. basedir = /usr/local/mysql
  18. # 指定数据文件的存储位置。
  19. datadir = /disk/mysqldata
  20. socket  = /tmp/mysql.sock
  21. # 日志目录
  22. log_error = /usr/local/mysql/log/error.log
  23. # 设置SQL 模式
  24. sql_mode='STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION'
复制代码
  • 打卡等级:Lv7.热心大叔
  • 打卡总天数:279
  • 打卡月天数:3
  • 打卡总奖励:8516
  • 最近打卡:2026-05-11 09:07:12

381

主题

599

回帖

1万

积分

管理员

积分
11455
 楼主| 发表于 2024-11-8 16:18:37 | 显示全部楼层
                    dnf repolist  
显示软件仓库

yum list | grep mysql
搜索仓库里mysysql的软件               

一、检查

先检查下有没有安装过MySql
  ps ajx | grep mysql  #检查 是否有 mysql 的进程
  ps ajx | grep mariabd  #检查 是否有 mariabd 的进程

如果有,先停掉
  systemctl stop  mysqld  #关闭进程

直接简单粗暴的吧红框的进程杀掉
kill -9  123084
每个人的进程号都不一样,注意观察,

再看是否有Mysql安装包
  rpm -qa | grep mysql

如果有,批量化删除安装包
  rpm -qa | grep mysql  | xargs  yum -y remove

看下mariadb的
  rpm -qa | grep mariadb

卸载掉
rpm -qa | grep mariadb
  #mariadb-connector-c-config-3.2.6-1.el9_0.noarch
  #mariadb-connector-c-3.2.6-1.el9_0.x86_64
  #mariadb-common-10.5.22-1.el9_2.x86_64
  #mariadb-10.5.22-1.el9_2.x86_64
rpm -e --nodeps mariadb-libs

检查是否有 配置文件
ls /etc/my.cnf

如果有,删除
rm -rf /etc/my.cnf

which mysql  #检查 是否有客户端
which mysqld  #检查 是否有服务端

rocky 9 安装mysql 8.43

在Rocky Linux 9上安装MySQL 8.43,你可以按照以下步骤操作:
    打开终端。
    导入MySQL的官方仓库GPG密钥:

sudo rpm --import https://repo.mysql.com/RPM-GPG-KEY-mysql-2023

添加MySQL仓库到你的系统仓库列表:
sudo tee /etc/yum.repos.d/mysql.repo <<EOF
[mysql-8.4-community]
name=MySQL 8.4 Community Server
baseurl=https://repo.mysql.com/yum/mysql-8.4-community/el/9/x86_64/
enabled=1
gpgcheck=1
gpgkey=file:///etc/pki/RPM-GPG-KEY-mysql-2023EOF

安装MySQL服务器:
sudo dnf install mysql-community-server


查询系统中是否存在mysql用户
cat /etc/passwd | cut -f1 -d':' | grep -w "mysql" -c

    #创建一个新的用户组,命名为“mysql”
    groupadd mysql
    #创建一个新的用户,命名为“mysql”
    useradd -r -g mysql mysql
groupadd mysql && useradd -r -g mysql -s /bin/false mysql


    #创建目录
    mkdir -p  /usr/local/mysql         
    #赋予权限,将  /usr/local/mysql  目录及其所有子目录和文件的所有权更改为用户 mysql 和组 mysql。这里解释一下命令的各个部分
chown mysql:mysql -R /usr/local/mysql

修改权限创建目录
依次执行下面命令
# 创建数据目录,根据自己需求调整
mkdir -p /disk/mysqldata

cd /usr/local/mysql
mkdir mysql-files
mkdir log
touch log/error.log
chmod 750 mysql-files
chown mysql:mysql -R /usr/local/mysql/
chown mysql:mysql /disk/mysqldata

chmod -R 777 /var/lib/mysql
初始化mysql
启动与配置mysql
开启忽略大小写(这个版本必须初始化的时候就设置,要不然后期想开启忽略大小写,就无法开启了)
/usr/sbin/mysqld --initialize --user=mysql --lower-case-table-names=1

启动MySQL服务,并设置开机自启:
sudo systemctl start mysqld
sudo systemctl enable mysqld


#查版本
mysql -V

查看状态
   systemctl status mysqld
active (running) 表示运行中

在MySQL 8.4中,安装完成后,默认会为root用户生成一个临时密码。你可以在安装日志中找到这个密码,或者使用以下命令来查看:
查找临时生成的root密码:
sudo grep 'temporary password' /var/log/mysqld.log

或者,如果你是通过mysqld --initialize命令手动初始化的数据库,也可以通过以下命令查看临时密码:
sudo cat /var/log/mysqld.log | grep 'temporary password

找到密码后,你可以使用以下命令来登录MySQL:
mysql -u root -p
然后输入临时密码即可登录。
登录后,为了安全考虑,应该立即更改root用户的密码:

在MySQL 8.0及以上版本中,您可以使用ALTER USER语句来修改用户密码。以下是修改密码的基本语法:
ALTER USER 'username'@'hostname' IDENTIFIED BY 'new_password';
请将NewPassword替换为你想要设置的新密码。注意,新密码也需要符合MySQL的密码策略。
而且由于密码策略也变化了,设置密码时需要达到一定的复杂程度才行,一般是需要大小字母、特殊字符和数字。

其中:
    username 是您想要修改密码的MySQL用户名。
    hostname 是用户的主机名部分,通常是 'localhost' 或者具体的主机名。
    new_password 是您想要为用户设置的新密码。
请确保您有足够的权限来执行这个操作,通常需要有UPDATE权限在mysql数据库中。
例如,如果您想要为在localhost主机上的myuser用户更改密码为mynewpassword,您可以执行:

启动
systemctl start mysqld
如果启动报错使用 journalctl -u mysqld.service 命令查看日志

查看状态
systemctl status mysqld
active (running) 表示运行中

停止
systemctl stop mysqld
重启
systemctl restart mysqld
设置mysql开机自启
systemctl enable mysqld
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|Discuz! X

GMT+8, 2026-5-13 19:35 , Processed in 0.067434 second(s), 23 queries .

Powered by Discuz! X5.0

© 2001-2026 Discuz! Team.

快速回复 返回顶部 返回列表