• mysql ERROR 1045 (28000): Access denied for user 'ODBC'@'localhost' (using password: NO)错误解决办法


    我的电脑是win10,所用的是mysql5.7.14

    近期在学习mysql数据库的时候,遇到了这个错误,我的密码错误了。突如其来的问题,很是蒙蔽,因为我没对数据库设置过密码。通过网上查询,可以通过进入mysql命令行的方式,来直接修改数据库的密码。具体步骤如下:

    在mysql数据库的my.ini文件中找到mysqld这一项:

    用记事本打开,找到mysqld,并往其中添加skip-grant-tables

    然后上面的就变成:

    [mysqld]

    skip-grant-tables

    port=3306

    这句话的意思是,跳过验证,这个在开发的时候是很有帮助的,因为在我们忘记密码以后可以很方便的修改数据库密码的,但是,为了安全,这个选项不能一直存在。

    然后保存并在windows服务中重启mysql服务,进入mysql所在路径下的bin目录中,运行如下指令:

    mysql -u root -p

    对于弹出的enter password可以直接一个回车跳过,从而进入mysql命令行。在mysql命令行中 使用如下指令修改密码:

    1 use mysql;
    2 update user set password=password("123456") where user="root";

    但是在实际用的时候,这个报错了,显示mysql数据库中没有password这一列,这就很奇怪了,因为这个是每个数据库自带的一项,查了资料才知道,在mysql5.7.14中,password字段被改成了 authentication_string,修改上述指令的第二行为:

    update mysql.user set authentication_string=password('root') where user='root' ;

    这样就实现了对密码的修改,然后刷新一下数据库:

    flush privileges;

    接着退出,并把my.ini文件中添加的那一项去掉,并重启数据库服务,就能在python脚本中访问了。
    在访问中,又遇到了一个新的问题,1862 Your password has expired. To log in you must change it using a client,

    并且提示mysql error You must reset your password using ALTER USER statement before executing this statement.对于这个问题,需要调用如下指令:

    1 alter user user("root") identified by "new_password";

    然后刷新数据库。这样就能完整的解决以上的报错问题。

  • 相关阅读:
    android 通知栏 notifcation
    通过ResultSet获取到rs的记录数的几种方法
    网上书城随笔
    jdbc 事务
    正则表达式
    String,StringBuffer与StringBuilder的区别??
    Java 之 FileReader FileInputStream InputStreamReader BufferedReader 作用与区
    算法
    呵呵
    Hibernate
  • 原文地址:https://www.cnblogs.com/sgatbl/p/9124820.html
Copyright © 2020-2023  润新知