解决mysql ERROR 1045 (28000)– Access denied for user问题

针对 mysql ERROR 1045 (28000)-- Access denied for user 的问题,通常有以下三种解决办法:

1. 修改或重置 root 密码

步骤1:停止 MySQL 服务

在命令行输入以下命令停止 MySQL 服务:

sudo systemctl stop mysql

步骤2:使用 -skip-grant-tables 参数重新启动 MySQL

重新启动 MySQL 服务,并使用 -skip-grant-tables 参数跳过权限校验:

sudo mysqld_safe --skip-grant-tables &

步骤3:以 root 身份登录 MySQL

以 root 用户身份重新登录 MySQL:

mysql -u root

步骤4:修改 root 密码

使用如下命令修改 root 用户密码:

USE mysql;
UPDATE user SET authentication_string=PASSWORD('mynewpassword') WHERE User='root';
FLUSH PRIVILEGES;

其中 mynewpassword 是你要设置的新密码,改完密码后执行 FLUSH PRIVILEGES 语句,刷新权限表。

步骤5:重新启动 MySQL

终止现有的 MySQL 实例以及跳过授权验证实例,然后重新启动 MySQL:

sudo systemctl stop mysql
sudo systemctl start mysql

示例1:修改 root 用户的密码

例如,我们需要将 root 用户的密码修改为 123456:

USE mysql;
UPDATE user SET authentication_string=PASSWORD('123456') WHERE User='root';
FLUSH PRIVILEGES;

2. 创建新的 MySQL 用户

步骤1:以 root 用户身份登录 MySQL

以 root 用户身份登录 MySQL:

mysql -u root -p

步骤2:创建新用户

使用以下命令创建新的 MySQL 用户:

CREATE USER 'user1'@'localhost' IDENTIFIED BY 'password1';

其中,user1 是新建用户的名称,localhost 是被授权的主机名,可以替换为其他 IP 地址或者 host 名称。password1 是新建用户的密码。

步骤3:授权用户访问 MySQL

使用以下命令为新建用户授权 MySQL 访问权限:

GRANT ALL PRIVILEGES ON *.* TO 'user1'@'localhost' WITH GRANT OPTION;

这条语句将允许 user1 用户从 localhost 访问 MySQL 所有的数据库和表,并且允许它将它的权限授予其他 MySQL 用户。

步骤4:刷新权限表

执行以下命令,以使权限更改生效:

FLUSH PRIVILEGES;

示例2:创建新的 MySQL 用户

例如,我们需要创建一个名为 user2,密码为 123456 的新用户:

CREATE USER 'user2'@'localhost' IDENTIFIED BY '123456';
GRANT ALL PRIVILEGES ON *.* TO 'user2'@'localhost' WITH GRANT OPTION;
FLUSH PRIVILEGES;

3. 检查 MySQL 数据库和表的权限设置

步骤1:以 root 用户身份登录 MySQL

以 root 用户身份登录 MySQL:

mysql -u root -p

步骤2:检查原数据库和表的权限

使用 show grants 命令查看目前的 MySQL 数据库和表的权限设置:

SHOW GRANTS FOR 'user'@'localhost';

这个命令将显示 user 用户当前所拥有的所有 MySQL 数据库和表的权限。

步骤3:授权用户访问 MySQL

可以使用以下命令为用户赋予 MySQL 访问权限:

GRANT ALL ON database_name.* TO 'user'@'localhost';

其中,database_name 表示数据库名称,user 表示用户名,localhost 表示主机名。这个命令将允许 user 用户访问指定的数据库和表。

步骤4:刷新权限表

执行以下命令,以使权限更改生效:

FLUSH PRIVILEGES;

示例3:查看 user 用户的权限

例如,我们查看一下 user 用户目前所拥有的 MySQL 数据库和表的权限:

SHOW GRANTS FOR 'user'@'localhost';

该命令将输出如下信息:

+---------------------------------------------------------+
| Grants for user@localhost                               |
+---------------------------------------------------------+
| GRANT USAGE ON *.* TO 'user'@'localhost'                |
| GRANT ALL PRIVILEGES ON `db_test`.* TO 'user'@'localhost' |
+---------------------------------------------------------+

我们可以看到,user 用户只拥有对 db_test 数据库的全部权限,对于其他数据库和表,它只有使用权限。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:解决mysql ERROR 1045 (28000)– Access denied for user问题 - Python技术站

