OpenEuler 24.03 安装MySQL8.0 记录
z系统安装 | openEuler文档 | openEuler社区 | v24.03_LTS_SP1系统安装 发布件 openEuler发布件包括ISO发布包、虚拟机镜像、容器镜像、嵌入式镜像和repo源。
# group is read both both by the client and the server
# use it for options that affect everything
#
[client-server]
#
# This group is read by the server
#
#
# include all files from the config directory
#
!includedir /etc/my.cnf.d
简单梳理关键步骤如下:
关闭防火墙并取消开机自启动
1.在root权限下停止防火墙。
systemctl stop firewalld
2.在root权限下关闭防火墙。
systemctl disable firewalld
修改SELINUX为disabled
在root权限下修改配置文件,(仅适用OpenEuler,其余Linux 执行第二条即可)
或执行 setenforce 0 (本次开机中有效)
sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/sysconfig/selinux
sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config
创建组和用户
1.在root权限下创建MySQL用户(组)。
groupadd mysql
useradd -g mysql mysql
2.在root权限下设置MySQL用户密码。
passwd mysql
重复输入密码(根据实际需求设置密码)。
创建数据库目录并且授权
1.在已创建的数据目录 /data 基础上,使用root权限继续创建进程所需的相关目录并授权MySQL用户(组)。
mkdir -p /data/mysql
cd /data/mysql
mkdir data tmp run log
chown -R mysql:mysql /data
安装、运行
1.配置本地yum源
dnf clean all
dnf makecache
dnf install mysql-server
查看安装后的rpm包。
rpm -qa | grep mysql-server
2.运行
启动 MySQL 服务
systemctl start mysqld
systemctl status mysqld
1.修改配置文件 (一般不建议,可忽略)
在root权限下创建my.cnf文件,其中文件路径(包括软件安装路径basedir、数据路径datadir等)根据实际情况修改。
vi /etc/my.cnf
2.在root权限下修改/etc/my.cnf文件的组和用户为mysql:mysql
chown mysql:mysql /etc/my.cnf
3.在root权限下初始化数据库。
mysqld --initialize查看打印信息,打印信息中包括“initializing of server has completed”表示初始化数据库完成,且打印信息中“A temporary password is generated for root@localhost: iNat=)V2tZu”的“iNat=)V2tZu”为初始密码
4.初始化mysql安全配置
mysql_secure_installation
初始化安全设置有诸多设置项,看不到可以百度或问大模型;
此处注意: 如果提示 密码错误或忘记密码,如下步骤查看初始密码:
尝试搜索所有日志文件:
find /var/log -type f -exec grep -l "temporary password" {} \; 2>/dev/null找到 "mysqld.log " 路径并打开,可以找到密码
2025-06-18T18:41:18.784477Z 6 [Note] [MY-010454] [Server] A temporary password is generated for root@localhost: OVKn+7w5(8g:
使用找到的密码 【OVKn+7w5(8g:】使用以下命令登录:
mysql -u root -p输入临时密码
立即修改 root 密码
ALTER USER 'root'@'localhost' IDENTIFIED BY 'YourNewPassword!';MySQL 8.0 要求密码必须符合复杂度规则(大小写字母、数字、特殊字符)
退出 MySQL:
exit
5.设置 MySQL 开机自启:
systemctl enable mysqld
6.登录数据库验证测试
mysql -u root -p
输入密码

配置远程访问
1.在root下停用防火墙。
systemctl stop firewalldsystemctl disable firewalld
2.编辑my.cnf配置文件,添加监听地址
vim /etc/my.cnf
配置bind-address = 0.0.0.0,这会使得MySQL服务监听所有网络请求,也可配置 指定具体IP
[mysqld]
bind-address = 0.0.0.0
3.检查下mysql用户的权限
mysql -u root -p
输入密码登录后
select user,host from mysql.user;如果显示结果为:
+------------------+-----------+
| user | host |
+------------------+-----------+
| admin | localhost |
| mysql.infoschema | localhost |
| mysql.session | localhost |
| mysql.sys | localhost |
| root | localhost |
+------------------+-----------+
执行SQL 语句,修改root用户host值为 % 即:可以从任何主机登录
update user set host = '%' where user = 'root
mysql> select user,host from mysql.user; +------------------+-----------+ | user | host | +------------------+-----------+ | root | % | | admin | localhost | | mysql.infoschema | localhost | | mysql.session | localhost | | mysql.sys | localhost | +------------------+-----------+修改后复查,再执行 下列命令 重新加载授权表
FLUSH PRIVILEGES;
尝试远程访问,即可
补充内容:
启用防火墙的情况下,开放3306端口
firewall-cmd --zone=public --add-port=3306/tcp --permanent
SELinux 配置
永久禁用,则:
vim /etc/sysconfig/selinux
vim /etc/selinux/config
修改 SELINUX=disabled
亦可直接执行命令设置为Permissivesetenforce 0 # 设置为 Permissive 1 则为 EnforcingSELinux(Security-Enhanced Linux)提供了更高的安全性,限制程序只能访问它们被明确授权访问的资源,即使这些程序以root用户运行。
Enforcing(强制模式):这是最安全的模式,在这种模式下,SELinux会积极阻止任何违反其策略的行为,并记录违规行为。适用于需要最高级别安全性的生产环境。
Permissive(宽容模式):在这种模式下,SELinux不会实际阻止任何行为,但它会记录所有本应被阻止的操作。这对于调试和理解SELinux策略非常有用,也可以作为逐步过渡到Enforcing模式的一种方式。
Disabled(禁用):完全关闭SELinux。虽然这简化了管理,但也意味着失去了SELinux提供的额外安全层。通常不推荐在生产环境中这样做,除非有其他有效的安全措施来替代它。
鲲鹏昇腾开发者社区是面向全社会开放的“联接全球计算开发者,聚合华为+生态”的社区,内容涵盖鲲鹏、昇腾资源,帮助开发者快速获取所需的知识、经验、软件、工具、算力,支撑开发者易学、好用、成功,成为核心开发者。
更多推荐


所有评论(0)