Linux下mysql的root密码修改方法

作者:daisy 时间:2024-01-13 17:39:44 

前言

在服务部署在mysql上应该有好几个月了,因为现在的工作基本都在终端,因此很少登陆,今天要修改个东西,忽然发现我竟然已经彻底忘记了mysql的密码,去代码里面爬终于找到了业务数据库的密码,但是root密码还是没有找到,权限没法改呀,于是开始爬坑之旅,估计以后还会遇到,就整理记录一下。需要的朋友们一起来看看吧。

系统参数

服务器


$ cat /proc/version
Linux version 4.8.3-x86_64-linode76 (maker@build) (gcc version 4.7.2 (Debian 4.7.2-5) ) #1 SMP Thu Oct 20 19:05:39 EDT 2016
$ lsb_release -a
No LSB modules are available.
Distributor ID: Ubuntu
Description: Ubuntu 16.04.1 LTS
Release: 16.04
Codename: xenial

mysql


mysql> show variables like "%version%";
+-------------------------+-------------------------+
| Variable_name  | Value   |
+-------------------------+-------------------------+
| innodb_version  | 5.7.16   |
| protocol_version | 10   |
| slave_type_conversions |    |
| tls_version  | TLSv1,TLSv1.1  |
| version   | 5.7.16-0ubuntu0.16.04.1 |
| version_comment  | (Ubuntu)  |
| version_compile_machine | x86_64   |
| version_compile_os | Linux   |
+-------------------------+-------------------------+

解决方案

以安全模式启动mysql,可以直接以root身份登录,然后重设密码。下面是具体步骤

停掉在运行的MySQL服务:


sudo service mysql stop

以安全模式启动mysql:


sudo mysqld_safe --skip-grant-tables --skip-networking &

直接用root登录,无需密码:


mysql -u root

重设密码:


mysql> use mysql;
mysql> update user set authentication_string=password('password') where user='root';
mysql> flush privileges;

退出mysql


mysql > quit

重启mysql


sudo service mysql restart

密码登录:


mysql -u root -p

异常处理

修改密码报错,提示ERROR 1054 (42S22)

在修改密码的时候,网上比较多的文档都是提示输入一下命令修改:


mysql> update user set password=PASSWORD("password") where User='root';

结果使用这个命令的时候报错:


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

原因是从mysql 5.7开始,password字段被替换为了authentication_string,可以使用下面的命令来修改


update user set authentication_string=password('password') where user='root';

修改密码后登录mysql失败,提示ERROR 2002 (HY000)

在修改密码并重启以后,登录mysql的时候竟然登录不了,提示


ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (2)

搜索以后反馈是因为我安装了多个版本的mysql,顺序执行下面的命令即可解决。

查看运行的mysql


ps -A|grep mysql

kill运行的mysql


sudo pkill mysql

查看运行的mysqld


ps -A|grep mysqld

kill运行的mysqld


sudo pkill mysqld

重启mysql


service mysql restart

登录mysql


mysql -u root -p

来源:http://blog.bihe0832.com/mysql-modify-root.html

标签:linux,mysql,root密码
0
投稿

猜你喜欢

  • 浅谈python元素如何去重,去重后如何保持原来元素的顺序不变

    2023-03-07 19:39:32
  • JS中的算法与数据结构之集合(Set)实例详解

    2024-04-16 09:28:34
  • Python如何安装第三方模块

    2023-08-01 12:50:07
  • PyTorch学习笔记之回归实战

    2023-09-17 10:26:19
  • MySQL的常用命令集锦

    2024-01-16 00:40:44
  • 总结用Pdb库调试Python的方式及常用的命令

    2023-03-11 02:09:53
  • PyTorch简单手写数字识别的实现过程

    2021-07-12 17:17:52
  • 如何编写TOP10之类的排行榜?

    2009-11-07 18:45:00
  • mysql中group by与having合用注意事项分享

    2024-01-15 02:24:55
  • oracle chm帮助文件下载

    2010-07-16 12:49:00
  • MHA实现mysql主从数据库手动切换的方法

    2024-01-25 22:36:23
  • 正则表达式学习笔记

    2008-04-15 07:44:00
  • python 输入字符串生成所有有效的IP地址(LeetCode 93号题)

    2022-09-06 00:16:57
  • Python SQLAlchemy入门教程(基本用法)

    2022-10-05 04:08:55
  • python数据类型_元组、字典常用操作方法(介绍)

    2021-06-22 14:06:05
  • Django实现文章详情页面跳转代码实例

    2023-08-29 05:41:47
  • SQL SERVER日志进行收缩的图文教程

    2024-01-27 13:09:16
  • 基于Express框架使用POST传递Form数据

    2024-06-05 09:52:26
  • Python方差特征过滤的实例分析

    2021-08-11 01:12:56
  • python基础之面对对象基础类和对象的概念

    2021-08-16 03:26:33
  • asp之家 网络编程 m.aspxhome.com