mysql重置密码出现的一系列问题

2024-04-09 21:38

本文主要是介绍mysql重置密码出现的一系列问题,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

本人初识mysql, 输入mysql -u root -p,出现enter password,我直接点击回车,出现了如下错误提示:

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

大概一些朋友也是在网上看到过这样的错误,并且表示比较好解决,大概意思是密码错误之类的,但是那是不可能的,紧接着这个错误,噩梦开始了:会连续出现很多错误,最后还是解决了,方法都是网上找来的,如果哪里侵权了我会及时改正谢谢!
第一步:
#1.停止mysql数据库
/etc/init .d /mysqld  stop
#2.执行如下命令
mysqld_safe --user=mysql --skip-grant-tables --skip-networking &
#3.使用root登录mysql数据库
mysql -u root mysql
#4.更新root密码
mysql> UPDATE user SET Password=PASSWORD( 'newpassword' ) where USER= 'root' ;
#最新版MySQL请采用如下SQL:
mysql> UPDATE user SET authentication_string=PASSWORD( 'newpassword' ) where USER= 'root' ;
#5.刷新权限 
mysql> FLUSH PRIVILEGES;
#6.退出mysql
mysql> quit
#7.重启mysql
/etc/init .d /mysqld  restart
#8.使用root用户重新登录mysql
mysql -uroot -p 
Enter password: <输入新设的密码newpassword>

这是网上找的第一种方法,还有一种是修改etc/my.conf配置文件,但是最无奈的是我的配置文件是空的。。。相关链接文件也是,当然了我的问

题不是那么好解决的,到了第二步:跳过安全检查时出现了问题:
mysqld_safe Directory ‘/var/run/mysqld’ for UNIX socket file don’t exists
解决方法如下:   mkdir -p / var /run/mysqld
chown mysql:mysql / var /run/mysqld
/usr/bin/mysqld_safe --skip-grant-tables &
然后再开启另一个终端登录mysql,就可以跳过安全认证了。
但你以为这一切都结束了?不!在更改密码时再次报错:

ERROR 1054 (42S22): Unknown column 'password' in 'field list'

大神给的解释是:
原来是mysql数据库下已经没有password这个字段了,password字段改成了 authentication_string

所以更改语句替换为update mysql.user set authentication_string=password('root') where user='root' ;即可

当然,一切修改完之后在启动mysql时又出现了问题:

ERROR 2002 (HY000):Can't connect to local MySQL server

这个问题我的原因是之前以安全模式进入mysql结果没有关掉,结束mysql_safe相关进程就ok了,但是出现这个问题的其他原因也挺多的,我也一并贴了出来供大家参考:

方案1.
1.#ps -A|grep  mysql
显示类似:
1829 ?        00:00:00 mysqld_safe
   1876 ?        00:00:31 mysqld
2.#kill -9 1829
3.#kill -9 1876
4.#/etc/init.d/ mysql restart
5.# mysql -u root -p
他的麻烦解决了,我的还没解决!
继续找
方案2
先查看 /etc/rc.d/init.d/mysqld status 看看m y s q l 是否已经启动.
另外看看是不是权限问题.
------------------------------------------------------------------------------------
[root@localhost beinan]#chown -R mysql:mysql /var/lib/mysql
[root@localhost beinan]# /etc/init.d/mysqld start
启动 MySQL: [ 确定 ]
[root@localhost lib]# mysqladmin -uroot password '123456'
[root@localhost lib]# mysql -uroot -p
Enter password:
Welcome to the MySQL monitor. Commands end with ; or /g.
Your MySQL connection id is 3 to server version: 4.1.11

Type 'help;' or '/h' for help. Type '/c' to clear the buffe
他的也解决了,我的麻烦还在继续,依然继续寻找
方案3
问题解决了,竟然是max_connections=1000 他说太多了,然后改成500也说多,无奈删之问题解决了。
还是不行
方案4
/var/lib/mysql 所有文件权限 改成mysql.mysql
不行不行
方案5
摘要:解决不能通过 mysql .sock连接MySQL问题 这个问题主要提示是,不能通过 '/tmp/ mysql.sock'连到服务器,而php标准配置正是用过'/tmp/ mysql .sock',但是一些 mysql 安装 方法 将  mysql.sock放在/var/lib/ mysql .sock或者其他的什么地方,你可以通过修改/etc/my.cnf文件来修正它,打开文件,可以看到如下的东东:

   [mysql d] 
  socket=/var/lib/mysql .sock 
  改一下就好了,但也会引起其他的问题,如mysql 程序连不上了,再加一点: 
  [mysql ] 
  socket=/tmp/mysql .sock 
  或者还可以通过修改php.ini中的配置来使php用其他的mysql .sock来连,这个大家自己去找找
  
  或者用这样的方法:
  ln -s /var/lib/mysql /mysql .sock /tmp/mysql .sock

