zoukankan      html  css  js  c++  java
  • [报错:访问终端localhos不允许远程访问]ERROR 1044 (42000): Access denied for user 'root'@'localhost'

    当前主机复制远程mysql库数据时报错:

    #mysqldump -h远程主机 -uroot -p远程mysql密码 -P3306 --default-character-set=utf8 --all-databases | mysql -h127.0.0.1 -uroot -p -P3306

     ERROR 1044 (42000): Access denied for user 'root'@'localhost'

    解决办法: 给localhost开放权限

    #mysql -uroot -p

    输入密码

    #查看各root账号的权限:

    mysql> select current_user() from dual;                                                                                                                         
    +----------------+                                                                                                                                              
    | current_user() |                                                                                                                                              
    +----------------+                                                                                                                                              
    | root@localhost |                                                                                                                                              
    +----------------+                                                                                                                                              
    1 row in set (0.00 sec)                                                                                                                                         
                                                                                                                                                                    
    mysql> select host,user from user where user='root';                                                                                                            
    ERROR 1046 (3D000): No database selected                                                                                                                        
    mysql> use mysql;                                                                                                                                               
    Reading table information for completion of table and column names                                                                                              
    You can turn off this feature to get a quicker startup with -A                                                                                                  
                                                                                                                                                                    
    Database changed                                                                                                                                                
    mysql> select host,user from user where user='root';                                                                                                            
    +-----------+------+                                                                                                                                            
    | host      | user |                                                                                                                                            
    +-----------+------+                                                                                                                                            
    | localhost | root |                                                                                                                                            
    +-----------+------+                                                                                                                                            
    1 row in set (0.00 sec)                                                                                                                                         
                                                                                                                                                                    
    mysql> show grants for root@'localhost';                                                                                                                        
    +---------------------------------------------------------------------+                                                                                         
    | Grants for root@localhost                                           |                                                                                         
    +---------------------------------------------------------------------+                                                                                         
    | GRANT ALL PRIVILEGES ON *.* TO 'root'@'localhost' WITH GRANT OPTION |                                                                                         
    | GRANT PROXY ON ''@'' TO 'root'@'localhost' WITH GRANT OPTION        |                                                                                         
    +---------------------------------------------------------------------+                                                                                         
    2 rows in set (0.00 sec)                                                                                                                                        
                                                                                                                                                                    
    mysql> show grants for root@'127.0.0.1';                                                                                                                        
    ERROR 1141 (42000): There is no such grant defined for user 'root' on host '127.0.0.1'                                                                          
    mysql> show grants for root@'%';                                                                                                                                
    ERROR 1141 (42000): There is no such grant defined for user 'root' on host '%'                                                                                  
    mysql> show grants for root@'xxx.xxx.xxx.xxx';                                                                                                                  
    ERROR 1141 (42000): There is no such grant defined for user 'root' on host 'xxx.xxx.xxx.xxx' 
     
    如上所示,root@localhost账号没有访问权限及WITH GRANT OPTION选项,关于WITH GRANT OPTION选项,如果想让授权的用户,也可以将这些权限授予给其他用户,需要选项 WITH GRANT OPTION 。也就是说有这个选项就可以将权限传递给第三方。这也是上面root@localhost用户给其它用后授权报错的原因,如果以 root@127.0.0.1登录(此账号拥有WITHGRANT OPTION选项),创建用户并授权就不会有这个错误,如下所示:

     #给IP-xxx.xxx.xxx.xxx赋予远程访问权限:

     # mysql -h127.0.0.1 -u root

    (需先设置密码:
    mysql>  set global validate_password_length=6;                                                                                                                  
    Query OK, 0 rows affected (0.00 sec)                                                                                                                            
                                                                                                                                                                    
    mysql>  set global validate_password_policy=0;                                                                                                                  
    Query OK, 0 rows affected (0.00 sec)                                                                                                                            
                                                                                                                                                                    
    mysql> set password for root@localhost = password('123456');                                                                                                    
    Query OK, 0 rows affected, 1 warning (0.00 sec)    )
    设置密码的直接输入:
    # mysql -h127.0.0.1 -u root -p

    >grant all privileges on *.* to root@"127.0.0.1" identified by "密码" WITH GRANT OPTION;

     

    #生效设置:

    >FLUSH PRIVILEGES;

     

    
    
    
    

     

     
  • 相关阅读:
    Android 自定义ListView单击事件失效
    Android Studio无线连调式android手机
    Android 5.0 版本 USB 调试模式打开方法
    Android 加了自定义Application后报错 Unable to instantiate activity ComponentInfo ClassNotFoundException
    Android 模块构建错误不能下载依赖包
    Android ConstraintLayout 布局警告
    Android WebSocket开发
    Android 闪烁动画
    Android开发--Service和Activity通过广播传递消息
    CSS轮廓
  • 原文地址:https://www.cnblogs.com/Tanwheey/p/13321719.html
Copyright © 2011-2022 走看看