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

yizhihongxing

针对 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日

相关文章

  • 第06章 索引的数据结构

    1. 为什么使用索引 索引是存储引擎用于快速找到数据记录的一种数据结构,就好比一本教科书的目录部分,通过目录中找到对应文章的页码,便可快速定位到需要的文章。MySQL中也是一样的道理,进行数据查找时,首先查看查询条件是否命中某条索引,符合则通过索引查找相关数据,如果不符合则需要全表扫描,即需要一条一条地查找记录,直到找到与条件符合的记录。 如上图所示,数据库…

    MySQL 2023年4月17日
    00
  • mysql按日期做曲线图统计,如果当天没有数据则日期不全、补全日期

    侵删。不足之处请谅解。 工作中遇到的问题:   不会就百度,多百度几次总会有自己需要的。比如这个曲线统计,我也是借用了博客里的各位大大,然后按照自己项目需求做的,页面给前端怼数据去就行,下面是步骤 1,用户统计曲线图,如果其中某一天没有数据,曲线图的日期链接不起来,如图:     我的解决方法:靠百度。首先生成某个范围的日历表数据,再通过这个日历表连接查询需…

    MySQL 2023年4月13日
    00
  • MySQL无法读表错误的解决方法(MySQL 1018 error)

    MySQL无法读表错误指的是在使用MySQL时,查询或操作某个表时出现异常,无法正常进行操作。这个错误通常会伴随着一个error code: 1018。 这个错误通常有多种原因,包括权限问题、表的损坏等等。下面我们将详细讲解MySQL无法读表错误的解决方法。 1. 确认权限问题 首先,我们要确认一下是否是权限问题导致的错误。在MySQL中,如果当前用户没有足…

    MySQL 2023年5月18日
    00
  • Excel文件 利用MySQL/Python 实现自动处理数据的功能

    在没有服务器存储数据,只有excel文件的情况下,如何利用SQL和python实现数据分析和数据自动处理的功能?尤其在excel处理数据特别麻烦或者数据量很大的时候,可以考虑使用下面的方法。 目录 问题描述: 解决方案: 一、SQL查询 二、SQL、python处理 三、python处理 四、优化python处理 1.手动执行代码 2.开机自动执行代码 对比…

    MySQL 2023年4月11日
    00
  • mysql server 5.5连接不上的解决方法

    针对“mysql server 5.5连接不上”的问题,我们可以通过以下步骤来解决: 1.检查MySQL服务是否正常启动 在出现连接问题之前,我们需要先确认MySQL服务是否正常启动。可以通过以下步骤来检查: 在Windows系统中,我们可以通过“服务管理器”来检查服务是否启动。具体步骤如下: 通过快捷键Win+R打开运行窗口,输入services.msc,…

    MySQL 2023年5月18日
    00
  • 将mysql转换到oracle必须了解的50件事

    “将mysql转换到oracle必须了解的50件事”是一篇非常有用的技术文章,它主要讲述了如何将MySQL数据库转换到Oracle数据库的过程中需要了解的50件事情。以下是详细的攻略: 1. 确定需要转换的MySQL数据库的版本和Oracle数据库的版本 在进行转换之前,必须确定需要转换的MySQL数据库的版本和Oracle数据库的版本,以此为基础进行后续工…

    MySQL 2023年5月19日
    00
  • 原来MySQL 数据类型也可以优化

    我会详细讲解如何优化MySQL数据类型,具体步骤如下: 1. 检查表结构 要优化MySQL数据类型,首先需要检查表结构。在MySQL中,表结构最好是规范的,每个字段的数据类型都应该是适当的,并根据实际数据量而定。 2. 选择正确的数据类型 选择正确的数据类型是优化MySQL的重要步骤。以下是一些常见的数据类型,以及一些适合的使用场景: INT:用于存储数字,…

    MySQL 2023年5月19日
    00
  • mysqldump数据库备份参数详解

    mysqldump数据库备份参数详解 1. 概述 mysqldump 是 MySQL 内置的备份工具,可以将 MySQL 数据库或表以 SQL 方式导出,对于大多数 Web 应用程序来说,是非常实用的工具。 mysqldump 支持多种参数,这些参数用于控制备份数据的方式、备份数据的范围以及导出的格式等等。本文将深入讲解 MySQL 数据库备份的参数,并结合…

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