mysql5安装1045_winxp sp3下安装了mysql5.1出现1045错误

在winxp

sp3下安装了mysql5.1出现1045错误

问题:

Mysql的1045错误

安装mysql时在最后安装过程中,最后执行“Apply

security setting”弹出ERROR Nr.1045错误。

环境:

windows xp sp3,防火强已经关闭,可以telnet localhost

3306

解决方案过程:

在winxp下安装了mysql5.1没有出现错误提示,使用C:\Program

Files\MySQL\MySQL Server

5.1\bin\下的MySQLInstanceConfig.exe工具,配置时,到最后阶段出现ERROR

NR.1045错误,又在cmd窗口下,启动mysql时,同样出现ERROR

1045 (28000): Access denied for user 'root'@'localhost' (using

password:

YES),参考了网上n多办法没有解决。在控制面板”-->选择“管理工具”-->选择“服务”,将MySQL停掉,再启动MySQL,还是有1045错误,又删除了C:\Program

Files\MySQL\MySQL Server

5.1下的my.ini文件,重装系统后,再安装Mysql,到最后一步Apply

security settings,又遇到1045问题了。

错误代码

1045

Access

denied for user 'root'@'localhost' (using password:YES)

google了下:

原来是{$MYSQL_HOME}\data下的数据库文件问题,data下保存着之前root的登陆用户信息等。马上查我是脑上目录:C:\Documents

and Settings\All Users\Application Data\MySQL\MySQL Server

5.5\data下果然有以前的数据。

我的办法是:删掉{$MYSQL_HOME}\data下的所有文件,然后安装。ok...

这样做是不是太残忍了

又google了下:

解决办法是重新设置root用户密码,在Windows平台下操作步骤如下:

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

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

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

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

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

SET PASSWORD FOR 'root'@'localhost' =

PASSWORD('MyNewPassword');

用任意名称保存该文件。在本例中,该文件为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常用操作(网上查的)

1、增加了密码后的登录格式如下:

mysql -u root

-p

2、修改登录密码

1) mysqladmin

-u用户名 -p旧密码

password 新密码

例:mysqladmin -u root password

21century

注:因为开始时root没有密码,所以-p旧密码一项就可以省略了。

2)直接修改user表的root用户口令:

mysql> user mysql;

mysql> update user set pasword=password('21century') where

user='root';

mysql> flush privileges;

注:flush

privileges的意思是强制刷新内存授权表,否则用的还是缓冲中的口令。

3、测试密码是否修改成功

1)不用密码登录

[root@test1 local]#

mysql

ERROR 1045: Access denied for user:

'root@localhost' (Using password: NO)

显示错误,说明密码已经修改。

2)用修改后的密码登录

[root@test1 local]# mysql -u root

-p

Enter password:

(输入修改后的密码21century)

Welcome to the MySQL monitor. Commands end with ;

or \g.

Your MySQL connection id is 177 to server version:

3.23.48

Type 'help;' or '\h' for help. Type '\c' to clear the

buffer.

mysql>

成功!

这是通过mysqladmin命令修改口令,也可通过修改库来更改口令

4、启动和停止

启动mysql服务:net

start mysql5

停止mysql服务:net

stop mysql

启动:Mysql从3.23.15版本开始作了改动,默认安装后服务要用mysql用户来启动,不允许root用户启动。

如果非要用root用户来启动,必须加上--user=root参数

(./safe_mysqld --user=root &)

停止:mysqladmin -u root -p

shutdown

5、导出meeting数据库:

mysqldump -uroot -p21century meeting > db_meeting.sql

导人dbname数据库

mysqldump -uroot -p21century dbname < xxx.sql

导入数据库还可用类似于oracle中@my_script.sql的方式一次执行大量sql语句,这在使用mysqldump不起作用时非常有用。

例:#./mysql -uroot -p <

/home/xuys/db_meeting_2003.sql

(注:create

database、use databasename、create

table和insert

into语句都可写在上面的脚步文件中)

其解决办法是让windowxp自带的防火墙,允许mysql程序通过,其方法如下:

WINDOWS:

方法

1.以系统管理员身份登陆系统。

2.打开cmd-----net start

查看mysql是否启动。启动的话就停止net stop

mysql.

3.我的mysql5安装在D:\MySQL\MySQL

Server 5.0下。

4.跳过权限检查启动mysql.

D:\MySQL\MySQL Server 5.0\bin\mysqld-nt

--skip-grant-tables

5.重新打开cmd。进到D:\MySQL\MySQL

Server 5.0\bin下:

D:\MySQL\MySQL Server 5.0\bin\mysqladmin -uroot

flush-privileges password "newpassword"

D:\MySQL\MySQL Server 5.0\bin\mysqladmin -u root

-p shutdown 这句提示你重新输密码。

6.在cmd里net start

mysql

7.搞定了。

使用上诉方案在step 5还是无法重置密码。

4

最终解决方案:

1.手动停止mysql服务。

2.修改D:\MySQL\MySQL

Server 5.0\

目录下的my.ini文件,在[mysqld]下添加

skip-grant-tables

3.启动mysql服务后就可以以空密码登录

4.务必修改root密码

5.把

skip-grant-tables 这一句删掉(在D:\MySQL\MySQL Server

5.0\ 目录下的my.ini文件)

6.重启mysql服务。

7.成功登录.

1、使用Windows防火墙打开端口。开始-〉控制面板->windows防火墙-〉例外。

2、点击“添加端口”按钮:名称:mysql

端口号:3306

3、点击“添加程序”按钮:添加Mysql(C:/Programs Files/mysql

5.x.x/bin/mysql.exe )

4、然后使用控制面板---->管理工具---->服务来停止mysql服务,再重新启动。

最后在cmd中输入mysql服务成功启动。

1.进入cmd手动停止mysql服务:net

stop mysql。

2.修改C:\Program Files\MySQL\MySQL Server

5.1\

目录下的my.ini文件,在[mysqld]下添加skip-grant-tables

3.在cmd中启动mysql服务:net

start mysql

4、打开mysql直接按回车以空密码登录

5、退出mysql,停止mysql服务:net

stop mysql

6、将第2步添加的skip-grant-tables语句删掉

7、启动mysql服务:net start

mysql

use

mysql

8、打开mysql以空密码登录

9、修改密码

10、退出mysql,重新配置

update

user set password = password('123456') where user =

'root';

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值