用户'root @ localhost'拒绝访问(使用密码:NO)

我是mysql的新手,我正在尝试在Windows桌面上运行Wordpress,它需要Mysql。 我用微软提供的
Web Platform Installer
安装所有东西。我从来没有为mysql安装root密码,并且在安装wordpressit的最后一步是mysql的root密码。 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 filesmysqlbin
 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密码。请记住,不建议在没有密码的情况下使用root。     
对于这种错误;您只需要以管理员身份为root用户设置新密码。请按照以下步骤操作:
[root ~]# mysql -u root
ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password:NO)
停止运行mysql的服务/守护进程
[root ~]# service mysql stop   
mysql stop/waiting
使用以下选项启动没有任何权限的mysql; 此选项用于启动,不使用MySQL的权限系统。
[root ~]# mysqld_safe --skip-grant-tables &
此时,终端似乎停了下来。那就是,并使用新的终端进行后续步骤。 进入mysql命令提示符
[root ~]# mysql -u root
mysql> 
修复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)
退出shell并以正常模式重启mysql。
mysql> quit;
[root ~]# kill -KILL [PID of mysqld_safe]
[root ~]# kill -KILL [PID of mysqld]
[root ~]# service mysql start
现在,您可以使用您设置的密码以root用户身份成功登录
 [root ~]# mysql -u root -pYourNewPassword 
 mysql> 
    
1)您可以通过调用MySQL控制台来设置root密码。它位于
C:wampbinmysqlmysql5.1.53bin
默认情况下。 转到目录并键入MySQL。然后设置密码如下..
    > SET PASSWORD FOR root@localhost = PASSWORD('new-password');
2)您可以通过编辑为root用户配置wamp的phpmyadmin应用程序
C:wampappsphpmyadmin3.3.9config.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;
错误“访问被拒绝用户'root @ localhost'(使用密码:NO)” 将
$cfg['Servers'][$i]['AllowNoPassword']
设为false时将解决 注意:phpmyadmin是一个单独的工具,附带wamp。 它只是为MySQL提供了一个接口。如果你更改我的sql root的密码,那么你应该更改phpmyadmin配置。通常phpmyadmin配置为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和新密码登录mysql。 SQL文档了解更多详细信息     
确保MySQL服务在您的计算机上运行,​​然后按照MySQL的说明初步设置root(搜索'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。 输入mysql并按Enter键。 您现在应该可以使用MySQL命令提示符。输入mysql;这样我们就切换到了“mysql”数据库。 执行以下命令更新密码: 更新用户集authentication_string = password('1111')其中user ='root';     
另一个解决方案,如果有人收到错误用户帐户“root”的指定密码无效,或者使用正确的密码也无法连接到数据库服务器,如下 •在Windows注册表中,删除HKCU Software Microsoft WebPlatformInstaller下的mysql_pwd注册表项 •取消部署旧版本的MySQL .NET连接器 •下载并安装最新的MySql .NET Connector。     
在您的代码中,将“root”替换为您的服务器用户名和密码以及服务器密码。 例如,如果您在服务器http://www.example.com上有数据库和PHP文件 那么显然你必须使用你的用户名和密码进入这个服务器站点。     
有时它只是由于安装Wamp或更改root用户的密码选项而发生的。 可以使用privilages - > root(user)然后将password选项设置为NO以运行没有任何密码的东西或设置密码并在应用程序中使用它。     
只需在C: xampp mysql bin路径中编辑
my.ini
文件即可。只需添加:
skip-grant-tables
# The MySQL server [mysqld]
port=3306
之间的行。然后重启MySQL服务器。 好像:     
如果您正在使用XAMPP,请转到
C:xamppphpMyAdmin
然后打开
config.inc.php
找到
$cfg['Servers'][$i]['password'] = ''
行并将密码放在那里。     
mysqladmin -u root -p password
输入你的
current
password
然后 输入你的
new password
    

要回复问题请先登录注册