OpenEuler安装Java + Mysql环境
JDK安装
sudo dnf install -y java-1.8.0-openjdk java-1.8.0-openjdk-devel
#查看版本
java -version
javac -version

Mysql安装
方案一:Mysql官方源安装(不推荐,装在OpenEuler上可能有问题)
# 添加 MySQL 官方仓库, Mysql官方版本会有各种各样的问题
sudo dnf install -y https://repo.mysql.com/mysql80-community-release-el8-3.noarch.rpm
#查看可用仓库
dnf repolist all | grep mysql
#安装 MySQL
sudo dnf install -y mysql-community-server
设置
#启动并设置开机自启
sudo systemctl enable --now mysqld
sudo systemctl status mysqld
#获取初始 root 密码
sudo grep 'temporary password' /var/log/mysqld.log
#初始化安全设置
sudo mysql_secure_installation
#1.输入临时密码
#2.修改 root 密码
#3.移除匿名用户
#4.禁止远程 root 登录(可选)
#5.删除测试数据库
#6.刷新权限
#登录 MySQL
mysql -u root -p
#创建用户
CREATE USER 'USERNAME'@'%' IDENTIFIED BY '你的密码';
GRANT ALL PRIVILEGES ON *.* TO 'USERNAME'@'%' WITH GRANT OPTION;
FLUSH PRIVILEGES;
#防火墙放行
sudo firewall-cmd --permanent --add-port=3306/tcp
sudo firewall-cmd --reload
# 重启
sudo systemctl restart mysqld
# 停止
sudo systemctl stop mysqld
# 状态
sudo systemctl status mysqld
修改密码检查策略
# 查看当前策略
SHOW VARIABLES LIKE 'validate_password%';
# 改成 LOW(只要求长度 >= 8),默认的MEDIUM要求密码有特殊符号
SET GLOBAL validate_password.policy=LOW;
SET GLOBAL validate_password.length=8;
修改端口
#编辑 MySQL 主配置文件
sudo vi /etc/my.cnf
#在 [mysqld] 下加入
[mysqld]
port=3315
bind-address=0.0.0.0
#重启
sudo systemctl restart mysqld
sudo ss -lntp | grep 3315
#放行端口
sudo firewall-cmd --permanent --add-port=3315/tcp
sudo firewall-cmd --reload
#验证
sudo firewall-cmd --list-ports
#测试远程连接
mysql -h 服务器IP -P 3315 -u root -p
#允许 root 远程访问
CREATE USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY '你的密码';
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' WITH GRANT OPTION;
FLUSH PRIVILEGES;
#修改远程root密码
ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY '你的密码';
FLUSH PRIVILEGES;
#为某个业务用户(更推荐)
CREATE USER 'user'@'%' IDENTIFIED BY '你的密码';
GRANT ALL PRIVILEGES ON *.* TO 'user'@'%' WITH GRANT OPTION;
FLUSH PRIVILEGES;
#如果报错查看日志
sudo cat /var/log/mysqld.log
遇到的问题
3315无法启动,Permission denied
原因:3315 端口要么被占用,要么被 SELinux 拦住。openEuler 默认 SELinux = enforcing,非常严格。当你把 MySQL 端口改成 3315 时,SELinux 会直接挡住。

#查看3315是不是被占用
sudo ss -lntp | grep 3315
#关闭SELinux
sudo setenforce 0 # 临时关闭
sudo vi /etc/selinux/config # 永久关闭
#添加如下内容
SELINUX=disabled
安装时GPG KEY老旧

sudo rpm --import https://repo.mysql.com/RPM-GPG-KEY-mysql-2023
方案二:使用dnf源安装(推荐)
# 彻底删除官方版的Mysql(必须干净卸载)
sudo systemctl stop mysqld
sudo systemctl disable mysqld
#卸载服务
sudo dnf remove -y mysql* mariadb*
#删除所有数据库残留数据目录
sudo rm -rf /var/lib/mysql
sudo rm -rf /var/lib/mysql_files
sudo rm -rf /var/log/mysql*
sudo rm -rf /var/log/mysqld.log
#清理所有 MySQL 配置文件
sudo rm -rf /etc/my.cnf
sudo rm -rf /etc/my.cnf.d
sudo rm -rf /etc/mysql
#删除 Systemd 服务文件
sudo rm -rf /usr/lib/systemd/system/mysqld.service
sudo rm -rf /usr/lib/systemd/system/mysql.service
sudo systemctl daemon-reload
# 安装 openEuler 官方仓库的 MySQL(已经针对 openEuler 完美适配)
sudo dnf install -y mysql-server
#没有密码,直接进入
mysql -u root
#创建用户
CREATE USER 'USERNAME'@'%' IDENTIFIED BY '你的密码';
GRANT ALL PRIVILEGES ON *.* TO 'USERNAME'@'%' WITH GRANT OPTION;
FLUSH PRIVILEGES;
mysql配置文件
#主配置文件
cat /etc/my.cnf
#内容如下
# This 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
[mysqld]
# include all files from the config directory
!includedir /etc/my.cnf.d
修改主配置文件内容
#备份配置文件
sudo cp /etc/my.cnf /etc/my.cnf.backup.$(date +%F_%H%M%S)
#一键写入
sudo tee /etc/my.cnf > /dev/null <<'EOF'
# This 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
[mysqld]
port = 3315
bind-address = 0.0.0.0
character-set-server = utf8mb4
collation-server = utf8mb4_general_ci
# include all files from the config directory
!includedir /etc/my.cnf.d
EOF
#重启生效
sudo systemctl restart mysqld
sudo systemctl status mysqld

子配置文件(为了配置模块化)

导入数据库
mysql
use DBNAME;
source /home/autumn/DBNAME-structure-20251119_1535.sql

数据库表名的坑
[mysqld]
#忽略表名大小写
lower_case_table_names=1
#重启
systemctl restart mysqld
MySQL 不允许在已有数据的情况下直接修改这个参数,所以如果配置文件添加了lower_case_table_names这个参数则会无法启动,且报错不说明原因.

如果这篇文章对你有用,可以关注本人微信公众号获取更多ヽ(^ω^)ノ ~


浙公网安备 33010602011771号