• Access denied for user 'root@localhost' (using password:NO)问题的解决


    错误详情

    使用pymysql连接数据库mysql,一直无法连接上,

    conn = pymysql.connect(host='localhost', port=3306, user='root', passwd='1234', db='test', charset='utf8')

    原因是自己的mysql没有密码,即root进入直接enter就可以进入数据库,但这样的数据库在使用其他连接可能都会出现这种问题,所以解决问题的第一步就是给root设置一个密码。

    步骤如下:

    [root ~]# mysql -u root
    ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password:NO)

    1.停止mysql服务

    [root ~]# net stop mysql
    

    2.在没有任何特权的情况下启动mysql:

    首先找到mysql安装路径,找到my.ini文件,在该文件末尾加上skip-grant-tables

    然后启动mysql服务

    [root ~]# net start mysql 
    

    3.输入mysql命令符

    [root ~]# mysql -u root
    mysql> 
    

    4.修复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> select host, user from user;
    +-----------+------+
    | host      | user |
    +-----------+------+
    | localhost | root |
    +-----------+------+
    1 row in set (0.00 sec)
    

    5.退出外壳程序并以正常模式重启mysql

    mysql> quit;
    [root ~]# kill -KILL [PID of mysqld_safe]
    [root ~]# kill -KILL [PID of mysqld]
    [root ~]# service mysql start
    

    6.现在,可以使用设置的密码以root用户身份成功登录

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

      

  • 相关阅读:
    shell 自动登录 上传 下载
    用例设计----PICT&Allpairs
    已有实例 Oracle 下新增实例
    【原创】安卓兼容性测试
    【原创】某版本性能测试
    【原创】Jmeter正则表达式提取json中多个关联值
    【转】四种常见的 POST 提交数据方式
    rfw使用接口库测试--FAIL : UnicodeEncodeError: 'ascii' codec can't encode characters in position
    【原创】Robotframework 简介
    java学习笔记_内存分析
  • 原文地址:https://www.cnblogs.com/AIchangetheworld/p/11726383.html
Copyright © 2020-2023  润新知