MySQL #1045错误完全解决方案

  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 ,用正常方法启动


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值