MySQL8.0+版本1045错误的问题及解决办法

yizhihongxing

下面是完整攻略。

MySQL 8.0+版本1045错误的问题及解决办法

问题描述

在使用 MySQL 8.0+ 版本的时候,有时候会出现 1045 错误,提示无权访问 MySQL 服务器。如下图所示:

ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES)

这个问题通常是由于 MySQL 用户名或密码不正确所导致的,下面是解决这个问题的步骤。

解决方法

方法 1:检查用户名和密码

第一步,检查你的 MySQL 用户名和密码是否正确。可以使用以下命令来确认 MySQL 用户名和密码是否正确:

$ mysql -u root -p

这个命令将提示你输入密码。如果输入正确的密码,你将能够成功登录 MySQL 系统。

如果你不确定 MySQL 用户名和密码是否正确,可以尝试使用以下命令来重置 root 用户的密码:

$ mysql -u root
MariaDB> UPDATE mysql.user SET Password=PASSWORD('new-password') WHERE User='root';
MariaDB> FLUSH PRIVILEGES;

这个命令将把 root 用户的密码重置为 new-password。在输入这个命令之后,你将可以使用以下命令来登录 MySQL 系统:

$ mysql -u root -pnew-password

方法 2:检查 MySQL 服务是否启动

第二步,检查 MySQL 服务是否启动。你可以使用以下命令来检查 MySQL 服务是否正在运行:

$ sudo systemctl status mysql

如果 MySQL 服务没有启动,你可以使用以下命令来启动 MySQL 服务:

$ sudo systemctl start mysql

如果 MySQL 服务启动了但是仍然无法访问,你可以尝试重启 MySQL 服务:

$ sudo systemctl restart mysql

如果以上两种方法都无法解决问题,那么可能是 MySQL 的配置文件出了问题。你可以检查以下 MySQL 配置文件是否正确:

$ sudo vi /etc/mysql/mysql.conf.d/mysqld.cnf

在编辑这个文件之前,你应该备份该文件以防止错误。

示例说明

示例1:检查用户名和密码

假设你正在使用 MySQL root 用户登录,但是你忘记了密码,无法登录 MySQL 系统。你可以使用以下步骤来进行密码重置:

  1. 停止 MySQL 服务:sudo systemctl stop mysql
  2. 启动 MySQL 不带验证:sudo mysqld_safe --skip-grant-tables &
  3. 连接 MySQL:mysql -uroot
  4. 更新密码信息:UPDATE mysql.user SET authentication_string=PASSWORD('new_password') WHERE User='root'; FLUSH PRIVILEGES;
  5. 退出 MySQL,然后重启 MySQL 服务:sudo systemctl restart mysql
  6. 使用新密码登录 MySQL 系统:mysql -uroot -pnew_password

示例2:检查 MySQL 服务是否启动

假设你正在启动 MySQL 服务,但是出现错误提示,无法访问 MySQL 服务。你可以使用以下步骤来解决问题:

  1. 检查 MySQL 服务是否正在运行:sudo systemctl status mysql
  2. 如果 MySQL 服务没有启动,启动 MySQL 服务:sudo systemctl start mysql
  3. 如果 MySQL 服务已经启动,但是仍然无法访问,重启 MySQL 服务:sudo systemctl restart mysql

总结

MySQL 8.0+ 版本的 1045 错误通常是由于用户名或密码不正确,或者 MySQL 服务没有正常启动所导致的。你可以使用以上步骤来解决这个问题。如果以上步骤都无法解决这个问题,你可以检查 MySQL 配置文件是否正确。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:MySQL8.0+版本1045错误的问题及解决办法 - Python技术站

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

相关文章

  • MySQL 插入或更新

    数据操纵语言DML(Data Manipulation Language),用户通过它可以实现对数据库的基本操作。记录一些遇到的语法,以便随时查阅。 插入或更新 ON DUPLICATE KEY UPDATE 执行插入或更新 语法 <插入语句> ON DUPLICATE KEY UPDATE <更新语句>; 先执行插入语句,如果发生重…

    MySQL 2023年4月12日
    00
  • mysql 事务隔离级别之可能出现的问题:同一事务中无法查询已插入但未提交的数据

    若要实现查询事务中已插入但是未提交的数据则需要设置MySQL事务隔离级别为 read-uncommitted 下面了解一下MySQL的事务隔离级别: 一、事务的基本要素(ACID)   1、原子性(Atomicity):事务开始后所有操作,要么全部做完,要么全部不做,不可能停滞在中间环节。事务执行过程中出错,会回滚到事务开始前的状态,所有的操作就像没有发生一…

    MySQL 2023年4月13日
    00
  • MySQL 压缩的使用场景和解决方案

    MySQL 压缩的使用场景和解决方案 压缩的使用场景 MySQL 压缩的使用场景一般是数据量过大,导致对于磁盘空间的占用过多,对数据库的备份和恢复也变得困难。此时可以选择使用 MySQL 压缩的功能来缩小数据的空间占用,提高数据库的备份和恢复效率。 解决方案 MySQL 内置了多种压缩的方式,可以通过以下方法进行压缩: 1. 使用 MyISAM 表 MyIS…

    MySQL 2023年5月19日
    00
  • mysql 恢复数据时中文乱码

    mysql恢复数据时中文乱码,解决办法。 用source命令导入mysql数据库怎么设置中文编码 1.导出数据时指定编码在导出mysql sql执行文件的时候,指定一下编码格式: mysqldump -uroot -p –default-character-set=utf8 mo(dbname) > E://xxxx.sql 2.导入数据时指定编码 …

    MySQL 2023年4月12日
    00
  • 详解MySQL BETWEEN AND:范围查询

    MySQL BETWEEN AND 是一种用于范围查询的操作符,它可以帮助我们方便地查询某个数值或日期在某个范围内的记录。 它的语法如下: SELECT * FROM table_name WHERE column_name BETWEEN value1 AND value2; 其中, table_name 是我们要查询的表名。 column_name 是我…

    MySQL 2023年3月9日
    00
  • 解决mysql与navicat建立连接出现1251错误

    MySQL与Navicat建立连接可能会出现1251错误,这是由于MySQL服务器的字符集与Navicat客户端字符集不匹配所导致的。要解决这个问题,需要进行以下的操作。 1. 确认服务器字符集 首先确认MySQL服务器的字符集,可以通过以下的SQL语句查询该信息: show variables like ‘character_set_server’; 查询…

    MySQL 2023年5月18日
    00
  • mysql中json_remove函数的使用?

    需求描述:   今天看json记录,可以通过json_remove函数对一个key或多个key从个json记录中去掉. 操作过程: 1.查看一个已经存在的json表 mysql> select * from tab_json; +—-+———————————————————…

    MySQL 2023年4月13日
    00
  • 浅谈Mysql多表连接查询的执行细节

    浅谈MySQL多表连接查询的执行细节 概述 在MySQL中,多表连接查询是非常常见的操作,其能够更加高效地获取需要的数据,同时也方便了开发者的编写。然而,多表连接查询的执行细节是什么呢?在这篇文章中,我们将一步步深入浅出地剖析MySQL多表连接查询的各个细节。 基础知识 在进行多表连接查询之前,我们需要了解MySQL中一些基础知识,包括: 表的类型:MySQ…

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