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