"问题描述 在 Windows 10 64 位系统下,免安装 MySQL 启动 3534 错误处理 解决后,因安装时未配置密码,则按照网上教程在my.ini配置文件内的[mysqld]项下添加skip_grant_tables,控制台使用命令mysql -u root -p,进入 mysql 命令行(参考文章 详见),然 .."

免安装版 MySQL 安装完成后登陆 1045 错误处理

问题描述

在 Windows 10 64 位系统下,免安装 MySQL 启动 3534 错误处理 解决后,因安装时未配置密码,则按照网上教程在my.ini配置文件内的[mysqld]项下添加skip_grant_tables,控制台使用命令mysql -u root -p,进入 mysql 命令行(参考文章 详见),然而并未像参考文章内描述的那样解决问题,控制台出现如下错误:
错误1045


问题处理

尝试了很多教程均不可以,最后考虑是否是mysqld --initialize命令导致的问题,尝试查找官网的安装教程,发现该命令初始化数据库时,还会自动生成一个随机密码:
初始化时生成随机密码
然后问题就是随机生成的密码在哪里,这个可以在 [官方安装教程] 底部看到,明确指出生成的密码在data目录下的错误日志里:
初始化生成随机密码存放在错误日志内
按说明到data目录下,可以看到类似下面的错误日志:
初始化时生成的错误日志
在错误日志内可以查看到对应生成的随机密码:

初始化生成的随机密码

使用该密码,正常进入 mysql 命令行模式,之后就可以尝试使用更新语句来更新 root 账号密码


mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY 'new_password';


问题总结

在之前配置时出现 3534 错误,通过mysqld --initialize命令来完成初始化,会对应生成随机密码,并会标记'root'@'localhost'帐户密码过期,然后在错误日志显示输出随机密码。使用该随机密码,即可以登录 mysql 命令行模式,然后修改 root 密码,至此,才算配置完成。

通过官网配置教程,发现还有另外一个命令mysqld --initialize-insecure,使用该命令初始化数据库时,不会生成随机密码,而是直接标记'root'@'localhost'帐户密码过期,在错误日志内输出类似如下的提示信息:

[Warning] root@localhost is created with an empty password ! Please consider switching off the --initialize-insecure option.

官方对于两个命令的说明如下:
官网对两个命令的介绍
使用mysqld --initialize-insecure命令初始化数据库后,启动服务,直接通过命令mysql -u root -p(提示输入密码时直接回车)即可进入 mysql 命令行模式。

注意: 数据库配置文件my.ini不需要配置skip_grant_tables!


参考

  • B3log

    B3log 是一个开源组织,名字来源于“Bulletin Board Blog”缩写,目标是将独立博客与论坛结合,形成一种新的网络社区体验,详细请看 B3log 构思。目前 B3log 已经开源了多款产品:PipeSoloSymWide 等,欢迎大家加入,贡献开源。

    2094 引用 • 3641 回帖 • 619 关注
  • MySQL

    MySQL 是一个关系型数据库管理系统,由瑞典 MySQL AB 公司开发,目前属于 Oracle 公司。MySQL 是最流行的关系型数据库管理系统之一。

    411 引用 • 459 回帖 • 984 关注
回帖   
请输入回帖内容...