Ubuntu Server MySQL - 无法以root用户身份访问

时间:2013-02-01 21:05:07

标签: mysql linux ubuntu

我是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个包并重新安装它们无济于事。谷歌没有得到任何帮助:(

7 个答案:

答案 0 :(得分:6)

打开终端并运行sudo dpkg-reconfigure mysql-server为mysql提供新密码

mysql -uroot -p,提供新创建的密码

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

答案 1 :(得分: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

答案 2 :(得分:2)

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

  

如果您安装了5.7并且没有为root用户提供密码,那么   将使用auth_socket插件。该插件并不关心   不需要密码。它只是检查用户是否正在连接   使用UNIX套接字,然后比较用户名。

取自Change User Password in MySQL 5.7 With "plugin: auth_socket"https://askubuntu.com/a/801950/395418

因此,为了将plugin更改回mysql_native_password

  1. 使用sudo登录:

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

    ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'test';
    
  3. 当然您也可以使用上面的命令设置一个空密码。

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

        update mysql.user set plugin = 'mysql_native_password' where User='root';
        FLUSH PRIVILEGES;
    

答案 3 :(得分:1)

在重置密码之前,请尝试:

mysql -u root -p

在此之后你必须写下你的密码(不要担心,如果你没有看到*这是正常的)并按下返回按钮。

答案 4 :(得分: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

答案 5 :(得分:0)

您需要设置MySQL

$ mysqladmin -u root password NEWPASSWORD

答案 6 :(得分:0)

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

您可以找到完整的密码重置程序here