gpt4 book ai didi

mysql - 无法登录mysql Ubuntu 18.04

转载 作者:行者123 更新时间:2023-11-29 01:35:12 27 4
gpt4 key购买 nike

当我使用这个命令将 mysql 服务器安装到 ubuntu 机器上时

sudo apt-get install mysql-client mysql-server 

命令执行成功,但是在安装过程中mysql没有问我密码,所以我不能登录mysql,除非是root用户,换句话说,如果我在命令行中写这个命令

sudo mysql -uroot -p

即使我每次都更改密码,我也可以登录到 mysql,如果我使用 sudo,服务器不关心密码。那么我该如何解决这个问题(设置新密码)当我登录到 mysql 时,我尝试使用此查询从 mysql.user 表更改密码

mysql> UPDATE mysql.user SET Password= PASSWORD('rootroot') WHERE User = 'root';

但是 mysql.user 表中没有密码列

最佳答案

原因是最近的 Ubuntu 安装(也许还有其他),mysql 默认使用 UNIX auth_socket 插件。

基本上意味着:使用它的 db_users 将被系统用户凭据“授权”。您可以通过执行以下操作来查看您的根用户是否设置如下:

$ sudo mysql -u root # I had to use "sudo" since is new installation

mysql> USE mysql;
mysql> SELECT User, Host, plugin FROM mysql.user;

+------------------+-----------------------+
| User | plugin |
+------------------+-----------------------+
| root | auth_socket |
| mysql.sys | mysql_native_password |
| debian-sys-maint | mysql_native_password |
+------------------+-----------------------+

正如您在查询中看到的,root 用户正在使用 auth_socket 插件

有两种方法可以解决这个问题:

可以设置root用户使用mysql_native_password插件您可以使用 system_user 创建一个新的 db_user (推荐)选项 1:

$ sudo mysql -u root # I had to use "sudo" since is new installation

mysql> USE mysql;
mysql> UPDATE user SET plugin='mysql_native_password' WHERE User='root';
mysql> FLUSH PRIVILEGES;
mysql> exit;

$ service mysql restart

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

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com