zoukankan      html  css  js  c++  java
  • linux下mysql忘记root密码解决方法

    如果使用 MySQL 数据库忘记了root账号密码,可以通过调节配置文件,跳过密码的方式登数据库,

    在数据库里面修改账号密码,一般默认的账号是 root

    1、编辑 MySQL 配置文件 my.cnf

    注意: 以实际 my.cnf 配置文件路径为准

    vim /etc/my.cnf

    [mysqld]
    spik-grant-tables  #增加

    2、重启 MySQL 服务

    注意:以实际 MySQL 启动脚本路径为准

    /etc/init.d/mysqld restart

    若报错,注意观察my.cnf配置文件中的内容

    3、登陆数据库

    /usr/bin/mysql 输入如下命令:

    注意:以实际 MySQL 执行文件路径为准

    mysql> USE mysql;
    mysql> UPDATE user SET Password = password ('新密码') WHERE User = 'root' ;
    mysql> flush privileges ;
    mysql> quit

    4、删除或者注释第一步骤中添加的 spik-grant-tables

    5、重启 MySQL 服务

    /etc/init.d/mysqld restart

    6、使用新密码测试

    特殊情况:

    我这是使用源码安装的mysql,默认配置文件my.cnf(/usr/local/mysql/my.cnf)中的内容都没有配置,都是在启动文件mysqld(/etc/rc.d/init.d/mysqld)中进行配置的

    datadir=/data/mysql

    basedir=/usr/local/mysql

    若按照上述方法进操作,在my.cnf中添加"spik-grant-tables",则重启mysql时报错

    正确的解决方法:

    根据启动文件mysqld中的datadirbasedir参数相应的启用my.cnf中的选项,然后再添加"spik-grant-tables",mysql重启就不会报错,也能正常按照下面的步骤进行

    未修改前的my.cnf

    # For advice on how to change settings please see
    # http://dev.mysql.com/doc/refman/5.6/en/server-configuration-defaults.html

    [mysqld]

    # Remove leading # and set to the amount of RAM for the most important data
    # cache in MySQL. Start at 70% of total RAM for dedicated server, else 10%.
    # innodb_buffer_pool_size = 128M
    # spik-grant-tables
    # Remove leading # to turn on a very important data integrity option: logging
    # changes to the binary log between backups.
    # log_bin

    # These are commonly set, remove the # and set as required.
    # basedir = .....
    # datadir = .....
    # port =  .....
    # server_id = .....
    # socket = .....

    # Remove leading # to set options mainly useful for reporting servers.
    # The server defaults are faster for transactions and fast SELECTs.
    # Adjust sizes as needed, experiment to find the optimal values.
    # join_buffer_size = 128M
    # sort_buffer_size = 2M
    # read_rnd_buffer_size = 2M

    sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES

    修改后的my.cnf

    # For advice on how to change settings please see
    # http://dev.mysql.com/doc/refman/5.6/en/server-configuration-defaults.html

    [mysqld]

    # Remove leading # and set to the amount of RAM for the most important data
    # cache in MySQL. Start at 70% of total RAM for dedicated server, else 10%.
    # innodb_buffer_pool_size = 128M
    # spik-grant-tables
    # Remove leading # to turn on a very important data integrity option: logging
    # changes to the binary log between backups.
    # log_bin

    # These are commonly set, remove the # and set as required.
    basedir = /usr/local/mysql
    datadir = /data/mysql
    port = 3306
    # server_id = .....
    # socket = .....
    skip-grant-tables

    # Remove leading # to set options mainly useful for reporting servers.
    # The server defaults are faster for transactions and fast SELECTs.
    # Adjust sizes as needed, experiment to find the optimal values.
    # join_buffer_size = 128M
    # sort_buffer_size = 2M
    # read_rnd_buffer_size = 2M

    sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES

    然后再重启mysql,进行下面的步骤,重置密码后,再把my.cnf中的修改的那四项全部注释掉,再次重启mysql即可。

  • 相关阅读:
    alpha 冲刺 —— 十分之一
    福大软工 · 第七次作业
    福大软工 · 第八次作业(课堂实战)- 项目UML设计(团队)
    2018软工实践——团队答辩
    福大软工1816 · 第五次作业
    福大软工1816 · 第四次作业
    软工实践第四次作业--结队的第一次合作
    软工实践第二次作业--思索
    华中农业大学第五届程序设计大赛网络同步赛解题报告2(转)
    华中农业大学第五届程序设计大赛网络同步赛解题报告(转)
  • 原文地址:https://www.cnblogs.com/sanduzxcvbnm/p/6080380.html
Copyright © 2011-2022 走看看