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

回到修改密码

相关推荐
AmosTian1 小时前
【系统与工具】Linux——Linux简介、安装、简单使用
linux·运维·服务器
这我可不懂4 小时前
Python 项目快速部署到 Linux 服务器基础教程
linux·服务器·python
车车不吃香菇4 小时前
java idea 本地debug linux服务
java·linux·intellij-idea
tan77º5 小时前
【Linux网络编程】Socket - TCP
linux·网络·c++·tcp/ip
kfepiza5 小时前
Linux的`if test`和`if [ ]中括号`的取反语法比较 笔记250709
linux·服务器·笔记·bash
CodeWithMe6 小时前
【Note】《深入理解Linux内核》 第十九章:深入理解 Linux 进程通信机制
linux·运维·php
vvw&7 小时前
Linux 中的 .bashrc 是什么?配置详解
linux·运维·服务器·chrome·后端·ubuntu·centos
tao3556678 小时前
树莓派免密登录(vs code/cursor)
linux·嵌入式硬件·ssh
是阿建吖!8 小时前
【Linux | 网络】socket编程 - 使用UDP实现服务端向客户端提供简单的服务
linux·网络·udp
Clownseven8 小时前
SFTP服务器搭建实战:腾讯云 Linux 上的快速安全文件传输方案
linux·服务器·腾讯云