mysql忘记密码怎么改

忘记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服务器:

三、启动服务器

[[email protected] bin]# /usr/bin/mysqld_safe --init-file=/var/a.txt &

[1] 7375

[[email protected] 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。

四、使用新密码连接数据库

[[email protected] 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”。

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

时间: 2024-11-09 15:11:53

mysql忘记密码怎么改的相关文章

windows主机mysql忘记密码如何重置

本文主要是针对mysql重置密码过程中出现“mysqld不是内部命令或外部命令”的问题而写的.网上有很多关于mysql忘记密码了如何找回的文章,但是很多说的都不够详细,特别是还要用到DOS命令,可能这对于很大一部分刚接触这方面的朋友来说还是个难题.本文针对网上教程中有难点和疑惑的步骤进行再次剖析,如果能让你少走一步弯路,那我的目的也就达到了.下面是网上流传最多的方法,原作者无从知晓,这里表示感谢. 关闭正在运行的MySQL. 打开DOS窗口,转到mysqlbin目录. 输入mysqld --sk

mysql忘记密码后如何重置??

mysql忘记密码后如何重置?? 背景:今天要用mysql数据库做测试,测试机上的mysql忘记密码了,怎么办呢? 下面是解决办法. 如果 MySQL 正在运行,首先杀之: killall -TERM mysqld. 启动 MySQL :/usr/bin/safe_mysqld --skip-grant-tables & 就可以不需要密码就进入 MySQL 了.然后就是>use mysql>update user set password=password("new_pass

mysql忘记密码,如何重置密码

方法,教你两招重置root密码! 1.使用mysqladmin修改mysql密码 C:\>mysqladmin -udbuser -p password newpass Enter password: oldpass 当然用此命令的前提是你把mysql加入了环境变量,如果没有加入环境变量的话那只能在命令行下cd到mysqladmin所在的 目录下与此那个次命令了! 2.重置root密码 方法一: 在my.ini的[mysqld]字段加入: skip-grant-tables 重启mysql服务,

mysql忘记密码时 恢复管理员密码

# service mysql stop # service mysqlstart --skip-grant-tables      //跳过授权表启动MySQL服务程序 # mysql -u root                               //不需要密码登录 mysql> update mysql.user set password=password('123456') where host="localhost";  //通过修改mysql库中user表

mysql 忘记密码,如何重新设置新密码(mysql5.6已测试过OK)

mysql 忘记密码了怎么办? 1. 关闭mysql service. 2. 新建一个 c:\my-init.txt 的文本文件,重设你的新密码到newpassword处,内容如下: UPDATE mysql.user SET Password=PASSWORD('newpassword') WHERE User='root'; FLUSH PRIVILEGES; 3. 开一个新的命令行,并输入如下图所示命令(这是按mysql向导安装的,如此处理就可以): my.ini文件的path按下图去获取

ubuntu14下mysql忘记密码的处理

ubuntu14下mysql忘记密码的处理 ubuntu14.04忘记了mysql的用户(root)的密码.接下来: 1) 停止mysql服务 $ sudo stop mysql 2) 启动mysqld_safe $ sudo /usr/bin/mysqld_safe --skip-grant-tables& $ mysql --user=root mysql mysql> update user set Password=PASSWORD('新密码') where user='root';

十五、mac 中登陆mysql忘记密码解决办法

mac 中登陆mysql忘记密码解决办法 1.打开终端,输入命令:cd /usr/local/mysql/bin 2.mysql -uroot -p,用这条命令登陆时报错信息: 报错:Enter password: ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES) 3.打开终端输入:sudo mysqld_safe --skip-grant-tables 输出 Password:

MySQL忘记密码怎么修改密码

MySQL的 root 帐号密码默认为空,经常都有修改密码后忘记密码的事.如果忘记了root 帐号密码,那该怎么修改密码呢?这里有一个可行的方法,就是在MySQL安全模式下(跳过权限检查)修改密码的方式来解决这个问题.本文分别对Windows环境与Linux环境下介绍MySQL忘记密码时修改密码的方法,希望帮助初学者解决丢失密码的烦恼. Windows下MySQL重置密码 通常MySQL都是安装成Windows服务运行的. 1.启动cmd命令窗口: # 关闭MySQL服务   D:\MySQL\

MySQL忘记密码处理

原文:MySQL忘记密码处理 登录MySQL,密码输入错误 /* 密码错误,报如下错误 */ [[email protected] ~]# mysql -uroot -p -P3306 Enter password: ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES) 如果忘记密码,对于MySQL而言处理起来也相对比较简单.但需要修改配置,重启数据库.可以按照如下步骤处理. 1.