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
相关推荐
琥珀色糖2 小时前
Linux守护进程
linux·终端·守护进程·会话·进程组
泡干脆面就番茄5 小时前
MySQL_子查询_分页查询与联合查询详解
数据库·mysql
开心大爆炸6 小时前
xrdp 连接 登录对话框输入密码后闪退
linux·运维·服务器
oushaojun26 小时前
大厂 C++ 面试:深度剖析 Linux Signal 信号机制(转)
linux
天若有情6737 小时前
Node+MySQL小型全栈笔记项目实战课程分享
数据库·笔记·mysql
苏生Susheng7 小时前
【软件实施】Linux系统Shell脚本教程
linux·运维·服务器·chrome·spring boot·学习·实施
Ruiery7 小时前
Linux 6.6内核 IOMMU 深度解析(七):DMA API 与 IOMMU 集成 — 从 dma_map_single 到 iommu_map
linux·运维·服务器
分支预测失败7 小时前
RISC-V AIA 中断架构实战:从 PLIC 到 APLIC 与 IMSIC 的迁移
linux·后端
GeW8 小时前
RHCE学习拿证计划:锁定核心考点,实现备考效率最大化
linux
snow@li8 小时前
服务器运维:Alibaba Cloud Linux 4 LTS 64位 根目录全景深度解析文章
linux·运维·服务器