What is the default root pasword for MySQL 5.7

前端 未结 13 1231
梦谈多话
梦谈多话 2020-12-22 16:55

Cannot login to MySQL database after fresh install with root ID and empty/no password like other older MySQL versions do

13条回答
  •  慢半拍i
    慢半拍i (楼主)
    2020-12-22 17:33

    There's so many answers out there saying to reinstall mysql or use some combo of

    mysqld_safe --skip-grant-tables
    

    and / or

    UPDATE mysql.user SET Password=PASSWORD('password')
    

    and / or something else ...

    ... None of it was working for me


    Here's what worked for me, on Ubuntu 18.04, from the top

    With special credit to this answer for digging me out of the frustration on this ...

    $ sudo apt install mysql-server
    $ sudo cat /etc/mysql/debian.cnf
    

    Note the lines which read:

    user     = debian-sys-maint
    password = blahblahblah
    

    Then:

    $ mysql -u debian-sys-maint -p
    Enter password: // type 'blahblahblah', ie. password from debian.cnf
    
    mysql> USE mysql
    mysql> SELECT User, Host, plugin FROM mysql.user;
    +------------------+-----------+-----------------------+
    | User             | Host      | plugin                |
    +------------------+-----------+-----------------------+
    | root             | localhost | auth_socket           |
    | mysql.session    | localhost | mysql_native_password |
    | mysql.sys        | localhost | mysql_native_password |
    | debian-sys-maint | localhost | mysql_native_password |
    +------------------+-----------+-----------------------+
    4 rows in set (0.00 sec)
    
    mysql> UPDATE user SET plugin='mysql_native_password' WHERE User='root';
    mysql> COMMIT;  // When you don't have auto-commit switched on
    

    Either:

    mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY 'new_password';
    

    Or:

    // For MySQL 5.7+
    UPDATE mysql.user SET authentication_string=PASSWORD('new_password') where user='root';
    

    Then:

    mysql> FLUSH PRIVILEGES;
    mysql> COMMIT;  // When you don't have auto-commit switched on
    mysql> EXIT
    
    $ sudo service mysql restart
    $ mysql -u root -p
    Enter password: // Yay! 'new_password' now works!
    

提交回复
热议问题