作者✍️提示:如果你是全新环境,可先执行
dnf makecache
构建本地缓存
使用以下命令查看是否有 MySQL 相关包:
dnf search mysql-server
如果显示有 mysql-server
等包,说明已经支持
sudo dnf install -y mysql-server
等待安装完成后,启动MySQL服务:
sudo systemctl start mysqld
设置开机自启:
sudo systemctl enable mysqld
查看服务状态:
systemctl status mysqld
作者✍️提示:如果出现 “Active: active (running)” 则说明安装成功
sudo systemctl stop mysqld
sudo mysqld --skip-grant-tables --skip-networking --user=mysql &
☑️ 注意:此命令将在前台运行,终端会被占用。建议 开另一个终端窗口或使用 SSH 登录新会话 继续后续操作。
在另一个终端输入:
mysql -u root
进入 MySQL shell 后执行:
FLUSH PRIVILEGES;
ALTER USER 'root'@'localhost' IDENTIFIED BY 'openEuler&2025';
FLUSH PRIVILEGES;
EXIT;
或者某些 MySQL 8 版本需要用下面的语法:
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'NewSecurePwd8!';
完成后输入:
EXIT;
回到原终端,按 Ctrl + C
停止前台 mysqld_safe
,然后:
sudo systemctl start mysqld
现在你可以正常使用新密码登录:
mysql -u root -p
ERROR 1410 (42000): You are not allowed to create a user with GRANT
mysql -u root
mysql
系统库USE mysql;
SELECT Host, User FROM user WHERE User = 'root';
你应该会看到:
+-----------+------+
| Host | User |
+-----------+------+
| localhost | root |
+-----------+------+
%
UPDATE user SET Host='%' WHERE User='root' AND Host='localhost';
FLUSH PRIVILEGES;
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' WITH GRANT OPTION;
FLUSH PRIVILEGES;
SELECT Host, User FROM user WHERE User = 'root';
应该输出:
+------+------+
| Host | User |
+------+------+
| % | root |
+------+------+
CREATE USER 'devadmin'@'%' IDENTIFIED BY 'StrongDev#2025';
GRANT ALL PRIVILEGES ON *.* TO 'devadmin'@'%' WITH GRANT OPTION;
如果需让外网或同网段的服务器连接MySQL,需打开3306端口:
firewall-cmd --permanent --add-port=3306/tcp
firewall-cmd --reload
mysql -u root -p
输入新密码后即可进入MySQL管理界面
作者✍️提示:可使用
SHOW DATABASES;
查看数据库列表,或创建新数据库、用户
/etc/my.cnf
:[mysqld]
bind-address=0.0.0.0
systemctl restart mysqld
CREATE USER 'admin'@'%' IDENTIFIED BY 'yourpassword';
GRANT ALL PRIVILEGES ON *.* TO 'admin'@'%' WITH GRANT OPTION;
FLUSH PRIVILEGES;
作者✍️提示:生产环境不建议接受全网段连接,请配合防火墙或VPN系统保障
通过上述步骤,你已经成功在OpenEuler系统上安装并启用MySQL,同时可选配置防火墙和远程连接。