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
相关推荐
王琦03188 分钟前
Linux的文件管理
linux·运维·服务器
Android系统攻城狮17 分钟前
Linux PipeWire深度解析之pw_stream_new调用流程与实战(四十二)
linux·运维·服务器·音频进阶·pipewire音频进阶
蜉蝣fuyou21 分钟前
VMware多版本安装包
linux·vmware·虚拟机
不会代码的小猴21 分钟前
Linux note2
linux·笔记
雾里0不看花35 分钟前
【App Service Linux】在Linux App Service中安装 tcpdump 并抓取网络包
linux·网络·tcpdump
xxwl5851 小时前
数据库后端接口测试报告
spring boot·mysql·tomcat
xqqxqxxq2 小时前
MySQL 数据类型笔记
数据库·笔记·mysql
Dawn-bit2 小时前
Linux日志处理三剑客之基础篇:(基础正则+扩展正则)
linux·运维·服务器·正则表达式·云计算·运维开发
☆凡尘清心☆2 小时前
Linux运维故障排查速查命令清单
linux·运维·服务器
Logintern092 小时前
理解MySQL数据库的“事务与锁”
数据库·mysql