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
相关推荐
Sakuyu4346815 分钟前
sed和awk
linux
码农多耕地呗23 分钟前
VMware创建虚拟机
linux·运维·服务器
wggmrlee26 分钟前
性能压测-单机
linux
youyudexiaowangzi33 分钟前
ubuntu 1604安装组件报错
linux·运维·ubuntu
muls11 小时前
java面试宝典
java·linux·服务器·网络·算法·操作系统
Eric.Lee20211 小时前
python实现pdf转图片png
linux·python·pdf
蜡台1 小时前
Mysql 安装与配置
数据库·mysql
剑锋所指,所向披靡!1 小时前
linux的目录结构
linux·运维·服务器
我爱学习好爱好爱1 小时前
Ansible变量介绍 vars变量 inventory针对主机设置变量
linux·自动化·ansible
结衣结衣.1 小时前
【Linux】命名管道的妙用:实现进程控制与实时字符交互
linux·运维·开发语言·学习·操作系统·交互