3

我刚刚安装了 ubuntu 18.04 并在其上安装了 LAMP,但是我在没有 root 权限的情况下使用 mysql 时遇到了麻烦。当我写:

mysql -u 根目录 -p

并输入我配置的密码,它会拒绝访问。除非我写

sudo mysql -u root -p

并输入我可以连接的密码。但我不希望 sudo 导致它阻止工作台连接到 mysql,同样适用于 phpmyadmin。关于如何解决这个问题的任何提示?

4

4 回答 4

6

它应该只是需要 sudo 的“-u root”用户。无论如何,最好不要使用 root 进行大多数访问,因此只需使用 sudo 以 root 身份登录并创建一个新用户:

CREATE USER 'newuser'@'localhost' IDENTIFIED BY 'password';

GRANT ALL PRIVILEGES ON database_name.* TO 'newuser'@'localhost';

然后你应该能够在没有 sudo 的情况下访问“mysql -u newuser”。

于 2018-05-01T07:37:22.983 回答
4

我昨天也遇到了这个问题。要解决此问题,请执行以下步骤:

  1. 连接到 MySQL:sudo mysql -u root
  2. 检查 db 中的 mysql 用户:SELECT User,Host FROM mysql.user;
  3. 删除 root 用户帐户:DROP USER 'root'@'localhost';
  4. 重新创建根用户:CREATE USER 'root'@'%' IDENTIFIED BY ''
  5. 将所有权限授予 root 用户:GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' WITH GRANT OPTION;
  6. 为root用户设置密码:ALTER USER 'root'@'%' IDENTIFIED BY 'yourpassword';

而已!现在您应该能够连接 MySQL。

于 2018-05-01T07:34:06.530 回答
1

我在工作台中使用 Ubuntu 18.04 和 mysql 版本 5.7,但通过执行以下 10 个步骤解决了这个问题

  1. 连接到 MySQL:sudo mysql -u root
  2. 检查 db 中的 mysql 用户:SELECT User,Host FROM mysql.user;
  3. 删除 root 用户帐户:DROP USER 'root'@'localhost';
  4. SET GLOBAL validate_password_length = 5;
  5. SET GLOBAL validate_password_number_count = 0;
  6. SET GLOBAL validate_password_mixed_case_count = 0;
  7. SET GLOBAL validate_password_special_char_count = 0;
  8. SET GLOBAL validate_password_policy = LOW;
  9. 重新创建根用户:CREATE USER 'root'@'%' IDENTIFIED BY 'admin'
  10. 将所有权限授予 root 用户:GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' WITH GRANT OPTION;
于 2019-03-03T18:57:43.253 回答
1

在此处输入图像描述1. UPDATE mysql.user SET plugin = 'mysql_native_password' WHERE user = 'root' AND plugin = 'unix_socket';

2.冲洗特权;

于 2021-03-21T09:39:23.433 回答