服务器内核环境:Alibaba Cloud Linux 3.2104 LTS 64位
一、将系统已有的软件包列表和软件更新到最新版本。
sudo dnf update -y
二、需要安装compat-openssl10以兼容旧版OpenSSL
if [ -f /etc/os-release ]; then
. /etc/os-release
if [ "$ID" = "alinux" ] && [ "$VERSION_ID" = "3" ]; then
sudo yum install -y compat-openssl10
fi
fi
三、添加MySQL 8.4的YUM仓库
sudo rpm -Uvh https://repo.mysql.com/mysql84-community-release-el8-1.noarch.rpm
四、安装MySQL服务
sudo dnf install -y mysql-server
五、启动并设置开机自启
sudo systemctl enable --now mysqld
六、设置安全加固。
- MySQL默认配置存在安全风险(如允许匿名登录、允许root远程登录),需运行其自带的安全加固脚本。
- 获取初始root密码。
- 仅适用于Alibaba Cloud Linux/CentOS(Ubuntu默认使用免密登录),获取的密码用于后续步骤重置密码。
# 从日志中提取并显示临时密码(我重新设置为了:Y1B2Y05#pjt4&*) sudo grep 'temporary password' /var/log/mysqld.log - 运行加固脚本。
- 执行命令 sudo mysql_secure_installation,并根据提示完成以下建议配置:
- 重置root账号密码:使用上一步获取的临时密码登录并设置新密码。
- 建议设置一个包含大小写字母、数字和特殊符号,且长度不低于12位的强密码。
- 移除匿名用户:输入Y。
- 禁止root远程登录:输入Y。
- 删除测试库:输入 Y。
- 重载权限表:输入 Y
七、使用mysql的root账号登陆mysql控制台,创建一个专门开发的账号webuser
- 创建数据库和用户,使用root账户登录MySQL(输入步骤三中设置的root账号密码)。
sudo mysql -u root -p - 在 mysql>提示符下执行以下命令,创建名为 webapp 的库和 webuser 用户,并授予其对该数据库的所有权限。
CREATE DATABASE webapp; # 将<YourPassword>替换为一个强密码。 CREATE USER 'webuser'@'localhost' IDENTIFIED BY '<YourPassword>'; GRANT ALL PRIVILEGES ON webapp.* TO 'webuser'@'localhost'; FLUSH PRIVILEGES; EXIT;
扩展
添加远程访问MySQL用户
执行命令创建用户并设置其可以远程访问MySQL所有数据库。
- 请将代码中的
替换为创建MySQL用户时所用的用户名。 - 请将代码中的
替换为创建MySQL用户时所用的密码。需遵循以下密码策略:密码必须包含至少一个大写字母、一个小写字母、一个数字和一个特殊字符,且总长度不少于8个字符。 sudo mysql -uroot -p \ -e "CREATE USER '<username>'@'%' IDENTIFIED BY '<password>';" \ -e "GRANT ALL PRIVILEGES ON *.* TO '<username>'@'%' WITH GRANT OPTION;" \ -e "FLUSH PRIVILEGES;"
测试所配置的用户名及密码是否生效。
#<username>是您新创建用户的用户名,执行后需要输入您的新用户密码
sudo mysql -u<username> -p