(0)
上一篇 2023年5月18日
下一篇 2023年5月18日

相关文章

  • MySQL5.7主从复制教程

    ​ 简述:主从复制,是用来建立一个和主数据库完全一样的数据库环境,称为从数据库,主数据库一般是准实时的 业务数据库、事务处理库,从库做查询库。 ​ 复制过程简单的说就是 master 将数据库的改变写入二进制日志,slave同步这些二进制日志,并根据这些二进制日志行数据操作 1、什么是主从复制 ​ 主从复制,是用来建立一个和主数据库完全一样的数据库环境,称为…

    MySQL 2023年4月11日
    00
  • MySQL快速对比数据技巧

    下面是MySQL快速对比数据技巧的完整攻略。 1. 背景 在实际的应用场景中,经常会需要比较两个数据库表中的数据,用以确认两个表中的数据是否一致。然而,大表数据的情况下,手动比对是一项非常耗时耗力的工作。因此,本文将分享一些MySQL快速对比数据的技巧,以便高效地完成这个比对过程。 2. 比对技巧 以下是本文介绍的几个MySQL快速对比数据的技巧: 2.1 …

    MySQL 2023年5月19日
    00
  • 概述MySQL统计信息

    概述MySQL统计信息 MySQL统计信息是MySQL中的一个功能,它可以为MySQL数据库提供各种性能统计信息。通过这些统计信息,开发人员可以更好地了解系统的性能表现,并进行调整和优化。 MySQL统计信息的类型 MySQL提供了三种统计信息类型,分别为: 全局统计信息:全局统计信息指整个MySQL系统的各种状态。在MySQL中,通过SHOW GLOBAL…

    MySQL 2023年5月18日
    00
  • MySQL数据库迁移OpenGauss数据库解析

    MySQL数据库迁移OpenGauss数据库解析 背景 MySQL 是最流行的开源关系型数据库,近年来随着万物互联的发展,数据量和并发量快速增长,对数据库的性能和可靠性提出了更高的要求。相比之下,国产的 OpenGauss 数据库不仅具有MySQL的众多优点,而且在性能、可扩展性、数据安全性等方面发挥着突出的优势。本文主要讲解如何将MySQL数据库迁移至Op…

    MySQL 2023年5月18日
    00
  • mysql存储过程之错误处理实例详解

    MySQL存储过程之错误处理实例详解 什么是存储过程? 存储过程是一组预定义SQL语句的集合,其具有名称,可接受参数,可执行并返回结果。存储过程在数据库内定义,允许您存储所有类型的SQL语句,如SELECT、INSERT、UPDATE、DELETE等。存储过程可访问数据库中的所有数据表,可被其他程序或用户调用执行。 为什么要使用存储过程? 提高性能。 存储过…

    MySQL 2023年5月18日
    00
  • mysql中异常错误ERROR:2002的解决方法

    当使用MySQL客户端连接MySQL服务器时,有时会遇到ERROR 2002的异常错误,该错误表示无法连接到MySQL服务器。这种情况下,就需要通过以下步骤来解决: 1. 检查mysql服务是否启动 执行以下命令,检查mysql服务是否启动: sudo systemctl status mysql.service 如果mysql服务未启动,则需要启动它: s…

    MySQL 2023年5月18日
    00
  • MySQL Server Configuration

    ProxySQL主要是通过mysql_servers来配置MySQL servers,有时候可能会用到mysql_replication_hostgroups 备注:在读下面内容之前,确保理解multi-layer configuration system,或者看我前面的文章 注意: 更新mysql_servers 和mysql_replication_ho…

    MySQL 2023年4月13日
    00
  • 基于Kafka和Elasticsearch构建实时站内搜索功能的实践

    目前我们在构建一个多租户多产品类网站,为了让用户更好的找到他们所需要的产品,我们需要构建站内搜索功能,并且它应该是实时更新的。本文将会讨论构建这一功能的核心基础设施,以及支持此搜索能力的技术栈。 作者:京东物流 纪卓志 目前我们在构建一个多租户多产品类网站,为了让用户更好的找到他们所需要的产品,我们需要构建站内搜索功能,并且它应该是实时更新的。本文将会讨论构…

    MySQL 2023年4月10日
    00
合作推广
合作推广
分享本页
返回顶部