2025最新OpenEuler系统安装MySQL的详细教程
一、环境准备
- 操作系统:OpenEuler 22.03 LTS-SP2 或更新版本
- 用户权限:需要root权限
- 网络连接:确保能连接openEuler源或配好本地repo
作者✍️提示:如果你是全新环境,可先执行
dnf makecache构建本地缓存

作者✍️
猫头虎微信号:Libin9iOak
公众台:猫头虎技术团队
万粉变现经纪人:CSDNWF
文章目录
- 2025最新OpenEuler系统安装MySQL的详细教程
- 四、初始化密码和安全配置
-
- [✅ 解决方案:**重置 MySQL root 密码(兼容MySQL 8 on openEuler)**](#✅ 解决方案:重置 MySQL root 密码(兼容MySQL 8 on openEuler))
-
- [✅ 第一步:停止 mysqld 服务](#✅ 第一步:停止 mysqld 服务)
- [✅ 第二步:使用"跳过授权表"模式启动 MySQL(临时无密码)](#✅ 第二步:使用“跳过授权表”模式启动 MySQL(临时无密码))
- [✅ 第三步:无密码登录 MySQL](#✅ 第三步:无密码登录 MySQL)
- [✅ 第四步:恢复正常启动服务](#✅ 第四步:恢复正常启动服务)
- 重要‼️步骤:设置远程访问权限
-
- [✅ 1. 登录 MySQL(已登录可跳过)](#✅ 1. 登录 MySQL(已登录可跳过))
- [✅ 2. 切换到 `mysql` 系统库](#✅ 2. 切换到
mysql系统库) - [✅ 3. 查看当前 root 用户定义](#✅ 3. 查看当前 root 用户定义)
- [✅ 4. 修改 root 的 host 为 `%`](#✅ 4. 修改 root 的 host 为
%) - [✅ 5. 重新授予权限(现在是合法的)](#✅ 5. 重新授予权限(现在是合法的))
- [✅ 6. 验证](#✅ 6. 验证)
- 远程可视化工具连接看下一篇文章~
- [🔒 服务器建议(更安全做法):](#🔒 服务器建议(更安全做法):)
- 五、添加防火墙规则
- 六、进入MySQL命令行管理器
- 七、可选:配置MySQL远程连接
- 八、总结
二、查看官方源中MySQL支持情况
使用以下命令查看是否有 MySQL 相关包:
bash
dnf search mysql-server
如果显示有 mysql-server 等包,说明已经支持

三、安装MySQL
bash
sudo dnf install -y mysql-server


等待安装完成后,启动MySQL服务:
bash
sudo systemctl start mysqld

设置开机自启:
bash
sudo systemctl enable mysqld
查看服务状态:
bash
systemctl status mysqld

作者✍️提示:如果出现 "Active: active (running)" 则说明安装成功
四、初始化密码和安全配置
✅ 解决方案:重置 MySQL root 密码(兼容MySQL 8 on openEuler)
✅ 第一步:停止 mysqld 服务
bash
sudo systemctl stop mysqld
✅ 第二步:使用"跳过授权表"模式启动 MySQL(临时无密码)
bash
sudo mysqld --skip-grant-tables --skip-networking --user=mysql &
☑️ 注意:此命令将在前台运行,终端会被占用。建议 开另一个终端窗口或使用 SSH 登录新会话 继续后续操作。
✅ 第三步:无密码登录 MySQL
在另一个终端输入:
bash
mysql -u root

进入 MySQL shell 后执行:
sql
FLUSH PRIVILEGES;
ALTER USER 'root'@'localhost' IDENTIFIED BY 'openEuler&2025';
FLUSH PRIVILEGES;
EXIT;
或者某些 MySQL 8 版本需要用下面的语法:
sql
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'NewSecurePwd8!';
完成后输入:
sql
EXIT;
✅ 第四步:恢复正常启动服务
回到原终端,按 Ctrl + C 停止前台 mysqld_safe,然后:
bash
sudo systemctl start mysqld
现在你可以正常使用新密码登录:
bash
mysql -u root -p

重要‼️步骤:设置远程访问权限
ERROR 1410 (42000): You are not allowed to create a user with GRANT
✅ 1. 登录 MySQL(已登录可跳过)
bash
mysql -u root
✅ 2. 切换到 mysql 系统库
sql
USE mysql;
✅ 3. 查看当前 root 用户定义
sql
SELECT Host, User FROM user WHERE User = 'root';
你应该会看到:
+-----------+------+
| Host | User |
+-----------+------+
| localhost | root |
+-----------+------+
✅ 4. 修改 root 的 host 为 %
sql
UPDATE user SET Host='%' WHERE User='root' AND Host='localhost';
FLUSH PRIVILEGES;
✅ 5. 重新授予权限(现在是合法的)
sql
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' WITH GRANT OPTION;
FLUSH PRIVILEGES;
✅ 6. 验证
sql
SELECT Host, User FROM user WHERE User = 'root';
应该输出:
+------+------+
| Host | User |
+------+------+
| % | root |
+------+------+

远程可视化工具连接看下一篇文章~
🔒 服务器建议(更安全做法):
- 保留 root@localhost(仅供本地登录)
- 新建远程用户,而不是扩展 root 权限,例如:
sql
CREATE USER 'devadmin'@'%' IDENTIFIED BY 'StrongDev#2025';
GRANT ALL PRIVILEGES ON *.* TO 'devadmin'@'%' WITH GRANT OPTION;
五、添加防火墙规则
如果需让外网或同网段的服务器连接MySQL,需打开3306端口:
bash
firewall-cmd --permanent --add-port=3306/tcp
firewall-cmd --reload
六、进入MySQL命令行管理器
bash
mysql -u root -p
输入新密码后即可进入MySQL管理界面
作者✍️提示:可使用
SHOW DATABASES;查看数据库列表,或创建新数据库、用户
七、可选:配置MySQL远程连接
- 修改配置文件
/etc/my.cnf:
ini
[mysqld]
bind-address=0.0.0.0
- 重启MySQL服务:
bash
systemctl restart mysqld
- 授权远程用户:
sql
CREATE USER 'admin'@'%' IDENTIFIED BY 'yourpassword';
GRANT ALL PRIVILEGES ON *.* TO 'admin'@'%' WITH GRANT OPTION;
FLUSH PRIVILEGES;
作者✍️提示:生产环境不建议接受全网段连接,请配合防火墙或VPN系统保障
八、总结
通过上述步骤,你已经成功在OpenEuler系统上安装并启用MySQL,同时可选配置防火墙和远程连接。
作者✍️
猫头虎微信号:Libin9iOak
公众台:猫头虎技术团队
万粉变现经纪人:CSDNWF
