我已经多次安装 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 建立外部连接 - 请通过主机进行限制和/或不授予所有权限并限制为仅需要的数据库(上面示例中的 *)。