Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/68.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
根帐户在MySQL中无法工作_Mysql_Sql_Database - Fatal编程技术网

根帐户在MySQL中无法工作

根帐户在MySQL中无法工作,mysql,sql,database,Mysql,Sql,Database,我以root用户身份登录MySQL数据库。我尝试运行以下命令: mysql> GRANT ALL ON *.* TO 'root'@'%' -> IDENTIFIED BY '[password]' -> WITH GRANT OPTION; ERROR 1045 (28000): Access denied for user 'root'@'%' (using password: YES) mysql> 我得到以下错误: 错误1045(28000):用户“roo

我以root用户身份登录MySQL数据库。我尝试运行以下命令:



mysql> GRANT ALL ON *.* TO 'root'@'%'
    ->   IDENTIFIED BY '[password]'
    ->   WITH GRANT OPTION;
ERROR 1045 (28000): Access denied for user 'root'@'%' (using password: YES)
mysql>

我得到以下错误:

错误1045(28000):用户“root”@“%”的访问被拒绝(使用密码:是)

我假设我的根用户设置不正确。有什么想法吗

编辑


您可能使用名为root的帐户登录到数据库,但您所在的帐户没有正确的权限

mysql> select user();
然后再接着是:

mysql> select * from mysql.user\G
查找与输出完全匹配的用户列和主机列。查找grant_priv,它需要说Y。极有可能存在没有授权权限的其他根帐户

mysql> select * from mysql.user\G
*************************** 1. row ***************************
                 Host: localhost
                 User: root
             Password: xxxxxxxxxxxxxxx
          Select_priv: Y
          Insert_priv: Y
          Update_priv: Y
          Delete_priv: Y
          Create_priv: Y
            Drop_priv: Y
          Reload_priv: Y
        Shutdown_priv: Y
         Process_priv: Y
            File_priv: Y
           Grant_priv: Y
      References_priv: Y
           Index_priv: Y
           Alter_priv: Y
         Show_db_priv: Y
           Super_priv: Y
Create_tmp_table_priv: Y
     Lock_tables_priv: Y
         Execute_priv: Y
      Repl_slave_priv: Y
     Repl_client_priv: Y
     Create_view_priv: Y
       Show_view_priv: Y
  Create_routine_priv: Y
   Alter_routine_priv: Y
     Create_user_priv: Y
           Event_priv: Y
         Trigger_priv: Y
             ssl_type: 
           ssl_cipher: 
          x509_issuer: 
         x509_subject: 
        max_questions: 0
          max_updates: 0
      max_connections: 0
 max_user_connections: 0

您可能使用名为root的帐户登录到数据库,但您所在的帐户没有正确的权限

mysql> select user();
然后再接着是:

mysql> select * from mysql.user\G
查找与输出完全匹配的用户列和主机列。查找grant_priv,它需要说Y。极有可能存在没有授权权限的其他根帐户

mysql> select * from mysql.user\G
*************************** 1. row ***************************
                 Host: localhost
                 User: root
             Password: xxxxxxxxxxxxxxx
          Select_priv: Y
          Insert_priv: Y
          Update_priv: Y
          Delete_priv: Y
          Create_priv: Y
            Drop_priv: Y
          Reload_priv: Y
        Shutdown_priv: Y
         Process_priv: Y
            File_priv: Y
           Grant_priv: Y
      References_priv: Y
           Index_priv: Y
           Alter_priv: Y
         Show_db_priv: Y
           Super_priv: Y
Create_tmp_table_priv: Y
     Lock_tables_priv: Y
         Execute_priv: Y
      Repl_slave_priv: Y
     Repl_client_priv: Y
     Create_view_priv: Y
       Show_view_priv: Y
  Create_routine_priv: Y
   Alter_routine_priv: Y
     Create_user_priv: Y
           Event_priv: Y
         Trigger_priv: Y
             ssl_type: 
           ssl_cipher: 
          x509_issuer: 
         x509_subject: 
        max_questions: 0
          max_updates: 0
      max_connections: 0
 max_user_connections: 0
当我输入select*from mysql.user\G命令时,我得到:错误1142(42000):select命令拒绝对表“user”的用户“root”@“localhost”执行错误:未指定查询

这意味着您没有以
'root'@%
身份登录。您以“root”@“localhost”身份登录,这是两个不同的用户。如果运行
选择USER()
如上所述,它可能会显示
'root'@'localhost.

如果您以
'root'@'localhost'
身份登录,则您是通过本地套接字登录的。通过TCP连接登录将使您以
'root'@“%
的身份访问,然后您可以根据最初列出的输出访问更改授权。要执行此操作,请使用以下登录:

mysql-u$user-p$pass-h127.0.0.1

当我输入select*from mysql.user\G命令时,我得到:错误1142(42000):select命令拒绝对表“user”的用户“root”@“localhost”执行错误:未指定查询

这意味着您没有以
'root'@%
身份登录。您以“root”@“localhost”身份登录,这是两个不同的用户。如果运行
选择USER()
如上所述,它可能会显示
'root'@'localhost.

如果您以
'root'@'localhost'
身份登录,则您是通过本地套接字登录的。通过TCP连接登录将使您以
'root'@“%
的身份访问,然后您可以根据最初列出的输出访问更改授权。要执行此操作,请使用以下登录:


mysql-u$user-p$pass-h127.0.0.1

显示root@%的授权显示了什么?该帐户需要
grant
选项才能配置其他用户。mysql的默认根帐户是
root@localhost
,因此,如果您是通过tcp登录的,您可能位于“其他”根目录下。@Marc B我添加了它,请参见编辑。我已通过ssh登录。您没有通用授权选项。您只能在
sometable
test
数据库上授予priv,而不能授予
*.
@Marc B如何获得授予选项?您必须登录到真正的根帐户。最有可能
root@localhost
*.*.
上拥有完全权限+授予特权。在mysql服务器上的shell上执行
mysql-p-u root
应该通过本地unix套接字而不是tcp套接字登录。显示root@%的授权揭示了什么?该帐户需要
grant
选项才能配置其他用户。mysql的默认根帐户是
root@localhost
,因此,如果您是通过tcp登录的,您可能位于“其他”根目录下。@Marc B我添加了它,请参见编辑。我已通过ssh登录。您没有通用授权选项。您只能在
sometable
test
数据库上授予priv,而不能授予
*.
@Marc B如何获得授予选项?您必须登录到真正的根帐户。最有可能
root@localhost
*.*.
上拥有完全权限+授予特权。在mysql服务器的shell上执行
mysql-p-u root
应该通过本地unix套接字而不是tcp套接字登录。当我输入
select*from mysql.user\G
命令时,我得到:
错误1142(42000):SELECT command denied to user'root'@'localhost'for table'user'错误:未指定查询
当我从mysql输入
SELECT*时。user\G
命令,我得到:
错误1142(42000):SELECT command denied to user'root'@'localhost'for table'user'错误:未指定查询