在Rocky Linux 9.4上安装MySQL 8的步骤可以分为以下几个部分:
一、系统准备
1. 更新系统软件包(可选但推荐):
这个命令的目的是更新系统上已安装的软件包到最新版本。为了减少风险,建议在执行
dnf upgrade --refresh -y
之前备份重要数据,并在测试环境中测试更新。
sudo dnf upgrade --refresh -y
这条命令用于升级系统软件包,确保你的系统环境是最新的,这有助于提高安装MySQL的稳定性和安全性。
二、安装MySQL
Rocky Linux 9.4可以从默认的软件库中获取MySQL 8,也可以使用MySQL官网提供的RPM包进行安装。以下是两种方法的详细说明:
方法一:从默认软件库安装
a. 安装MySQL服务器及其依赖项:
sudo dnf install mysql-server
这条命令会安装MySQL服务器以及它所需的所有依赖项。
b. 启动MySQL服务:
sudo systemctl start mysqld
使用systemctl命令启动MySQL服务。
c. 设置MySQL服务开机自启:
sudo systemctl enable mysqld
这条命令确保MySQL服务在系统启动时自动启动。
方法二:从MySQL官网下载RPM包安装
如果你需要从MySQL官网下载特定版本的RPM包(如MySQL 8.0.37),可以按照以下步骤操作:
a. 下载MySQL RPM包:
访问MySQL官网的下载页面(MySQL :: Download MySQL Community Server),选择适合Rocky Linux 9.4的RPM包版本下载。例如,下载mysql-8.0.37-1.el9.x86_64.rpm-bundle.tar。
b. 解压RPM包
使用tar命令解压下载的RPM包:
tar -xvf mysql-8.0.37-1.el9.x86_64.rpm-bundle.tar
c. 安装MySQL RPM包
按照依赖关系顺序安装RPM包。通常的安装顺序是:
sudo rpm -ivh mysql-community-common-8.0.37-1.el9.x86_64.rpm
sudo rpm -ivh mysql-community-client-plugins-8.0.37-1.el9.x86_64.rpm
sudo rpm -ivh mysql-community-libs-8.0.37-1.el9.x86_64.rpm
sudo rpm -ivh mysql-community-client-8.0.37-1.el9.x86_64.rpm
sudo rpm -ivh mysql-community-icu-data-files-8.0.37-1.el9.x86_64.rpm
sudo rpm -ivh mysql-community-server-8.0.37-1.el9.x86_64.rpm
注意:如果在安装mysql-community-server时遇到依赖问题,如缺少perl,可以使用dnf install perl来安装缺失的依赖。
安装过程中可能提示缺少依赖,执行以下命令安装:
dnf install libtirpc net-tools
说明:
安装时提示:mariadb-connector-c-config is obsoleted by mysql-community-server-8.0.37-1.el9.x86_64 处理 mariadb-connector-c-config 被废弃的警告。
这个警告表明你尝试安装的 MySQL 版本与系统中可能已安装的 MariaDB 连接器 C 的配置工具不兼容。这通常不会阻止 MySQL 的安装,但如果你之前安装了 MariaDB 并希望迁移到 MySQL,你可能需要卸载 MariaDB 相关的包。
使用以下命令查找并卸载 MariaDB 相关的包:
查找mariadb:rpm -qa | grep mariadb
卸载:sudo dnf remove mariadb* 或者sudo yum remove mariadb*
然后再重新执行安装
dnf install mysql-community-server
d. 启动MySQL服务
sudo systemctl start mysqld
e. 设置MySQL服务开机自启
sudo systemctl enable mysqld
三、初始化MySQL
安装完成后,需要初始化MySQL并设置root密码。MySQL的初始化过程会自动创建root用户的临时密码,你可以通过查看MySQL日志文件(如/var/log/mysqld.log)来获取这个临时密码。
说明:对于MySQL 5.7及之前版本,通常需要手动执行初始化命令。但是,从MySQL 5.7.6开始,mysqld 会在首次启动时自动初始化数据目录(如果数据目录为空)。在Rocky Linux 9.4中,很可能你安装的MySQL版本已经包含了这一自动初始化的功能。
1. 查看临时密码:
sudo grep 'temporary password' /var/log/mysqld.log
2. 登录MySQL:
使用root用户和临时密码登录MySQL
mysql -uroot -p
3. 修改root密码:
登录后,使用ALTER USER命令修改root密码,例如:
ALTER USER 'root'@'localhost' IDENTIFIED BY '你的密码';
4. 更改root连接权限
use mysql; # 使用mysql登录。
update user set host='%' where user = 'root'; # 修改root账户可以链接使用。
flush privileges;
# exit; 退出mysql,现在就可以通过连接工具登录root账户进行远程连接了
# 注意:如果是远程连接,请将'localhost'换成'%'
ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY '你的密码';
flush privileges;
#说明
'%' - 所有情况都能访问
‘localhost’ - 本机才能访问
’111.222.33.44‘ - 指定 ip 才能访问
5. 给用户授予权限
grant all on 数据库名.数据库表 to 用户名@'%' identified by "密码";
备注:
all 可以替换为 select,delete,update,create,drop #授予某种权限,all就是所有权限。
数据库名 所有的 用*
数据库表 所有的 用*
6. 创建用户及授权
# 登陆MySQL
mysql -u root -p
# 创建用户
CREATE USER 'newuser'@'%' IDENTIFIED BY 'newpassword';
# 授权所有库的查询
GRANT SELECT ON *.* TO 'newuser'@'%';
# 授权 对所有数据库的所有权限
GRANT ALL PRIVILEGES ON *.* TO 'newuser'@'%' WITH GRANT OPTION;
# 授权特定的数据库的查询权限
GRANT SELECT ON your_database_name.* TO 'newuser'@'%';
#授权特定的表增删改查的权限
GRANT INSERT, UPDATE, DELETE, SELECT ON your_database_name.your_table_name TO 'newuser'@'%';
# 授予所有数据库表的增删改查权限:对所有数据库表的增删改查权限,但不包括删除数据库的权限。
GRANT SELECT, INSERT, UPDATE, DELETE ON *.* TO 'mysql01'@'%';
# 然后 ,需要明确地撤销该用户对数据库的 DROP 权限,以确保他们不能删除数据库:
REVOKE DROP ON *.* FROM 'mysql01'@'%';
# 刷新权限
FLUSH PRIVILEGES;
7. 安全配置(可选):
为了增加MySQL的安全性,建议运行mysql_secure_installation脚本,该脚本会引导你完成一系列的安全设置,如删除匿名用户、禁止root远程登录等。
通过以上步骤,你可以在Rocky Linux 9.4上成功安装并配置MySQL 8。