MySQL root密码设置以及sudo mysql VS mysql

MySQL root密码设置以及sudo mysql VS mysql

我的问题可能会重复,因为我搜索了很多东西,但是由于对 MySQL 很陌生并且对 Ubuntu 有点熟悉,所以我正在使用 Raspberry Pi 并尝试安装 MySQL 服务器来拉伸图像。

使用以下命令安装 MySQL 服务器:

 sudo apt install mariadb-server

默认情况下,MySQL 安装时没有设置任何密码,这意味着您无需任何身份验证即可访问 MySQL 服务器。

将 MySQL 服务器软件安装到 Raspberry Pi 后,我们现在需要为“root”用户设置密码来保护它。

运行以下命令开始 MySQL 安全进程

  sudo mysql_secure_installation

发生以下事情后,我更改了密码并回答了其余的问题y,然后继续前进。

 In order to log into MySQL to secure it, we'll need the current
 password for the root user.  If you've just installed MySQL, and
 you haven't set the root password yet, the password will be blank,
 so you should just press enter here.

 Enter current password for root (enter for none): 
 OK, successfully used password, moving on...

 Setting the root password ensures that nobody can log into the MySQL
 root user without the proper authorisation.

 Set root password? [Y/n] Y
 New password: 
 Re-enter new password: 
 Password updated successfully!
 Reloading privilege tables..
 ... Success! 

现在,当我使用以下命令访问 MySQL 服务器时

 sudo mysql -u root -p

它要求输入密码,因此我输入密码,按照上面设置的输入方法输入,然后它就可以正常工作了。

但奇怪的是,即使我输入完后只需按下回车键,sudo mysql -u root -p它也能正常工作。

当我输入密码时, mysql -u root -p它要求我输入上面设置的密码,但不幸的是,这次它不起作用,并给出了错误

    ERROR 1698 (28000): Access denied for user 'root'@'localhost'

有人能帮助我为什么会发生这种情况以及我哪里做错了吗?

答案1

根用户需要“sudo”。使用以下命令创建新用户:

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

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

现在新用户无需 sudo 即可登录:

mysql -u newuser -p

相关内容