1. 下载并安装 MySQL Yum 仓库
从 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
2. 启用 MySQL 8.0 仓库
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
3. 安装 MySQL Server
sudo yum install mysql-server
4. 启动 MySQL 服务
sudo systemctl start mysqld
5. 检查 MySQL 服务状态
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
…
6. 设置 MySQL 开机自启
sudo systemctl enable mysqld
7. 获取初始临时密码
在首次启动 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! 就是你的初始临时密码。
如果提示目录不存在之类的,点击跳转查看
点击跳转至目标位置
8. 登录 MySQL 并修改密码
使用初始临时密码登录 MySQL。
mysql -u root -p
输入临时密码后,你会进入 MySQL 命令行界面。接下来,你需要修改 root 用户的密码
-- 修改root用户密码,这里将密码设置为YourNewPassword,你可以根据需要修改
ALTER USER 'root'@'localhost' IDENTIFIED BY 'YourNewPassword';
-- 刷新权限
FLUSH PRIVILEGES;
开放mysql远程链接
1. 登录 MySQL
mysql -u root -p
输入密码后回车,即可进入 MySQL 命令行界面。
2. 创建允许远程访问的用户(可选)
如果你想使用特定的用户进行远程连接,可以创建一个新用户并赋予相应的权限。以下是创建用户并授予所有数据库权限的示例:
-- 创建一个名为 '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 地址或域名。
3. 修改 MySQL 配置文件
编辑 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保存退出
4. 重启 MySQL 服务
sudo systemctl restart mysqld
5. 配置防火墙
如果你使用的是 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
6. 验证远程连接
使用navicat可以测试连接
跳过权限验证重置密码
1. 停止 MySQL 服务
sudo systemctl stop mysqld
2. 以跳过权限验证的方式启动 MySQL
由于 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,需要根据实际情况修改。
3. 重新加载 systemd 配置并启动 MySQL 服务
sudo systemctl daemon-reload
sudo systemctl start mysqld
4. 无需密码登录 MySQL
mysql -u root
5. 修改 root 用户密码
-- 刷新权限表
FLUSH PRIVILEGES;
-- 修改密码
ALTER USER 'root'@'localhost' IDENTIFIED BY 'YourNewPassword';
-- 再次刷新权限
FLUSH PRIVILEGES;
6. 恢复正常启动配置
删除或注释掉 /etc/systemd/system/mysqld.service.d/override.conf 中的内容,然后重新加载配置并重启 MySQL 服务。
sudo systemctl daemon-reload
sudo systemctl restart mysqld
回到修改密码