mysql - Linux MySQL - 无法登录root

标签 mysql linux

所以我为 Ubuntu 上的所有应用程序/设置编写了这个安装程序脚本,我最近在升级到 16.04 后使用了它。它所做的事情之一就是安装 mysql。我以一种特殊的方式来终止这些用户提示,因为我不希望我的脚本因用户输入而停止。下面是代码:

sudo DEBIAN_FRONTEND=noninteractive apt-get install -qq -y mysql-server

现在,我尝试从终端登录 mysql,但无法登录。它已安装并正在运行,但 root 用户的访问始终被拒绝。

mysqladmin -u root -p password
Enter password: 
mysqladmin: connect to server at 'localhost' failed
error: 'Access denied for user 'root'@'localhost''

我没有输入任何密码,因为我在任何时候都没有设置密码。

有人知道如何解决这个问题吗?谢谢。

最佳答案

如果你想为root设置密码:

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

If you install 5.7 and don’t provide a password to the root user, it will use the auth_socket plugin. That plugin doesn’t care and doesn’t need a password. It just checks if the user is connecting using a UNIX socket and then compares the username.

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

因此,为了将插件更改回mysql_native_password:

  1. 使用 sudo 登录:

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

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

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

仅供记录,还有另一种方法可以仅更改插件而不提供密码(将其留空):

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

关于mysql - Linux MySQL - 无法登录root,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36659798/

相关文章:

javascript - 无法添加外键约束

mysql - Percona 5.6 Docker 镜像无法加载 my/etc/mysql/conf.d/*.cnf

linux - Bash 权限被拒绝

php - 在另一个表中按值排序php mysql

C# 数据库搜索(如何创建查询字符串)

c - 无需轮询即可读取多条 UDP 消息

c - 在内核中添加中断服务例程

linux - ChefDK Policyfile工作流程——如何上传第三方cookbooks?

MySql:如果在函数内部或外部调用,相同的 select count(*) 查询将返回不同的结果

mysql - 存在外键约束时更改 MySQL 主键