centos linux安装mysql8 重置密码 远程连接

1. 下载并安装 MySQL Yum 仓库

从 MySQL 官方网站下载并安装 Yum 仓库配置文件。

java 复制代码
# 下载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 仓库。

java 复制代码
# 查看可用的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

java 复制代码
sudo yum install mysql-server

4. 启动 MySQL 服务

java 复制代码
sudo systemctl start mysqld

5. 检查 MySQL 服务状态

java 复制代码
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 开机自启

java 复制代码
sudo systemctl enable mysqld

7. 获取初始临时密码

在首次启动 MySQL 时,系统会生成一个临时密码,你需要使用该密码登录 MySQL 并进行后续配置。

java 复制代码
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。

java 复制代码
mysql -u root -p

输入临时密码后,你会进入 MySQL 命令行界面。接下来,你需要修改 root 用户的密码

java 复制代码
-- 修改root用户密码,这里将密码设置为YourNewPassword,你可以根据需要修改
ALTER USER 'root'@'localhost' IDENTIFIED BY 'YourNewPassword';
-- 刷新权限
FLUSH PRIVILEGES;

开放mysql远程链接

1. 登录 MySQL

java 复制代码
mysql -u root -p

输入密码后回车,即可进入 MySQL 命令行界面。

2. 创建允许远程访问的用户(可选)

如果你想使用特定的用户进行远程连接,可以创建一个新用户并赋予相应的权限。以下是创建用户并授予所有数据库权限的示例:

java 复制代码
-- 创建一个名为 '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 目录下。

java 复制代码
sudo vi /etc/my.cnf

找到 bind-address 这一行(如果打开没有bind相关 可以自己插入下面代码),将其修改为允许远程连接的 IP 地址。如果你想允许所有 IP 地址连接,可以将其注释掉或设置为 0.0.0.0:

java 复制代码
#bind-address = 127.0.0.1
bind-address = 0.0.0.0

!qw保存退出

4. 重启 MySQL 服务

java 复制代码
sudo systemctl restart mysqld

5. 配置防火墙

如果你使用的是 firewalld,可以使用以下命令开放端口:

java 复制代码
sudo firewall-cmd --permanent --add-port=3306/tcp
sudo firewall-cmd --reload

如果你使用的是 iptables,可以使用以下命令开放端口:

java 复制代码
sudo iptables -A INPUT -p tcp --dport 3306 -j ACCEPT
sudo service iptables save

6. 验证远程连接

使用navicat可以测试连接

跳过权限验证重置密码

1. 停止 MySQL 服务

java 复制代码
sudo systemctl stop mysqld

2. 以跳过权限验证的方式启动 MySQL

由于 mysqld_safe 在 MySQL 8 中已被弃用,我们可以通过修改 systemd 配置来实现。

java 复制代码
sudo mkdir -p /etc/systemd/system/mysqld.service.d
sudo vi /etc/systemd/system/mysqld.service.d/override.conf

在打开的文件中添加以下内容:

java 复制代码
[Service]
ExecStart=
ExecStart=/usr/sbin/mysqld --skip-grant-tables --skip-networking

注意:如果 mysqld 的实际路径不是 /usr/sbin/mysqld,需要根据实际情况修改。

3. 重新加载 systemd 配置并启动 MySQL 服务

java 复制代码
sudo systemctl daemon-reload
sudo systemctl start mysqld

4. 无需密码登录 MySQL

java 复制代码
mysql -u root

5. 修改 root 用户密码

java 复制代码
-- 刷新权限表
FLUSH PRIVILEGES;
-- 修改密码
ALTER USER 'root'@'localhost' IDENTIFIED BY 'YourNewPassword';
-- 再次刷新权限
FLUSH PRIVILEGES;

6. 恢复正常启动配置

删除或注释掉 /etc/systemd/system/mysqld.service.d/override.conf 中的内容,然后重新加载配置并重启 MySQL 服务。

java 复制代码
sudo systemctl daemon-reload
sudo systemctl restart mysqld

回到修改密码

相关推荐
Dirschs10 分钟前
【Ubuntu22.04安装ROS Noetic】
linux·ubuntu·ros
qianshanxue1116 分钟前
ubuntu 操作记录
linux
AmosTian3 小时前
【系统与工具】Linux——Linux简介、安装、简单使用
linux·运维·服务器
这我可不懂5 小时前
Python 项目快速部署到 Linux 服务器基础教程
linux·服务器·python
车车不吃香菇6 小时前
java idea 本地debug linux服务
java·linux·intellij-idea
tan77º6 小时前
【Linux网络编程】Socket - TCP
linux·网络·c++·tcp/ip
kfepiza7 小时前
Linux的`if test`和`if [ ]中括号`的取反语法比较 笔记250709
linux·服务器·笔记·bash
CodeWithMe7 小时前
【Note】《深入理解Linux内核》 第十九章:深入理解 Linux 进程通信机制
linux·运维·php
vvw&8 小时前
Linux 中的 .bashrc 是什么?配置详解
linux·运维·服务器·chrome·后端·ubuntu·centos
tao3556679 小时前
树莓派免密登录(vs code/cursor)
linux·嵌入式硬件·ssh