AlmaLinux 9 安装mysql8.0.38

文件下载

https://cdn.mysql.com//Downloads/MySQL-8.0/mysql-8.0.39-linux-glibc2.12-x86_64.tar

选择合适系统版本

下载后解压

shell 复制代码
tar -xvf mysql-8.0.39-linux-glibc2.12-x86_64.tar

解压后里面有三个文件夹

使用mysql-8.0.39-linux-glibc2.12-x86_64.tar.xz即可,解压mysql-8.0.39-linux-glibc2.12-x86_64.tar.xz

shell 复制代码
tar -xvf mysql-8.0.39-linux-glibc2.12-x86_64.tar.xz

改名为 mysql-8.0.39

shell 复制代码
mv mysql-8.0.39-linux-glibc2.12-x86_64 mysql-8.0.39

安装mysql

进入文件夹

shell 复制代码
cd mysql-8.0.39

配置文件

新建配置文件

shell 复制代码
sudo vim /etc/my.cnf
shell 复制代码
[mysql] 
# 设置mysql客户端默认字符集 
default-character-set=utf8  
#
socket=/home/moorgen/mysql-8.0.39/sock/mysql.sock 
#
[mysqld] 
# #skip-name-resolve 
# #设置3306端口 
port = 3306  
#
socket=/home/moorgen/mysql-8.0.39/sock/mysql.sock 
#
# # 设置mysql的安装目录 
basedir=/home/moorgen/mysql-8.0.39
#
# # 设置mysql数据库的数据的存放目录 
datadir=/home/moorgen/mysql-8.0.39/data 
#
# # 允许最大连接数 
max_connections=200 
#
# # 服务端使用的字符集默认为8比特编码的latin1字符集 
character-set-server=utf8 
#
# # 创建新表时将使用的默认存储引擎 
default-storage-engine=INNODB
#  
max_allowed_packet=16M

# 如果初始化时候设置的是1,这里必须配置是1,否则启动错误
lower_case_table_names=1

初始化mysql

shell 复制代码
./bin/mysqld --initialize --user=moorgen --basedir=/home/moorgen/mysql-8.0.39/ --datadir=/home/moorgen/mysql-8.0.39/data/ --lower-case-table-names=1

指定安装目录数据目录和表忽略大小写,记录初始密码.

设置环境变量

bash 复制代码
vim /etc/profile
bash 复制代码
export PATH=$PATH:/home/moorgen/mysql-8.0.39/bin
bash 复制代码
source /etc/profile

启动mysql

bash 复制代码
 ./support-files/mysql.server start

可能报错:

bash 复制代码
mysql: error while loading shared libraries: libtinfo.so.5: cannot open shared object file: No such file or directory

解决:

bash 复制代码
find /usr/lib* -name "libtinfo*"
sudo ln -s /usr/lib64/libtinfo.so.6 /usr/lib64/libtinfo.so.5

初始密码,设置远程账号

bash 复制代码
ALTER USER 'root'@'localhost' IDENTIFIED BY '123456';

CREATE USER 'moorgen'@'%' IDENTIFIED BY '123456';

GRANT ALL PRIVILEGES ON *.* TO 'moorgen'@'%' WITH GRANT OPTION;

FLUSH PRIVILEGES;

添加自启动

bash 复制代码
vim /etc/systemd/system/mysql.service
  • /etc/systemd/system/ 是推荐的位置,但你也可以在以下目录下放置自启动服务文件:
  • /lib/systemd/system/:通常用于系统级服务文件,系统软件包安装的服务通常放在这里。一般不建议手动添加或修改。
  • /usr/lib/systemd/system/:与 /lib/systemd/system/ 类似,主要用于由发行版提供的服务。

内容

bash 复制代码
[Unit]
Description=Moorgen mysql service
After=network-online.target remote-fs.target nss-lookup.target
Wants=network-online.target

[Service]
User=moorgen
Group=moorgen
Type=forking
ExecStart=/home/moorgen/mysql-8.0.39/support-files/mysql.server start
ExecReload=/home/moorgen/mysql-8.0.39/support-files/mysql.server restart
ExecStop=/home/moorgen/mysql-8.0.39/support-files/mysql.server stop
KillSignal=SIGQUIT
TimeoutStopSec=5
KillMode=process
PrivateTmp=true

[Install]
WantedBy=multi-user.target

常用命令

bash 复制代码
systemctl daemon-reload  
systemctl enable mysql.service
systemctl status mysql.service (查看服务)
systemctl stop mysql.service   (停止服务)
systemctl start mysql.service (启动服务)
systemctl status mysql.service (查看服务)

systemctl start mysql.service 执行时候报错:

mysql.service: Failed at step EXEC spawning /home/moorgen/mysql-8.0.39/support-files/mysql.server: Permission denied!

SELinux 设置(如果启用): 如果你的系统启用了 SELinux,可能需要设置 SELinux 上下文,以允许该文件执行。可以临时禁用 SELinux 进行测试:

bash 复制代码
sudo setenforce 0

解决方案:

1.配置合适的 SELinux 策略,这个可能比较麻烦,没有做详细研究;

2.永久设置 SELinux 为宽松模式

bash 复制代码
vim /etc/selinux/config
shell 复制代码
SELINUX=permissive

设置防火墙

bash 复制代码
firewall-cmd --list-ports

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

firewall-cmd --reload
相关推荐
Escalating_xu9 分钟前
【Linux 网络编程】网络命令加餐:用 ping、netstat、watch 和 pidof 排查服务问题
linux·运维·网络
mounter62517 分钟前
现代 Linux 内核在异构内存与硬件演进下的架构变革:压缩 RAM、CXL 与分布式内存
linux·linux kernel·kernel
cccccc语言我来了1 小时前
Linux (11) 进程控制
linux·运维·数据库
菜菜的院子1 小时前
WSL2 运行 Ubuntu 26.04 完整 GNOME 桌面(WSLg Wayland)
linux·运维·ubuntu·wsl
猫咪很可爱1 小时前
MySQL 定时 DDL 导致 mysqldump 备份失败:场景模拟、排查与优化建议
mysql
暖核1 小时前
从 CentOS 到 Ubuntu24.04 运维迁移手册:命令对照表 + 实操 + 避坑
linux·运维·centos
pride.li1 小时前
第12章 Python 教程-流程控制:循环结构
linux·服务器·python·算法
迷途之人不知返1 小时前
【基础IO】-5-简单理解三个标准流——stdin、stdout、stderr
linux
牛马鸡niumasi1 小时前
【Linux】进程退出
linux
数据库小学妹2 小时前
MySQL内存占用过高怎么排查?分层定位与OOM根因
数据库·经验分享·mysql·内存·oom