Ubuntu/Debian(Raspbian)进入MySQL报错:ERROR 1698 (28000): Access denied for user 'root'@'localhost'的解决方法

本文主要是介绍Ubuntu/Debian(Raspbian)进入MySQL报错:ERROR 1698 (28000): Access denied for user 'root'@'localhost'的解决方法,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

树莓派安装MySQL未提示设置密码,之后在sudo下无需密码即可连接,其它输入报错ERROR 1698 (28000)

附:远程连接MySQL出现1130错误解决方法

# 问题场景:

在树莓派3B+,系统Raspbian(Debian9.4),安装MySQL:

 sudo apt-get install mysql-serversudo apt-get install mysql-client

安装过程中未提示设置密码。

检查进程:

sudo netstat -tap | grep mysql

显示:

tcp        0      0 localhost:mysql         0.0.0.0:*               LISTEN      1369/mysqld

说明数据库服务成功启动。

尝试登录mysql:

mysql -u root -p

报错:

ERROR 1698 (28000): Access denied for user 'root'@'localhost'

重启服务:

sudo service mysql restart

还是报错:ERROR 1698 (28000)!!!

是不是很气?

打开配置文件:

sudo vim /etc/mysql/debian.cnf

两个root账号密码竟然为空,也没有用随机值填充。

# 目前遇到的问题:

        安装mysql-server的过程没有提示输入root的password
        安装成功后,输入指令mysql -uroot,提示Access denied for user ‘root’@’localhost’
        输入sudo mysql -uroot可以直接连接成功
        输入sudo mysql -uroot -p后回车输入任意password也可以直接连接成功
        输入mysql -h 127.0.0.1 -P 3306 -uroot -p提示Access denied for user ‘root’@’localhost’

# 解决方法:

sudo mysql -u root

成功登录!

但问题彻底解决了吗?……还没有!

  • 需要给root设置password
  • 需要将用户表中plugin字段由auth_plugin设置成mysql_native_password

修改密码:

noneDataBase> use mysql;
mysql> UPDATE user SET password=PASSWORD('123456') WHERE user='root';
mysql> UPDATE user SET plugin='mysql_native_password' WHERE user='root';
mysql> FLUSH PRIVILEGES;
mysql> exit;

重启服务:

sudo systemctl restart mysqlsudo systemctl status mysql

问题已经解决(无论是否加sudo,都必须使用正确的密码,才能连接数据库)

# 如需远程连接MySQL:

sudo vim /etc/mysql/mariadb.conf.d/50-server.cnf将bind-address=127.0.0.1改成bind-address=0.0.0.0
然后:
sudo rebootvia……

对了,如果你需要完整卸载MySQL:

sudo apt-ge autoremove --purge mysql-server
sudo apt-get remove mysqyl-server
sudo apt-get remove mysql-common #重要
sudo apt-get autoremove mysql-server

Thanks Kevin_miu

# 远程连接MySQL出现1130错误解决方法:

mysql -u root -pnoneDataBase>use mysql;mysql>select 'host' from user where user='root';mysql>update user set host = '%' where user ='root';mysql>flush privileges;mysql>select 'host'   from user where user='root';

修改后即可尝试远程连接,如果不行建议:sudo systemctl restart mysql或者reboot。

这篇关于Ubuntu/Debian(Raspbian)进入MySQL报错:ERROR 1698 (28000): Access denied for user 'root'@'localhost'的解决方法的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/588544

相关文章

Java中的String.valueOf()和toString()方法区别小结

《Java中的String.valueOf()和toString()方法区别小结》字符串操作是开发者日常编程任务中不可或缺的一部分,转换为字符串是一种常见需求,其中最常见的就是String.value... 目录String.valueOf()方法方法定义方法实现使用示例使用场景toString()方法方法

Java中List的contains()方法的使用小结

《Java中List的contains()方法的使用小结》List的contains()方法用于检查列表中是否包含指定的元素,借助equals()方法进行判断,下面就来介绍Java中List的c... 目录详细展开1. 方法签名2. 工作原理3. 使用示例4. 注意事项总结结论:List 的 contain

MySQL双主搭建+keepalived高可用的实现

《MySQL双主搭建+keepalived高可用的实现》本文主要介绍了MySQL双主搭建+keepalived高可用的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,... 目录一、测试环境准备二、主从搭建1.创建复制用户2.创建复制关系3.开启复制,确认复制是否成功4.同

MyBatis 动态 SQL 优化之标签的实战与技巧(常见用法)

《MyBatis动态SQL优化之标签的实战与技巧(常见用法)》本文通过详细的示例和实际应用场景,介绍了如何有效利用这些标签来优化MyBatis配置,提升开发效率,确保SQL的高效执行和安全性,感... 目录动态SQL详解一、动态SQL的核心概念1.1 什么是动态SQL?1.2 动态SQL的优点1.3 动态S

Mysql表的简单操作(基本技能)

《Mysql表的简单操作(基本技能)》在数据库中,表的操作主要包括表的创建、查看、修改、删除等,了解如何操作这些表是数据库管理和开发的基本技能,本文给大家介绍Mysql表的简单操作,感兴趣的朋友一起看... 目录3.1 创建表 3.2 查看表结构3.3 修改表3.4 实践案例:修改表在数据库中,表的操作主要

macOS无效Launchpad图标轻松删除的4 种实用方法

《macOS无效Launchpad图标轻松删除的4种实用方法》mac中不在appstore上下载的应用经常在删除后它的图标还残留在launchpad中,并且长按图标也不会出现删除符号,下面解决这个问... 在 MACOS 上,Launchpad(也就是「启动台」)是一个便捷的 App 启动工具。但有时候,应

SpringBoot日志配置SLF4J和Logback的方法实现

《SpringBoot日志配置SLF4J和Logback的方法实现》日志记录是不可或缺的一部分,本文主要介绍了SpringBoot日志配置SLF4J和Logback的方法实现,文中通过示例代码介绍的非... 目录一、前言二、案例一:初识日志三、案例二:使用Lombok输出日志四、案例三:配置Logback一

Python实现无痛修改第三方库源码的方法详解

《Python实现无痛修改第三方库源码的方法详解》很多时候,我们下载的第三方库是不会有需求不满足的情况,但也有极少的情况,第三方库没有兼顾到需求,本文将介绍几个修改源码的操作,大家可以根据需求进行选择... 目录需求不符合模拟示例 1. 修改源文件2. 继承修改3. 猴子补丁4. 追踪局部变量需求不符合很

Spring事务中@Transactional注解不生效的原因分析与解决

《Spring事务中@Transactional注解不生效的原因分析与解决》在Spring框架中,@Transactional注解是管理数据库事务的核心方式,本文将深入分析事务自调用的底层原理,解释为... 目录1. 引言2. 事务自调用问题重现2.1 示例代码2.2 问题现象3. 为什么事务自调用会失效3

mysql出现ERROR 2003 (HY000): Can‘t connect to MySQL server on ‘localhost‘ (10061)的解决方法

《mysql出现ERROR2003(HY000):Can‘tconnecttoMySQLserveron‘localhost‘(10061)的解决方法》本文主要介绍了mysql出现... 目录前言:第一步:第二步:第三步:总结:前言:当你想通过命令窗口想打开mysql时候发现提http://www.cpp