拒绝用户“root @ localhost”的访问(使用密码:否)

我是新来的MySQL,我试图在Windows桌面运行Wordpress,它需要MySQL。

我使用Microsoft提供的Web Platform Installer安装了所有内容。 我从来没有seta根密码的MySQL和最后一步的安装wordpress的askfor root密码的MySQL。

root用户的默认密码是什么(如果有的话)以及如何改变它?

我试试

 mysql -u root password '123' 

但它显示了我

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

之后我尝试

 mysql -u root -p 

但它要求一个我没有的密码

先谢谢你


更新: Bozho说我做了以下

  1 - I stoped MySql Service from Windows services 2 - Open CMD 3 - change location to cd c:\program files\mysql\bin 4 - write this command mysqld --defaults-file="C:\\program files\\mysql\\mysql server 5.1\\my.ini" --init-files=C:\\root.txt 5 - Command run with a warning about characterset which I mentioned below 6 - I start MySql Service from windows services 7 - in command line I write mysql -u root -p EnterPassword: 123 // 123 was the password 8 - the commandline shows following bug Access denied for user 'root@localhost' (using password:**YES**) 

我在等你的消息。

您可以重置您的root密码 。 请记住,不build议使用没有密码的root用户。

对于这种错误 您只需以pipe理员身份向root用户设置新密码即可。 请遵循以下步骤:

 [root ~]# mysql -u root ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password:NO) 
  1. 停止运行mysql的服务/守护进程

     [root ~]# service mysql stop mysql stop/waiting 
  2. 使用以下选项启动mysql,但没有任何权限; 这个选项用来启动并不使用MySQL的权限系统。

     [root ~]# mysqld_safe --skip-grant-tables & 

在这个时候,terminal似乎停了下来 。 让这是,并使用新的terminal接下来的步骤。

  1. 进入mysql命令提示符

     [root ~]# mysql -u root mysql> 
  2. 修复root用户的权限设置;

     mysql> use mysql; Database changed mysql> select * from user; Empty set (0.00 sec) mysql> truncate table user; Query OK, 0 rows affected (0.00 sec) mysql> flush privileges; Query OK, 0 rows affected (0.01 sec) mysql> grant all privileges on *.* to root@localhost identified by 'YourNewPassword' with grant option; Query OK, 0 rows affected (0.01 sec) 

*如果你不想要任何密码或者一个空的密码

  mysql> grant all privileges on *.* to root@localhost identified by '' with grant option; Query OK, 0 rows affected (0.01 sec)* mysql> flush privileges; Query OK, 0 rows affected (0.00 sec) 

确认结果:

  mysql> select host, user from user; +-----------+------+ | host | user | +-----------+------+ | localhost | root | +-----------+------+ 1 row in set (0.00 sec) 
  1. 退出shell并以正常模式重新启动mysql。

     mysql> quit; [root ~]# kill -KILL [PID of mysqld_safe] [root ~]# kill -KILL [PID of mysqld] [root ~]# service mysql start 
  2. 现在您可以使用您设置的密码以root用户身份成功login

      [root ~]# mysql -u root -pYourNewPassword mysql> 

1)您可以通过调用MySQL控制台来设置root密码。 它位于

C:\wamp\bin\mysql\mysql5.1.53\bin默认情况下。

进入目录并键入MySQL。 然后设置密码如下

  > SET PASSWORD FOR root@localhost = PASSWORD('new-password'); 

2)你可以通过编辑来configurationwamp的phpmyadmin应用程序

 C:\wamp\apps\phpmyadmin3.3.9\config.inc.php 

它看起来像这样:

  $cfg['Servers'][$i]['verbose'] = 'localhost'; $cfg['Servers'][$i]['host'] = 'localhost'; $cfg['Servers'][$i]['port'] = ''; $cfg['Servers'][$i]['socket'] = ''; $cfg['Servers'][$i]['connect_type'] = 'tcp'; $cfg['Servers'][$i]['extension'] = 'mysqli'; $cfg['Servers'][$i]['auth_type'] = 'config'; $cfg['Servers'][$i]['user'] = 'root'; $cfg['Servers'][$i]['password'] = 'YOURPASSWORD'; $cfg['Servers'][$i]['AllowNoPassword'] = false; 

当您将$cfg['Servers'][$i]['AllowNoPassword']false时,将会解决错误“拒绝用户root @ localhost(使用密码:NO)”

注意:phpmyadmin是一个单独的工具,它带有wamp。 它只是提供一个接口到MySQL。 如果你改变我的SQL根密码,那么你应该改变phpmyadmin的configuration。 通常phpmyadmin被configuration为root用户。

我在OS X El队长遇到同样的错误。 Mysql版本5.7。 执行完这些步骤之后,我可以用root连接到mysql。

停止mysql服务器

 sudo mysql.server stop 

以安全模式启动mysql

 sudo mysqld_safe --skip-grant-tables 

使用mysqld,将数据库更改为mysql并更新用户“root”的详细信息。

 show databases; use mysql; UPDATE mysql.user SET authentication_string = PASSWORD('MyNewPass'), password_expired = 'N' WHERE User = 'root' AND Host = 'localhost'; exit; 

之后,杀死“mysqld_safe”进程,并正常启动MySQL。 您应该能够使用root和新密码login到mysql。 SQL文档的更多细节

确保MySQL服务正在你的机器上运行,然后按照MySQL的指示进行初始化设置(search'windows',它将带你到设置root的步骤):

http://dev.mysql.com/doc/refman/5.1/en/default-privileges.html

对于MySQL 5.7。 这些是以下步骤:

完全停止你的MySQL服务器。 这可以通过访问Windows XP和Windows Server 2003内的“服务”窗口来完成,您可以在其中停止MySQL服务。

在运行窗口中使用“cmd”打开您的MS-DOS命令提示符。 在里面,使用cd命令导航到你的MySQL bin文件夹,比如C:\ MySQL \ bin。

在命令提示符下执行以下命令:mysqld.exe -u root –skip-grant-tables

保持当前的MS-DOS命令提示符,并打开一个新的MS-DOS命令提示符窗口。

使用cd命令导航到您的MySQL bin文件夹,例如C:\ MySQL \ bin。

inputmysql并按回车。

你现在应该有MySQL命令提示符工作。 键入use mysql; 以便我们切换到“mysql”数据库。

执行以下命令更新密码:

update user set authentication_string = password('1111')where user ='root';

另一个解决scheme,如果有人得到错误用户帐户“root”指定的密码是无效的,或无法连接到数据库服务器也有正确的密码,是

?在Windowsregistry中,删除HKCU \ Software \ Microsoft \ WebPlatformInstaller下的mysql_pwdregistry项

•取消旧版本的MySQL .NET连接器

?下载并安装最新的MySql .NET连接器 。

有时候是由于安装Wamp或更改root用户的密码选项而发生的。 用户可以使用privilages – > root(user),然后设置密码选项为NO,无需任何密码即可运行,也可以设置密码并在应用程序中使用。

在你的代码中用服务器密码replace你的服务器用户名和密码的“root” 。 例如,如果你在服务器http://www.example.com上有DB和你的php文件,那么显然你必须使用你的用户名和密码进入这个服务器站点。;

 mysqladmin -u root -p password 

input您current password

然后

input你的new password