• 企业400电话
  • 微网小程序
  • AI电话机器人
  • 电商代运营
  • 全 部 栏 目

    企业400电话 网络优化推广 AI电话机器人 呼叫中心 网站建设 商标✡知产 微网小程序 电商运营 彩铃•短信 增值拓展业务
    Linux下mysql的root密码修改方法

    前言

    在服务部署在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

    总结

    以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作能带来一定的帮助,如果有疑问大家可以留言交流,谢谢大家对脚本之家的支持。

    您可能感兴趣的文章:
    • mysql 8.0.16 winx64及Linux修改root用户密码 的方法
    • 详解如何在Linux中重置MySQL或者MariaDB的root密码
    • 详解如何在Linux(CentOS)下重置MySQL根(Root)密码
    • 在Linux环境下mysql的root密码忘记解决方法(三种)
    • linux系统中重置mysql的root密码
    • 如何在Linux下修改Mysql的用户(root)密码
    • Linux MySQL忘记root密码解决方案
    上一篇:MySQL利用profile分析慢sql详解(group left join效率高于子查询)
    下一篇:Centos 6.5下安装MySQL 5.6教程
  • 相关文章
  • 

    © 2016-2020 巨人网络通讯 版权所有

    《增值电信业务经营许可证》 苏ICP备15040257号-8

    Linux下mysql的root密码修改方法 Linux,下,mysql,的,root,密码,