zoukankan      html  css  js  c++  java
  • mysql忘记帐号密码 解决办法

    首先关闭mysql

    使用命令行启动mysql(一般要找到mysql.ini文件)

         在windows上mysql.ini文件可以通过查看当前mysql进程参数查看到,具体方法点此

    在启动mysql命令行最后加上:  --skip-grant-tables 参数

    其他的一些方法:

    1. 向mysqld server 发送kill命令关掉mysqld server(不是 kill -9),存放进程ID的文件通常在MYSQL的数据库所在的目录中。 
    killall -TERM mysqld 
    你必须是UNIX的root用户或者是你所运行的SERVER上的同等用户,才能执行这个操作。 
    2. 使用`--skip-grant-tables' 参数来启动 mysqld。 (LINUX下/usr/bin/safe_mysqld --skip-grant-tables , windows下c:mysqlinmysqld --skip-grant-tables) 

    3. 然后无密码登录到mysqld server , 
    >use mysql 
    >update user set password=password("new_pass") where user="root"; 
    >flush privileges; 
    。你也可以这样做:`mysqladmin -h hostname -u user password 'new password''。 

    4. 载入权限表: `mysqladmin -h hostname flush-privileges' ,或者使用 SQL 命令`FLUSH PRIVILEGES'。 
    5.killall -TERM mysqld 
    6.用新密码登陆 

    亲测,绝对有用,我就是不知道mysql的管理密码,就是用这个方法把原来的密码修改成我自己要的密码
    修正一下:我在Windows下的实际操作如下 
    1.关闭正在运行的MySQL。 
    2.打开DOS窗口,转到mysqlin目录。 
    3.输入mysqld-nt --skip-grant-tables回车。如果没有出现提示信息,那就对了。 
    4.再开一个DOS窗口(因为刚才那个DOS窗口已经不能动了),转到mysqlin目录。 
    5.输入mysql回车,如果成功,将出现MySQL提示符 > 
    6. 连接权限数据库>use mysql; (>是本来就有的提示符,别忘了最后的分号) 
    6.改密码:> update user set password=password("123456") where user="root"; (别忘了最后的分号) 
    7.刷新权限(必须的步骤)>flush privileges; 
    8.退出 > q 
    9.注销系统,再进入,开MySQL,使用用户名root和刚才设置的新密码123456登陆。 

    据说可以用直接修改user表文件的方法: 
    关闭MySQL,Windows下打开Mysqldatamysql,有三个文件user.frm,user.MYD,user.MYI找个知道密码的MySQL,替换相应的这三个文件,如果user表结构没改过,一般也没人去改,替换user.MYD就可以了。 
    也可以直接编辑user.MYD,找个十六进制编辑器,UltraEdit就有这个功能。关闭MySQL,打开user.MYD。将用户名root后面的八个字符改为565491d704013245,新密码就是123456。或者将它们对应的十六进制数字,(左边那里,一个字符对应两个数字),改为 00 02 02 02 02 02 02 02,这就是空密码,在编辑器右边看到的都是星号*,看起来很象小数点。重开MySQL,输入root和你的新密码。 
    今天有点事要进mssql,因为是很久以前装的,所以忘记了sa的密码,虽然用windows身份验证就可以进,但是如果用php连接mssql时就不行了,于是google了一下,找到了解决方法. 

    用windows身份验证机制进去,然后 
    输入下列命令,执行: 
    exec sp_password null,'newpass','sa' 

    示例 
    A.无原密码的情况下更改登录密码 
    下面的示例将登录 Victoria 的密码更改为 123 
    EXEC sp_password NULL,'123','sa' 

    B.更改密码 
    下面的示例将登录 Victoria 的密码由 123 改为 456 
    EXEC sp_password '123','456' 

    另外我发现了一个问题,那就是windows和SQL Server身份验证机制有些不同 
    windows身份验证 

    服务器地址 登陆结果 
    127.0.0.1 ok 
    localhost wrong 
    . ok 

    SQL Server身份验证 

    服务器地址 登陆结果 
    127.0.0.1 ok 
    localhost wrong 
    . wrong 


    另外记录一下忘记mysql 密码的取回方法 
    如果 MySQL 正在运行, 
    首先杀之: killall -TERM mysqld(如果是windows,直接调出进程管理器,结束之) 
    以安全模式启动 MySQ: 
    /usr/bin/safe_mysqld --skip-grant-tables & 
    (windows 下 mysql安装所以盘/mysql/bin/safe_mysqld --skip-grant-tables ) 
    就可以不需要密码就进入 MySQL 了. 
    然后就是 
    >use mysql 
    >update user set password=password("new_pass") where user="root"; 
    >flush privileges; 
    重新杀 MySQL,用正常方法启动 MySQL

  • 相关阅读:
    Android开发 使用 adb logcat 显示 Android 日志
    【嵌入式开发】向开发板中烧写Linux系统-型号S3C6410
    C语言 结构体相关 函数 指针 数组
    C语言 命令行参数 函数指针 gdb调试
    C语言 指针数组 多维数组
    Ubuntu 基础操作 基础命令 热键 man手册使用 关机 重启等命令使用
    C语言 内存分配 地址 指针 数组 参数 实例解析
    CRT 环境变量注意事项
    hadoop 输出文件 key val 分隔符
    com.mysql.jdbc.exceptions.MySQLNonTransientConnectionException: Too many connections
  • 原文地址:https://www.cnblogs.com/cookies9/p/4501010.html
Copyright © 2011-2022 走看看