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

回到修改密码

相关推荐
刘一说2 分钟前
CentOS 系统 Java 开发测试环境搭建手册
java·linux·运维·服务器·centos
wdxylb6 小时前
云原生俱乐部-shell知识点归纳(1)
linux·云原生
飞雪20077 小时前
Alibaba Cloud Linux 3 在 Apple M 芯片 Mac 的 VMware Fusion 上部署的完整密码重置教程(二)
linux·macos·阿里云·vmware·虚拟机·aliyun·alibaba cloud
路溪非溪7 小时前
关于Linux内核中头文件问题相关总结
linux
Lovyk9 小时前
Linux 正则表达式
linux·运维
Fireworkitte10 小时前
Ubuntu、CentOS、AlmaLinux 9.5的 rc.local实现 开机启动
linux·ubuntu·centos
sword devil90011 小时前
ubuntu常见问题汇总
linux·ubuntu
ac.char11 小时前
在CentOS系统中查询已删除但仍占用磁盘空间的文件
linux·运维·centos
淮北也生橘1213 小时前
Linux的ALSA音频框架学习笔记
linux·笔记·学习
华强笔记16 小时前
Linux内存管理系统性总结
linux·运维·网络