mysql脚本怎么解决1045错误_MySQL #1045错误完全解决方案

本文介绍了在Windows系统上遇到MySQL1045错误时的解决方法,该错误通常表现为无法使用正确的用户名和密码连接到数据库。问题根源在于MySQL Server Instance Config Wizard未设置初始密码或用户密码遗忘。解决步骤包括跳过配置向导,通过命令行工具以空密码登录,更新root用户的密码,然后重启MySQL服务。此外,还提供了忘记密码时的重置流程。
摘要由CSDN通过智能技术生成

MYSQL 1045:不能连接数据库,用户名或密码错误

连接mysql数据库时偶尔会出现1045错误,如果你是登录mysql出现的错误,可以直接看解决方法了。

在安装mysql 数据库的时候,经常出现 1045错误

其具体的提示为:

该错误只在Windows系统上出现,Linux下好像好没有,据说这个错误已经存在n年了,有人extremely dispointed that it still exists here in 2009!

错误的原因更令人抓狂,那就是mysql server instance config wizard根本没有为你设密码,于是root密码是空!实在不明白如果没有为我设密码那中间为什么叫我设个密码。

解决办法:

I clicked Skip on the dialog that states the Error 1045…

Then cancelled the “MySQL Server Instance Config Wizard”

Now…

打开一个命令行窗口,输入:mysql -u root -p

这时会提示你输入密码,直接回车(即密码为空),进入MySQL管理,输入以下命令:

mysql>use mysql

mysql>select user, host, password from user;

# Now you should see that u have 3 entries

+—————————–+

| user | host | password |

+—————————–+

| root | localhost | |

| root | 127.0.0.1 | |

| | localhost | |

+—————————–+

mysql> delete from user where host=”localhost” and user=”";

mysql> update user set password=password(“xxxx”) where user=”root”;

mysql> flush tables;

mysql> flush privileges;

mysql> quit

Now the mysql table should be updated and everything fixed.

Try it out…

然后就可以用config wizard跑一遍了,在输入密码的步骤时,取消勾选输入密码部分,直接下一步,MySQL启动成功!

如果系统以前已经安装过mysql数据库,而密码又忘记了。 这时候可以先skip,然后按照下面的方案进行。

解决方案:

1、以系统管理员身份登录到系统;

2、如果MySQL服务器正在运行,停止它。

如果是作为Windows服务运行的服务器,进入服务管理器:开始菜单->控制面板->管理工具->服务

如果服务器不是作为服务而运行的,可能需要使用任务管理器来强制停止它。

3、创建1个文本文件,并将下述命令置于单一行中:

SET PASSWORD FOR ‘root’@'localhost’ = PASSWORD(‘xxxx’);

用任意名称保存该文件。在本例中,该文件为C:\mysql-init.txt。

4、进入DOS命令提示:开始菜单->运行-> cmd

假定你已将MySQL安装到C:\mysql。如果你将MySQL安装到了另一位置,请对下述命令进行相应的调整。

在DOS命令提示符下,执行命令:

C:\> C:\mysql\bin\mysqld-nt –init-file=C:\mysql-init.txt

在服务器启动时,执行由“–init-file”选项(作用:在启动时从指定的文件中读取SQL命令)命名的文件的内容,更改根用户密码。当服务器成功启动后,应删除C:\mysql-init.txt。

5、停止MySQL服务器,然后在正常模式下重启它。如果以服务方式运行服务器,应从Windows服务窗口启动它。如果以手动方式启动了服务器,能够像正常情形下一样使用命令。

mysql密码忘记的解决方法

解决办法: 在windows下:

打开命令行窗口,停止mysql服务: Net stop mysql 启动mysql,一般到mysql的安装路径,找到 mysqld-nt.exe 执行:mysqld-nt --skip-grant-tables 当前窗口将会停止。  (或者mysqld  --skip-grant-tables) 另外打开一个命令行窗口,执行mysql   如果提示没有这个命令,先进入MYSQL的安装位置下BIN目录再运行mysql >use mysql >update user set password=password("new_password") where user="root"; >flush privileges; >exit 用Ctrl+Alt+Del,找到mysqld-nt的进程杀掉它,在重新启动mysql-nt服务,就可以用新密码登录了 在linux下:

如果 MySQL 正在运行,首先杀之: killall -TERM mysqld。 启动 MySQL :bin/safe_mysqld --skip-grant-tables & 或者  mysqld_safe --skip-grant-tables & 就可以不需要密码就进入 MySQL 了。 然后就是 >use mysql >update user set password=password("new_pass") where user="root"; >flush privileges; 重新杀 MySQL ,用正常方法启动

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值