源码网商城,靠谱的源码在线交易网站 我的订单 购物车 帮助

源码网商城

Linux下mysql的root密码修改方法

  • 时间:2022-07-30 22:35 编辑: 来源: 阅读:
  • 扫一扫,手机访问
摘要:Linux下mysql的root密码修改方法
[b]前言[/b] 在服务部署在mysql上应该有好几个月了,因为现在的工作基本都在终端,因此很少登陆,今天要修改个东西,忽然发现我竟然已经彻底忘记了mysql的密码,去代码里面爬终于找到了业务数据库的密码,但是root密码还是没有找到,权限没法改呀,于是开始爬坑之旅,估计以后还会遇到,就整理记录一下。需要的朋友们一起来看看吧。 [b]系统参数[/b] [b]服务器[/b]
 $ 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
[b]mysql[/b]
 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   |
 +-------------------------+-------------------------+
[b]解决方案[/b] 以安全模式启动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
[b]异常处理[/b] [b]修改密码报错,提示ERROR 1054 (42S22)[/b] 在修改密码的时候,网上比较多的文档都是提示输入一下命令修改:
 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';
[b]修改密码后登录mysql失败,提示ERROR 2002 (HY000)[/b] 在修改密码并重启以后,登录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
[b]总结[/b] 以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作能带来一定的帮助,如果有疑问大家可以留言交流,谢谢大家对编程素材网的支持。
  • 全部评论(0)
联系客服
客服电话:
400-000-3129
微信版

扫一扫进微信版
返回顶部