成功了,就是这样ln -s /var/lib/mysql /mysql .sock /tmp/mysql .sock

OK!



终于,噩梦结束了。。。其实简单来说就是跳过mysql的密码验证,然后对密码进行修改就ok了,没想到我中间会出这么多岔子。。。如果有相同经历的同学可以参照我整理的错误,可能有点乱哈,第一次弄,哪里说得不对也欢迎指正!




这篇关于mysql重置密码出现的一系列问题的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



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

相关文章

Linux下MySQL数据库定时备份脚本与Crontab配置教学

《Linux下MySQL数据库定时备份脚本与Crontab配置教学》在生产环境中,数据库是核心资产之一,定期备份数据库可以有效防止意外数据丢失,本文将分享一份MySQL定时备份脚本,并讲解如何通过cr... 目录备份脚本详解脚本功能说明授权与可执行权限使用 Crontab 定时执行编辑 Crontab添加定

Vue3绑定props默认值问题

《Vue3绑定props默认值问题》使用Vue3的defineProps配合TypeScript的interface定义props类型,并通过withDefaults设置默认值,使组件能安全访问传入的... 目录前言步骤步骤1:使用 defineProps 定义 Props步骤2:设置默认值总结前言使用T

MySQL8 密码强度评估与配置详解

《MySQL8密码强度评估与配置详解》MySQL8默认启用密码强度插件,实施MEDIUM策略(长度8、含数字/字母/特殊字符),支持动态调整与配置文件设置,推荐使用STRONG策略并定期更新密码以提... 目录一、mysql 8 密码强度评估机制1.核心插件:validate_password2.密码策略级

MySQL中On duplicate key update的实现示例

《MySQL中Onduplicatekeyupdate的实现示例》ONDUPLICATEKEYUPDATE是一种MySQL的语法,它在插入新数据时,如果遇到唯一键冲突,则会执行更新操作,而不是抛... 目录1/ ON DUPLICATE KEY UPDATE的简介2/ ON DUPLICATE KEY UP

MySQL分库分表的实践示例

《MySQL分库分表的实践示例》MySQL分库分表适用于数据量大或并发压力高的场景,核心技术包括水平/垂直分片和分库,需应对分布式事务、跨库查询等挑战,通过中间件和解决方案实现,最佳实践为合理策略、备... 目录一、分库分表的触发条件1.1 数据量阈值1.2 并发压力二、分库分表的核心技术模块2.1 水平分

Python与MySQL实现数据库实时同步的详细步骤

《Python与MySQL实现数据库实时同步的详细步骤》在日常开发中,数据同步是一项常见的需求,本篇文章将使用Python和MySQL来实现数据库实时同步,我们将围绕数据变更捕获、数据处理和数据写入这... 目录前言摘要概述:数据同步方案1. 基本思路2. mysql Binlog 简介实现步骤与代码示例1

Web服务器-Nginx-高并发问题

《Web服务器-Nginx-高并发问题》Nginx通过事件驱动、I/O多路复用和异步非阻塞技术高效处理高并发,结合动静分离和限流策略,提升性能与稳定性... 目录前言一、架构1. 原生多进程架构2. 事件驱动模型3. IO多路复用4. 异步非阻塞 I/O5. Nginx高并发配置实战二、动静分离1. 职责2

解决升级JDK报错:module java.base does not“opens java.lang.reflect“to unnamed module问题

《解决升级JDK报错:modulejava.basedoesnot“opensjava.lang.reflect“tounnamedmodule问题》SpringBoot启动错误源于Jav... 目录问题描述原因分析解决方案总结问题描述启动sprintboot时报以下错误原因分析编程异js常是由Ja

使用shardingsphere实现mysql数据库分片方式

《使用shardingsphere实现mysql数据库分片方式》本文介绍如何使用ShardingSphere-JDBC在SpringBoot中实现MySQL水平分库,涵盖分片策略、路由算法及零侵入配置... 目录一、ShardingSphere 简介1.1 对比1.2 核心概念1.3 Sharding-Sp

MySQL 表空却 ibd 文件过大的问题及解决方法

《MySQL表空却ibd文件过大的问题及解决方法》本文给大家介绍MySQL表空却ibd文件过大的问题及解决方法,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考... 目录一、问题背景:表空却 “吃满” 磁盘的怪事二、问题复现:一步步编程还原异常场景1. 准备测试源表与数据