设为首页 收藏本站
查看: 665|回复: 0

[经验分享] mysql忘记密码怎么改

[复制链接]
累计签到:1 天
连续签到:1 天
发表于 2015-7-10 09:23:49 | 显示全部楼层 |阅读模式
忘记mysql登录密码的修改方法:
      方法原理:mysqld服务器安装的时候一步操纵就是需要初始化数据操纵。初始化后会有mysql数据库,里面有默认的表,其中mysqld在启动时候会将user、db、host、tables_priv、columns_priv、procs_priv这6张表读入内存当中。这6张表是对mysql用户和其操纵进行认证的,其中user表是存放数据库用户信息,db是数据库级别的认证,host默认是空,可以添加用户对mysql数据库的访问控制信息,tables_priv是表级别控制,columns_priv是列级别控制,procs_priv是进程级别的控制。
     客户端在进行连接mysql服务器是要经历两个阶段:

        阶段1:服务器检查是否允许你连接。
阶段2:假定你能连接,服务器检查你发出的每个请求。看你是否有足够的权限实施它。
这里的修改方法就是在启动数据库的时候不去检查user表中用户控制信息,使用指定的选项文件来启动数据库。
一种方法是修改启动脚本文件
   编辑启动脚本,启动mysql_safe是传递两个参数
    --skip-grant-tbales  设定跳过授权表登录
    --skip-networking   设定不允许网络访问,只能本地主机访问
    启动服务器后使用更新授权表的方式修改user表的密码,移除配置文件的两个选项在重新启动服务器,可以使用新密码连接登录

另一种方法:指定启动选项文件
windows下的修改方法:
安装mysql的时候默认是root用户,密码为空。
作为管理员,假如忘记了密码,可以根据以下步骤来修改密码登录。
一、如果mysqld服务器此时处于运行状态,要关闭mysqld服务器。
             开始菜单->控制面板->管理工具->服务
            然后在列表中找出MySQL服务器,并停止它。或者通过任务管理器来停止。
二、创建一个文本文件,在单一第一行中写入
             SET PASSWORD FOR 'root'@'localhost' = PASSWORD('MyNewPassword');
             用任意名称保存该文件。在本例中,该文件为C:\mysql-init.txt。
        三、打开控制台窗口,进入DOS命令提示:
              开始菜单->运行-> cmd
              假定你已将MySQL安装到C:\mysql。如果你将MySQL安装到了另一位置,请对下述命令进行相应的调整。在DOS命令提示符下,执行命令:
              C:\> C:\mysql\bin\mysqld-nt --init-file=C:\mysql-init.txt
              在服务器启动时,执行由“--init-file”选项命名的文件的内容,更改根用户密码。当服务器成功启动后,应删除C:\mysql-init.txt。
        四、使用新密码连接mysql服务器

             如果你使用MySQL安装向导安装了MySQL,或许需要指定“--defaults-file”选项:
             C:\> C:\Program Files\MySQL\MySQL Server 5.1\bin\mysqld-nt.exe
              --defaults-file="C:\Program Files\MySQL\MySQL Server 5.1\my.ini"
              --init-file=C:\mysql-init.txt
            使用服务管理器,可找到恰当的“--defaults-file”设置:
            开始菜单->控制面板->管理工具->服务
           在列表中找出MySQL服务,右击,并选择“属性”选项。在可执行字段的Path(路径)中包含“--defaults-file”设置。
             停止MySQL服务器,然后在正常模式下重启它。如果以服务方式运行服务器,应从Windows服务窗口启动它。如果以手动方式启动了服务器,能够像正常情形下一样使用命令。
            应能使用新密码进行连接。

在linux系统下的修改方法:
     一、如果服务器是运行状态,需要停止服务器。找到mysqld的进程ID,将其杀死。
         使用netstat -tunlp | grep mysqld 查看进程或者查看mysqld进程文件,常见位置是/var/lib/mysql/、/var/run/mysqld/和/usr/local/mysql/data/。
         一般情况下,文件名的扩展名为.pid,
     二、创建文本文件,并将下述命令放在文件内的1行上:
          SET PASSWORD FOR 'root'@'localhost' = PASSWORD('MyNewPassword');
         用任意名称保存文件。对于本例,文件为/var/a.txt。
         用特殊的“--init-file=~/mysql-init”选项重启MySQL服务器:
     三、启动服务器
        [iyunv@localhost bin]# /usr/bin/mysqld_safe --init-file=/var/a.txt &
        [1] 7375
        [iyunv@localhost bin]# 150701 10:31:38 mysqld_safe Logging to '/var/log/mysqld.log'.
        150701 10:31:38 mysqld_safe Starting mysqld daemon with databases from /var/lib/mysql
        表示服务器启动成功。
        文件init-file的内容在服务器启动时执行,更改根用户密码。服务器成功启动后,应删除~/mysql-init。
     四、使用新密码连接数据库
         [iyunv@localhost var]# mysql -u root -h localhost -p
          Enter password:
          Welcome to the MySQL monitor.  Commands end with ; or \g.
          Your MySQL connection id is 2
          Server version: 5.1.66 Source distribution
          Copyright (c) 2000, 2012, Oracle and/or its affiliates. All rights reserved.
          Oracle is a registered trademark of Oracle Corporation and/or its
          affiliates. Other names may be trademarks of their respective
          owners.
          Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
          mysql>

作为可选方式,在任何平台上,可使用mysql客户端设置新密码(但该方法不够安全):
停止mysqld,并用“--skip-grant-tables --user=root”选项重启它(Windows用户可省略--user=root部分)。使用下述命令连接到mysqld服务器:
shell> mysql -u root

在mysql客户端发出下述语句:
mysql> UPDATE mysql.user SET Password=PASSWORD('newpwd')

    ->                   WHERE User='root';
mysql> FLUSH PRIVILEGES;
用打算使用的实际根用户密码替换“newpwd”。

应能使用新密码进行连接。


运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-85062-1-1.html 上篇帖子: linux下mysql密码破解的方法 下篇帖子: mysql 登陆端口指定 忘记密码 mysql
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表