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

Mysql 拒绝用户访问';root@localhost';(使用密码:否),mysql,wordpress,mysql-error-1045,Mysql,Wordpress,Mysql Error 1045,我是MySQL新手,我正在尝试在我的Windows桌面上运行WordPress,它需要MySQL 我用微软提供的Web平台安装程序安装所有东西。我从来没有为MySQL设置过根密码,在安装WordPress的最后一步,它要求提供MySQL服务器密码 root的默认密码是什么(如果有)以及如何更改 我试过: mysql -u root password '123' 但它告诉我: Access denied for user 'root@localhost' (using password:NO)

我是MySQL新手,我正在尝试在我的Windows桌面上运行WordPress,它需要MySQL

我用微软提供的
Web平台安装程序
安装所有东西。我从来没有为MySQL设置过根密码,在安装WordPress的最后一步,它要求提供MySQL服务器密码

root的默认密码是什么(如果有)以及如何更改

我试过:

mysql -u root password '123'
但它告诉我:

Access denied for user 'root@localhost' (using password:NO)
在此之后,我尝试:

mysql -u root -p
但是,它要求输入一个我没有的密码


更新:正如波佐建议的那样,我做了以下几点:

  • 我从Windows服务中停止了MySQL服务
  • 打开命令
  • 将位置更改为c:\program files\mysql\bin
  • 执行下面的命令

    mysqld--defaults file=“C:\\program files\\mysql\\mysql server 5.1\\my.ini”--init files=C:\\root.txt

  • 该命令运行时带有一个关于我在下面提到的字符集的警告

  • 我从Windows服务启动MySQL服务
  • 我在命令行中写

    mysql-u root-p
    EnterPassword:123//123是密码

  • 命令行显示以下错误

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


  • 我如何解决这个问题?我在等你的消息。

    你可以。请记住,不建议在没有密码的情况下使用root。

    请确保您的计算机上正在运行MySQL服务,然后按照MySQL中的说明进行初始设置root(搜索“windows”并转到设置root的步骤):

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

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

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

        > SET PASSWORD FOR root@localhost = PASSWORD('new-password');
    
    2) 您可以通过编辑为root用户配置wamp的phpmyadmin应用程序

    C:\wamp\apps\phpmyadmin3.3.9\config.inc.php 
    
    注意:-如果您使用的是xampp,则文件将位于

    C:\xampp\phpMyadmin\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;
    
    错误“拒绝用户的访问”root@localhost“(使用密码:否)” 当您将
    $cfg['Servers'][$i]['AllowNoPassword']
    设置为false时,将解析此问题

    如果您私下更改了'root@localhost,那么您必须做两件事来解决错误“拒绝用户访问”root@localhost“:

  • 如果['password']有一个空引号,如',则将密码放在引号之间
  • 将(使用密码:否)更改为(使用密码:是)
  • 这将解决错误

    注意:phpmyadmin是wamp附带的一个单独的工具。 它只是提供了一个MySQL接口。如果更改我的sql root的密码,那么应该更改phpmyadmin配置。通常phpmyadmin配置为root用户

    mysqladmin -u root -p password
    
    输入您当前的密码

    然后


    输入您的
    新密码

    如果有人收到错误,则另一种解决方案是为用户帐户“root”指定的密码无效,或者无法使用正确的密码连接到数据库服务器,如下所示:

    •在Windows注册表中,删除HKCU\Software\Microsoft\WebPlatformInstaller下的mysql_pwd注册表项

    •Unistall旧版MySQL.NET连接器


    •下载并安装最新版本。

    用于此类错误;您只需将新密码设置为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> 
    
  • 修复根用户的权限设置

    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> 
    

  • 有时,这只是由于安装Wamp或更改根用户的密码选项而发生的。
    您可以使用privilages-->root(用户),然后将password option设置为NO,在不使用任何密码的情况下运行程序,或者设置密码并在应用程序中使用它。

    在代码中,将'root'替换为服务器的用户名,将密码替换为服务器密码。 例如,如果服务器上有DB和php文件
    显然,您必须使用用户名和密码进入此服务器站点。

    我在OS X上也遇到了同样的错误。 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

    用于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命令提示符窗口

    导航到MySQL bin文件夹,例如C:\MySQ
    skip-grant-tables
    
    mysql -u root -p