MYsql 数据库密码忘记(Window)

 之前想在自己的机器上搭建一个数据库,但是又怕占用内存太大,因此特地从网上下载了一个绿色版,免安装版本的,开始用着 还可以,后来重启机器发现悲催了,数据库用不了了,

决心好好整整Mysql 我的是 版本是:ysql-advanced-5.6.25-winx64 64位的Windows7 系统; 

(1)重启机器后,进入 Services.msc无法启动,==>报错 1067 错误,去网上查,说需要在安装路径下的:

D: oolsMysqlV76384-01mysql-advanced-5.6.25-winx64mysql-advanced-5.6.25-winx64 --》 这是我的安装路径

在安装路径下 把my-default.ini 从新复制一个 命名为 my.ini==> 我这样试了一下,直接导致我查了2天没法找到原因。到底哪里错了。

后来还是按照Mysql解压的文件,把复制的文件my.ini删了,可以启动了;看来网上的答案五花八门,不懂得原理,还是不行;

这是我的my-default.ini配置: 

# For advice on how to change settings please see
# http://dev.mysql.com/doc/refman/5.6/en/server-configuration-defaults.html
# *** DO NOT EDIT THIS FILE. It's a template which will be copied to the
# *** default location during install, and will be replaced if you
# *** upgrade to a newer version of MySQL.

[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

# 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 = .....


# 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 


[client]
#password = your_password
port = 3306
socket = /tmp/mysql.sock
default-character-set=gbk


[mysqld]
port = 3306
socket = /tmp/mysql.sock
default-character-set=gbk
skip-locking
key_buffer = 16K
max_allowed_packet = 1M
table_cache = 4
sort_buffer_size = 64K
read_buffer_size = 256K
read_rnd_buffer_size = 256K
net_buffer_length = 2K
thread_stack = 64K 



basedir =D:/tools/Mysql/V76384-01/mysql-advanced-5.6.25-winx64/mysql-advanced-5.6.25-winx64
datadir =D:/tools/Mysql/V76384-01/mysql-advanced-5.6.25-winx64/mysql-advanced-5.6.25-winx64/data
 
server_id =10

(2) 在cmd中输入mysql 可以进入系统了;又发现了另一个问题,系统的密码忘了,需要修改root密码

查了 不少材料 发现此君写的在理:忘记了mysql数据库root用户密码

他的方法我稍作了改动

 注意,这是Window的处理方法,稍后我会介绍Linux的处理方法, 不管是哪个操作系统处理的思路是相同的,就是首先要把mysql的权限去掉,这样即使忘了密码,不使用密码,照样可以进入,
但是window 和linux 在 屏蔽mysql权限方面稍有不同;这个方法适用于 忘记密码,或是刚开始安装mysql ,还没有密码,需要设置密码的情况;
 
1, 使用管理员权限进入cmd ,首先停止mysql 服务 net stop mysql;
 图1
2,进入命令行,进入mysql的bin目录我的是: 启动以不启用权限检查的方式启动mysql服务:
mysqld -nt --skip-grant-tables  (以不检查权限的方式启动);
(可能会出现:120705 17:41:14 [Warning] option 'new': boolean value 't' wasn't recognized. Set to OFF.不过依然可以继续。)
图2 

注意,此处  -nt 前面有空格, skip前面有一个空格,两个中划线,或是可以直接复制此段话即可;出来了Warning ,说明我们成功了,
3,重新打开一个命令提示窗口 因为我们之前做了操作了,注意是从新打开一个cmd 窗口,之前的不用关闭,所以这次不需要密码就可以登录了;
   输入:mysql -uroot
 回车
然后检查是否可以看到mysql.user表,使用
 
myql > select * from mysql.user;
发现可以看到了;这样就可以修改user 密码了;
 
4, 修改root密码:
   update mysql.user set password=PASSWORD('newpass') where User='root'; (这句话是说要在用户表中,把用户名 为root的用户的密码改掉,PASSWORD('你的新密码'),其中括号里面是
你需要设置的新密码,PASSWORD是mysql系统自带的函数,可以用MD5的方式加密密码;)
5, flush privileges;
6, quit
忘记了mysql数据库root用户密码
重新连接mysql
在cmd中使用 mysql -u root -p
Enter Password:你的新密码,是不是进来了;
搞定了;
原文地址:https://www.cnblogs.com/aspirant/p/4802803.html