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
相关推荐
zylyehuo7 小时前
Linux 彻底且安全地删除文件
linux
这个DBA有点耶13 小时前
GROUP BY优化全解:如何写出既不丢数据又飞快的分组查询
数据库·mysql·架构
掉头发的王富贵16 小时前
【StarRocks】极限十分钟入门StarRocks
数据库·sql·mysql
用户8055336980320 小时前
主线 U-Boot 上 RK3506:和闭源 rkbin 拔河的三个隐性契约
linux·嵌入式
用户0340952979120 小时前
linux fcitx 5 雾凇拼音 设置在中文输入法下仍然输入英文标点
linux
SamDeepThinking21 小时前
一条UPDATE语句在MySQL 8.0中到底加了几把锁?
后端·mysql·程序员
Web3探索者3 天前
可视化服务器管理和传统命令行区别是什么?新手教程:Linux 运维到底该用图形界面还是 SSH 命令行?
linux·ssh
李白客3 天前
KES新版MySQL兼容能力再升级意味着什么?
mysql·国产数据库
zylyehuo3 天前
Linux系统中网线与USB网络共享冲突
linux