MariaDB 没有 root 用户密码

MariaDB 没有 root 用户密码

我已经多次安装 MariaDB,它从未要求我创建 root 密码。结果就是我无法进入并创建数据库。显然我做错了什么,但我找不到是什么!

答案1

对于 MySQL 5.7.6 及更新版本以及 MariaDB 10.1.20 及更新版本,使用以下命令。

ALTER USER 'root'@'localhost' IDENTIFIED BY 'new_password';

对于 MySQL 5.7.5 及更早版本以及 MariaDB 10.1.20 及更早版本,使用:

SET PASSWORD FOR 'root'@'localhost' = PASSWORD('new_password');

答案2

基本上,您可以从 root shell 以 root 身份从 localhost 连接,无需密码。
如果您不知道 root 密码,有一种方法可以启动 mysql,而无需使用存储用户和密码的 mysql db。使用 sudo 运行每个命令,mysql 控制台命令除外:

# service mysql stop
# mysqld_safe --skip-grant-tables &

# mysql -u root
use mysql;
update user set password=PASSWORD('NEWPASSWORD') where User='root';
flush privileges;
exit;

# service mysql restart

现在您可以使用新密码登录:# mysql -u root -p

更新:最好不要更改 root 密码,而是创建具有所有权限的新用户,该用户只能从本地主机连接。在 mysql 控制台中执行以下操作:

CREATE USER 'newuser'@'localhost' IDENTIFIED BY 'password';
GRANT ALL PRIVILEGES ON * . * TO 'newuser'@'localhost';

如果您需要与 mysql 建立外部连接 - 请通过主机进行限制和/或不授予所有权限并限制为仅需要的数据库(上面示例中的 *)。

相关内容