从 MySQL 官方网站下载并安装 Yum 仓库配置文件。
# 下载MySQL 8.0的Yum仓库包
wget https://dev.mysql.com/get/mysql80-community-release-el7-5.noarch.rpm
# 安装Yum仓库包
sudo rpm -ivh mysql80-community-release-el7-5.noarch.rpm
Yum 仓库可能启用了其他版本的 MySQL,你需要确保启用的是 MySQL 8.0 仓库。
# 查看可用的MySQL仓库列表
yum repolist all | grep mysql
# 禁用MySQL 5.7仓库(如果已启用)
sudo yum-config-manager --disable mysql57-community
# 启用MySQL 8.0仓库
sudo yum-config-manager --enable mysql80-community
sudo yum install mysql-server
sudo systemctl start mysqld
sudo systemctl status mysqld
如果服务正在运行,你会看到类似如下输出:
● mysqld.service - MySQL Server
Loaded: loaded (/usr/lib/systemd/system/mysqld.service; enabled; vendor preset: disabled)
Active: active (running) since Tue 2025-03-11 14:20:30 CST; 1min 30s ago
…
sudo systemctl enable mysqld
在首次启动 MySQL 时,系统会生成一个临时密码,你需要使用该密码登录 MySQL 并进行后续配置。
sudo grep 'temporary password' /var/log/mysqld.log
输出类似如下内容:
2025-03-11T06:20:30.123456Z 6 [Note] [MY-010454] [Server] A temporary password is generated for root@localhost: AbcDef123!
其中 AbcDef123! 就是你的初始临时密码。
如果提示目录不存在之类的,点击跳转查看
点击跳转至目标位置
使用初始临时密码登录 MySQL。
mysql -u root -p
输入临时密码后,你会进入 MySQL 命令行界面。接下来,你需要修改 root 用户的密码
-- 修改root用户密码,这里将密码设置为YourNewPassword,你可以根据需要修改
ALTER USER 'root'@'localhost' IDENTIFIED BY 'YourNewPassword';
-- 刷新权限
FLUSH PRIVILEGES;
mysql -u root -p
输入密码后回车,即可进入 MySQL 命令行界面。
如果你想使用特定的用户进行远程连接,可以创建一个新用户并赋予相应的权限。以下是创建用户并授予所有数据库权限的示例:
-- 创建一个名为 'remote_user' 的用户,密码为 'your_password',允许从任何主机连接
CREATE USER 'remote_user'@'%' IDENTIFIED BY 'your_password';
-- 授予该用户对所有数据库的所有权限
GRANT ALL PRIVILEGES ON *.* TO 'remote_user'@'%' WITH GRANT OPTION;
-- 刷新权限使更改生效
FLUSH PRIVILEGES;
其中,‘%’ 表示允许从任何主机连接。如果你想限制连接的主机,可以将 ‘%’ 替换为具体的 IP 地址或域名。
编辑 MySQL 的配置文件 my.cnf 或 my.ini,通常位于 /etc 目录下。
sudo vi /etc/my.cnf
找到 bind-address 这一行(如果打开没有bind相关 可以自己插入下面代码),将其修改为允许远程连接的 IP 地址。如果你想允许所有 IP 地址连接,可以将其注释掉或设置为 0.0.0.0:
#bind-address = 127.0.0.1
bind-address = 0.0.0.0
!qw保存退出
sudo systemctl restart mysqld
如果你使用的是 firewalld,可以使用以下命令开放端口:
sudo firewall-cmd --permanent --add-port=3306/tcp
sudo firewall-cmd --reload
如果你使用的是 iptables,可以使用以下命令开放端口:
sudo iptables -A INPUT -p tcp --dport 3306 -j ACCEPT
sudo service iptables save
使用navicat可以测试连接
sudo systemctl stop mysqld
由于 mysqld_safe 在 MySQL 8 中已被弃用,我们可以通过修改 systemd 配置来实现。
sudo mkdir -p /etc/systemd/system/mysqld.service.d
sudo vi /etc/systemd/system/mysqld.service.d/override.conf
在打开的文件中添加以下内容:
[Service]
ExecStart=
ExecStart=/usr/sbin/mysqld --skip-grant-tables --skip-networking
注意:如果 mysqld 的实际路径不是 /usr/sbin/mysqld,需要根据实际情况修改。
sudo systemctl daemon-reload
sudo systemctl start mysqld
mysql -u root
-- 刷新权限表
FLUSH PRIVILEGES;
-- 修改密码
ALTER USER 'root'@'localhost' IDENTIFIED BY 'YourNewPassword';
-- 再次刷新权限
FLUSH PRIVILEGES;
删除或注释掉 /etc/systemd/system/mysqld.service.d/override.conf 中的内容,然后重新加载配置并重启 MySQL 服务。
sudo systemctl daemon-reload
sudo systemctl restart mysqld
回到修改密码