zoukankan      html  css  js  c++  java
  • 解决MySql ERROR 1698 (28000) 错误:Access denied for user 'root'@'localhost'

    今天尝试在Ubuntu虚拟机上安装MySql 数据库(版本是:5.7.23-0Ubuntu0.18.04.1),数据库安装很简单,就是三行命令:

    1.  
      sudo apt-get install mysql-server # 下载安装mysql的服务端
    2.  
      sudo apt-get install mysql-client # 下载安装mysql的客户端
    3.  
      sudo apt-get install libmysqlclient-dev

    但是,看似很顺利简单的安装过程,在第一次登陆的时候却遇到了麻烦。

    1.  
      ~$ mysql -u root -p
    2.  
      Enter password:
    3.  
      ERROR 1698 (28000): Access denied for user 'root'@'localhost'

    然后,在网上找了很多的教程,最后实验成功的是这个方案:

    解决步骤:

    (1) 停止mysql服务:

    ~$ sudo service mysql stop

    (2)以安全模式启动MySQL:

    ~$ sudo mysqld_safe --skip-grant-tables &

    (3)MySQL启动之后就可以不用密码登陆了:

    1.  
      ~$ mysql -u root
    2.  
      Welcome to the MySQL monitor. Commands end with ; or \g.
    3.  
      Your MySQL connection id is 2
    4.  
      Server version: 5.7.10 MySQL Community Server (GPL)

    (4)查看一下user表,错误的起因就是在这里, root的plugin被修改成了auth_socket,用密码登陆的plugin应该是mysql_native_password。

    1.  
      mysql> select user, plugin from mysql.user;
    2.  
      +-----------+-----------------------+
    3.  
      | user | plugin |
    4.  
      +-----------+-----------------------+
    5.  
      | root | auth_socket |
    6.  
      | mysql.sys | mysql_native_password |
    7.  
      | dev | mysql_native_password |
    8.  
      +-----------+-----------------------+
    9.  
      3 rows in set (0.01 sec)

    (5)关于auth_socket,在官方有说明: https://dev.mysql.com/doc/mysql-security-excerpt/5.5/en/socket-authentication-plugin.html ,反正现在暂时不用它, 那就把这里改了。

    1.  
      mysql> update mysql.user set authentication_string=PASSWORD('newPwd'), plugin='mysql_native_password' where user='root';
    2.  
      Query OK, 1 row affected, 1 warning (0.00 sec)
    3.  
      Rows matched: 1 Changed: 1 Warnings: 1
    4.  
       
    5.  
      mysql> flush privileges;
    6.  
      Query OK, 0 rows affected (0.00 sec)

    (6)重启服务,问题就解决了:

    1.  
      ~$ sudo service mysql stop
    2.  
      ...
    3.  
      * MySQL Community Server 5.7.10 is stopped
    4.  
      ~$ sudo service mysql start
    5.  
      ..
    6.  
      * MySQL Community Server 5.7.10 is started
    7.  
      ~$ mysql -u root -p
    8.  
      Enter password:
    9.  
      Welcome to the MySQL monitor. Commands end with ; or \g.
    10.  
      Your MySQL connection id is 2
    11.  
      Server version: 5.7.10 MySQL Community Server (GPL)
  • 相关阅读:
    org.hibernate.QueryException: could not resolve property
    Eclipse支持文件UTF-8编码
    Eclipse External Tool Configration Notepad++
    WIN10 devtoolsuser
    Linux查看和注销用户(User)
    java list 去重
    监控系统对比 Ganglia vs Open-falcon vs Prometheus vs Zabbix vs Nagios vs PandoraFMS
    swagger 指定字段不显示到文档里
    mysql uuid() 相同 重复
    正则校验:微信号,qq号,邮箱
  • 原文地址:https://www.cnblogs.com/surplus/p/11074002.html
Copyright © 2011-2022 走看看