首頁  >  問答  >  主體

[help]centos下安装mysql后,在还未设置密码的情况下无法进入mysql。

1.centos-7.0下安装mysql-5.7
2.此时还没有设置过密码,然后执行mysql命令:mysql -r root
3.提示错误:ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: NO)

网上的方法都是先设置密码。

方案一:
mysqladmin -u root password 123456,结果提示错误:error: 'Access denied for user 'root'@'localhost' (using password: NO)'

方案二:
用mysqld_safe skip-grant-tables进入mysql,然后sql语句修改root密码,还是提示错误:-bash: mysqld_safe: command not found

麻烦大家看看这是什么原因。谢谢大家!

天蓬老师天蓬老师2743 天前694

全部回覆(4)我來回復

  • 阿神

    阿神2017-04-17 13:55:53

    在mysql官方文件裡找到答案了,原來mysql會為root產生一個預設密碼,並且儲存在log檔裡。透過sudo grep 'temporary password' /var/log/mysqld.log可以看到這個密碼。

    mysql官網文件

    回覆
    0
  • 天蓬老师

    天蓬老师2017-04-17 13:55:53

    剛剛看錯了。試試這個
    mysql -u root
      mysql> SET PASSWORD FOR 'root'@'localhost' = PASSWORD('newpass');

    回覆
    0
  • 巴扎黑

    巴扎黑2017-04-17 13:55:53

    前幾天我也遇到過裝了又刪,刪了又裝就是進不去。後來使用原始碼編譯的方法解決了。我裝的是mysql5.6

    回覆
    0
  • 天蓬老师

    天蓬老师2017-04-17 13:55:53

    systemctl stop mysql
    find / -name my*.cnf
    (找到my.cnf檔)
    vim /usr/my.cnf
    在my.cnf檔案的[my.sqld]下新增
    skip-grant-tables
    儲存檔案
    systemctl start mysql
    mysql -u root
    update mysql.user set password=PASSWORD('密碼') where user='root';
    flush privileges;
    exit;
    systemctl restart mysql

    回覆
    0
  • 取消回覆