3

我是新手Ubuntu Server,我做了命令:

sudo apt-get install mysql-server mysql-common mysql-client

一切顺利,我被带回命令行。当我输入:

mysql -u root

我有一个错误说Access denied for user 'root'@'localhost' (using password: NO)。任何想法我做错了什么?我尝试删除所有 3 个软件包并重新安装它们无济于事。谷歌证明没有帮助:(

4

7 回答 7

6

打开终端并运行sudo dpkg-reconfigure mysql-server给mysql的新密码

mysql -uroot -p, 给出新创建的密码

注意:您可能必须在第一个命令中添加 mysql 版本 例如:dpkg-reconfigure mysqlserver-4.3

于 2013-02-03T19:23:32.007 回答
4

对于较新版本的 MySQL(对于 MariaDB < 10.2,请使用底部的查询,因为它不支持更改用户但仍使用 auth_socket)

如果您安装 5.7 并且不向root用户提供密码,它将使用该auth_socket插件。该插件不在乎,也不需要密码。它只是检查用户是否使用 UNIX 套接字进行连接,然后比较用户名。

取自使用“插件:auth_socket”https://askubuntu.com/a/801950/395418在 MySQL 5.7 中更改用户密码

所以为了把plugin后面改成mysql_native_password

  1. 使用 sudo 登录:

    sudo mysql -u root
    
  2. plugin使用单个命令更改和设置密码:

    ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'test';
    

当然你也可以使用上面的命令设置一个空密码。

只是为了记录,还有另一种方法可以只更改plugin而不提供密码(将其留空):

    update mysql.user set plugin = 'mysql_native_password' where User='root';
    FLUSH PRIVILEGES;
于 2017-04-04T14:34:41.573 回答
2

一种方法是

/etc/init.d/mysql stop
mysqld_safe --skip-grant-tables &
mysql

然后你将登录到mysql,输入以下内容:

use mysql;
update user set password='*6C8989366EAF75BB670AD8EA7A7FC1176A95CEF4' where User='root';
flush privileges;

之后,停止mysql,启动正常

/etc/init.d/mysql stop
/etc/init.d/mysql start
mysql -u root -p

您的密码应该是:mypass

于 2014-03-03T12:08:31.590 回答
1

在重置密码之前,请尝试以下操作:

mysql -u root -p

在此之后,您必须输入您的密码(如果您没有看到任何 *,请不要担心,这是正常的),然后按返回按钮。

于 2013-02-01T21:14:36.750 回答
1

你需要设置 MySQL

$ mysqladmin -u root password NEWPASSWORD
于 2013-02-01T21:09:05.343 回答
1

mysql 5.7.12上测试

/etc/init.d/mysql stop
/usr/local/mysql/bin/mysqld_safe --skip-grant-tables &
/usr/local/mysql/bin/mysql

然后从打开的 sql 控制台键入以下命令:

UPDATE mysql.user 
    SET authentication_string = PASSWORD('MyNewPass'), password_expired = 'N'
    WHERE User = 'root' AND Host = 'localhost';
FLUSH PRIVILEGES;
exit;

停止当前进程并重新启动它。然后测试新密码(应该是MyNewPass)。

/etc/init.d/mysql stop
/etc/init.d/mysql start
/usr/local/mysql/bin/mysql -u root -p
于 2016-04-14T10:00:29.247 回答
0

要设置忘记的密码,您需要停止 mysql 守护程序,使用该--skip-grant-tables选项启动它,然后使用 更改当前密码mysqladmin -u root password NEWPASSWORD

您可以在此处找到完整的密码重置程序。

于 2013-02-01T22:13:44.300 回答