zoukankan      html  css  js  c++  java
  • Ubuntu下 MySQL的“ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: NO)”

               今天闲来无事,在Ubuntu上掏鼓一下mysql。但尴尬的是,当我输入mysql -u root -p的时候,抛出了一个错误:ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: NO)。(Ubuntu很早之前就装了,mysql亦是如此),因此没有修改过它的原始密码。

              网上查找了好久,各种说法均有!有的我操作了下,但貌似对centos有效,对Ubuntu则没有起到作用。还有的说,root的随机密码在/root/.mysql_secret中,但是我的系统中,根本没有/root/.mysql_secret文件。坑爹了去!!!后来翻墙,在Stack Overflow上找到答案。总结起来,步骤如下:

            第一,停止MySQL服务:(如果service mysql stop执行不成功,使用/etc/init.d/mysql restart即可----同理步骤三)


            第二,/etc/mysql/下,打开my.cnf文件,向其中加入skip-name-resolve   和 skip-grant-tables,并保存;


            第三, 启动MySQL服务:


            第四,输入mysql -u root -p,进入mysql命令行界面;


            第五,在命令行界面中,使用use mysql,进入对应的mysql数据库中;


            第六,执行update操作,UPDATE user SET authentication_string = PASSWORD('新的密码') WHERE User = 'root';这样的话,密码修改成功。下次就可以用最新密码了,而不会出现上述的错误了。


    比如我这里,设置的最新密码为:123456.下次直接用这个密码就ok了!

           skip-name-resolve    禁止MySQL Server 对外部链接进行DNS解析,可以消除MySQL进行DNS解析的时间。但是如果开启了该选项,那么所有的远程主机连接授权都要使用IP地址,否则MySQL无法正常处理连接请求。

          skip-grant-tables 系统对任何用户的访问都不做任何的访问控制,即在忘记密码的情况下,可以直接登录数据库

          更改密码成功后,可以把这两项去掉的!

          参考文献:

    https://stackoverflow.com/questions/33326065/unable-to-access-mysql-after-it-automatically-generated-a-temporary-password/33332443#33332443

    https://dev.mysql.com/doc/refman/5.7/en/data-directory-initialization-mysqld.html

    http://www.cnblogs.com/timelesszhuang/p/5156572.html



                    

  • 相关阅读:
    WPF DelegateCommand 出现Specified cast is not valid
    WPF DelegateCommand 出现Specified cast is not valid
    WPF DelegateCommand 出现Specified cast is not valid
    win10 sdk 是否向下兼容
    win10 sdk 是否向下兼容
    win10 sdk 是否向下兼容
    PHP extract() 函数
    PHP end() 函数
    PHP each() 函数
    PHP current() 函数
  • 原文地址:https://www.cnblogs.com/cmderq/p/9130840.html
Copyright © 2011-2022 走看看