今天有个课程设计项目要做 要使用mysql数据库 照往常一样命令行 mysql -u root -p 想打开数据库创建表 但是老是提示打不开
因为自己以前用过mysql 后面因为学习php又装了一个wampserver(这个里面自带有 mysql 和 phpmyadmin) 刚开始还以为是系统把自己以前装的mysql和这个wampserver的mysql搞混了 于是就想通过命令行定位到具体的mysql 根目录下的bin目录来打开mysql 。
wampserver下面的mysql 在命令行定位到它的bin下面 刚开始的时候还是打不开 但是我记得密码明明是对的啊 于是google了一下 网上说 这个wampserver 自带的mysql默认是 root 登录 密码为空 于是赶紧试一下 : mysql -u root -p 然后在提示Enterpassword:时直接回车 果然登录成功了。这会才知道刚刚那个密码是以前用过的mysql的密码 于是同样定位到以前那个mysql的bin目录下 提示Enterpassword:按自己记得的那个密码输入 输入了好几篇还是提示进不去 于是就郁闷了 又开始google
google 上找到这么在不知道mysql密码的情况可以修改密码的方法
首先 创建一个文本文件,将下述命令置于单一行中:
SET PASSWORD FOR ‘root’@'localhost' = PASSWORD('MyNewPassword');
用任意名称保存该文件,在本例中,该文件为c:/mysql-init.txt.
第二步:进入DOS命令提示:开始菜单->运行->cmd
假定你已将MYSQL安装在c:/mysql。如果你将MYSQL安装在另一位置,请对下述命令进行相应的调整。
在DOS命令提示符下,执行命令:
c:/mysql/bin/>mysqld-nt --init-file=c:/mysql-init.txt
在服务器启动时,执行由“--init-file”选项(作用:在启动时从指定的文件中读取SQL命令)命名的文件的内容,更改根用户密码。当服务 器成功启动后,应删除C:/mysql-init.txt。
如果起动MySQL服务器出错,把进程mysqld-nt.exe关闭。然后重启它,OK。
或者停止MySQL服务器,然后在正常模式下重启它。如果以服务方式运行服务器,应从Windows服务窗口启动它。如果以手动方式启动了服务器,能够像正常情形下一样使用命令。
应能使用新密码进行连接
-----------------------------------------------------------------------------------------------------------------------------------------------------
接下来:想运行phpMyAdmin 但是老是提示:ERROR 1045: Access denied for user: 'root@localhost' (Using password: YES)
查看了一下:$cfg['Servers'][$i]['password'] = '123456'; 但是刚刚那个mysql是空密码登录的 所以就把这个改为空密码 重新登录 但是没有成功 就是
在命令行先用空密码登录进入 然后修改密码
mysql>use mysql
>update user set password=password("new_password") where user="root";
>flush privileges;
>exit
然后修改phpmyadmin 的$cfg['Servers'][$i]['password'] = 'new_password';
重新运行了一下 phpmyadmin 一看还是报:#1045 的错误 于是刷新了一下网页 果然 登录成功了,呵呵呵
下面是网络资源汇集
mysql重新修改密码:
在windows下:
打开命令行窗口,停止mysql服务: Net stop mysql
启动mysql,一般到mysql的安装路径,找到 mysqld-nt.exe
执行:mysqld-nt --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 &
就可以不需要密码就进入 MySQL 了。
然后就是
>use mysql
>update user set password=password("new_pass") where user="root";
>flush privileges;
重新杀 MySQL ,用正常方法启动 MySQL 。
来源:http://www.iteye.com/topic/199647
ERROR 1045: Access denied for user: 'root@localhost' (Using password: YES)
ERROR 1045: Access denied for user: 'root@localhost' (Using password: YES)
前两天也偶尔出现这个错误,也没在意,因为我重新修改一下mysql的root密码后又可以用了,但昨天却不行,我把root密码修改以后虽然当时能用,一旦重新进入就都不能用了,可我的密码明明没有错啊?今天终于找到了原因,是权限问题,大家可以参考着下面两篇文章去看一下:
http://topic.csdn.net/t/20060117/15/4521496.html#
http://doc.99net.net/doc/database/1076488199/1076549732.html
由于以前从来没有遇到过这种情况,故把解决方法记录于此,以便今后自己查阅,具体方法就是你在改root密码的时候再加上一句给权限的语句:
grant all on mysql.* to 'root'@'localhost' identified by 'password';
最后那个password即是你要修改的root用户的密码
刚开始用mysql就给我来了个下马威,前些天完整完数据库后安装手册修改了一下root用户的密码,然后用root用户再登陆是一切OK。可是今天再登陆时就报1045错误代码。
错误代码 1045
Access denied for user 'root'@'localhost' (using password:YES)
我的解决办法是重新设置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:/mysql/bin/>mysqld-nt --init-file=C:/mysql-init.txt
在服务器启动时,执行由“--init-file”选项(作用:在启动时从指定的文件中读取SQL命令)命名的文件的内容,更改根用户密码。当服务器成功启动后,应删除C:/mysql-init.txt。
5、如果起动MySQL服务器出错,把进程mysqld-nt.exe关闭。然后重启它,OK。
6、或者停止MySQL服务器,然后在正常模式下重启它。如果以服务方式运行服务器,应从Windows服务窗口启动它。如果以手动方式启动了服务器,能够像正常情形下一样使用命令。
应能使用新密码进行连接。