MySql Error 1698(28000)问题的解决方法

yizhihongxing

MySQL Error 1698(28000)是指在使用MySQL命令行进行登录或创建新用户时出现的一个权限验证错误。这个错误通常发生在新的安装或升级MySQL版本之后。下面是解决这个问题的完整攻略:

1. 原因分析

在MySQL 5.7版本之后,对于每个MySQL Root账户都有了角色管理功能,新安装的MySQL 8.0版本默认启用了角色管理。因此,使用Root账户登录MySQL时需要使用sudo命令或者以管理员身份运行才行。否则,你会得到类似于下面的错误提示:

Error: ER_NOT_SUPPORTED_AUTH_MODE: Client does not support authentication protocol requested by server; consider upgrading MySQL client

2. 解决方法

方法一:修改Root账户的验证方式

第一种方法是修改root账户的验证方式,使其变为旧的验证方式。这种方法要求你有超级管理员权限,可以通过以下步骤来实现:

  1. 停止mysqld服务:
$ sudo systemctl stop mysql
  1. 启动mysqld服务,并加上--skip-grant-tables参数,这将使mysqld启动时跳过用户验证,从而允许你以root账户登录:
$ sudo mysqld_safe --skip-grant-tables&
  1. 进入mysql shell:
$ mysql -u root
  1. 将root账户的验证方式更改为mysql_native_password:
mysql> use mysql;
mysql> update user set plugin='mysql_native_password' where User='root';
mysql> flush privileges;
mysql> quit;
  1. 停止mysqld服务:
$ sudo systemctl stop mysql
  1. 启动mysqld服务,此时root账户的验证方式已经更改完成:
$ sudo systemctl start mysql

现在,你就可以使用root账户以及其密码成功登录MySQL了。

方法二:创建一个新的管理员账户

第二种方法是创建一个新的管理员账户,使用这个新账户来管理MySQL数据库。这种方法也要求你有超级管理员权限,可以通过以下步骤来实现:

  1. 使用root账户(原有的或是通过第一种方法创建的)登录MySQL,并创建一个新的管理员账户:
mysql> CREATE USER 'admin'@'localhost' IDENTIFIED BY 'password';
mysql> GRANT ALL PRIVILEGES ON *.* TO 'admin'@'localhost' WITH GRANT OPTION;
mysql> FLUSH PRIVILEGES;

这段代码中,admin是新的管理员账户名,password是密码。

  1. 退出MySQL:
mysql> quit
  1. 检查新账户是否能够成功登录MySQL:
$ mysql -u admin -p

现在,你已经成功创建一个新的管理员账户,并使用这个账户成功登录MySQL了。如果你需要进行一些管理员的操作,就可以使用这个新账户来完成了。

3. 总结

在本文中,我们讨论了MySQL Error 1698(28000)产生的原因,并提供了两种解决方法。第一种方法是修改MySQL Root账户的密码验证方式,使其变为旧的方式;第二种方法是创建一个新的管理员账户,使用这个账户来管理MySQL数据库。两种方法都需要你有超级管理员权限。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:MySql Error 1698(28000)问题的解决方法 - Python技术站

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

相关文章

  • mysql 8.0.17 winx64(附加navicat)手动配置版安装教程图解

    MySQL 8.0.17 winx64(附加Navicat)手动配置版安装教程图解 下载MySQL和Navicat 首先,我们需要从官网下载MySQL 8.0.17的安装包。在下载时,需要注意选择对应的操作系统版本,即Windows 64位。 与此同时,我们还需要下载Navicat软件,这是一款GUI数据库管理工具,可以帮助我们更方便地管理MySQL数据库。…

    MySQL 2023年5月18日
    00
  • CodeIgniter错误mysql_connect(): No such file or directory解决方法

    针对这个问题,我将给出完整的解决方案。 问题描述 在使用 CodeIgniter 进行开发时,可能会遇到以下错误: A Database Error Occurred Unable to connect to your database server using the provided settings. Filename: core/Loader.php…

    MySQL 2023年5月18日
    00
  • 解决Go语言数据库中null值的问题

    为了解决Go语言在数据库中查询null值时的问题,可以采用以下两种方法: 方法一:使用sql.NullString / sql.NullInt64结构体 在Go语言的database/sql包中,可以使用sql.NullString和sql.NullInt64结构体来处理null值的情况。使用这两个结构体可以让Go语言中的代码更加严谨和可读性更高。 例如,通…

    MySQL 2023年5月18日
    00
  • 大幅优化MySQL查询性能的奇技淫巧

    首先介绍几条优化MySQL查询性能的奇技淫巧: 1. 创建合适的索引 索引能够提高查询速度,但是不是所有的列都适合建立索引。一般建议给经常作为查询条件的列建立索引,例如主键、外键、频繁用于查询的字段等。过多的索引可能会导致写入降速,所以需要选择适当的列建立索引。 2. 优化查询语句 查询语句的优化也是提高查询性能的重要手段。例如使用JOIN语句的时候一定要注…

    MySQL 2023年5月19日
    00
  • 了解MySQL查询语句执行过程(5大组件)

    MySQL是一款流行的关系型数据库管理系统,它可以支持各种数据的管理,包括数据的增删改查。我们今天要讲解的是MySQL查询语句的执行过程,包括MySQL查询执行的5大组件。 MySQL查询执行的5大组件 连接器 连接器负责连接MySQL服务器和客户端。当客户端请求连接服务器时,连接器会进行认证和权限验证,如果通过验证,就会打开一个线程,并分配该线程一个连接标…

    MySQL 2023年5月19日
    00
  • linux下mysql提示”mysql deamon failed to start”错误的解决方法

    当我们启动mysql服务时,出现“mysql deamon failed to start”错误提示,这通常是由于下面的原因造成的: Mysql配置文件错误 Mysql服务无法启动 下面我将详细说明如何排查和解决这些问题。 排查问题 第一步是排除配置文件是否正确。 查看mysql服务的状态 service mysql status 如果服务没有运行,尝试手动…

    MySQL 2023年5月18日
    00
  • MySQL性能优化之如何高效正确的使用索引

    MySQL性能优化是数据库管理中非常重要的一环,其中索引的使用尤为关键。正确使用索引可以大大提升数据库查询效率,而错误使用则会导致性能下降甚至崩溃。 下面是高效正确使用索引的完整攻略: 1. 创建合适的索引 在使用索引之前,需要先创建索引。 MySQL支持多种索引类型,如B-Tree 索引和哈希索引等。通常情况下,B-Tree 索引是最常用的、性价比最高的一…

    MySQL 2023年5月19日
    00
  • centos7.2_x64安装mysql.tar.gz

    1.解压 tar mysql-5.6.17-linux-glibc2.5-i686.tar.gz 2.把解压好的文件移动到/usr/local/mysql 下 cp -r mysql-5.6.17-linux-glibc2.5-i686 /usr/local/mysql 3.添加系统mysql组和mysql用户:执行命令:groupadd mysql和use…

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