如何在 macOS 上的 MariaDB 10.4 中设置 root 密码?

问题描述 投票:0回答:5

我刚刚在 macOS Mojave 上安装了 MariaDB 10.4,现在需要为

root
用户设置密码。我读到其他问题,我可以通过

实现这一点
sudo mysql -u root
MariaDB [mysql]> UPDATE mysql.user SET authentication_string = PASSOWRD('mypassword') WHERE user = 'root';

但这会引发错误

ERROR 1348 (HY000): Column 'authentication_string' is not updatable

如果我尝试

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

引发错误

ERROR 1348 (HY000): Column 'Password' is not updatable

这个

set password for 'root'@'localhost' = 'mypassword';

投掷

ERROR 1372 (HY000): Password hash should be a 41-digit hexadecimal number

还有这个

alter user 'root'@'localhost' identified with mysql_native_password by 'mypassword';

投掷

ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version...

我该如何解决这个问题?

mysql mariadb
5个回答
12
投票

对于 10.4,我必须运行此命令来强制 root 用户输入密码提示:

FLUSH PRIVILEGES;
ALTER USER root@localhost IDENTIFIED VIA mysql_native_password; 
USING PASSWORD('mySecretPassword');
FLUSH PRIVILEGES;

看起来安装过程已更改为默认使用 unix_socket 身份验证插件 https://mariadb.com/kb/en/authentication-from-mariadb-104/


9
投票

自 MariaDB 10.4 起,

mysql.global_priv
已取代
mysql.user
。后一个现在是视图,无法再更新。

由于您已经以 root 身份登录,因此请保持简单并通过以下方式更改密码:

SET PASSWORD=PASSWORD('mypassword')

由于用户无法再通过套接字进行身份验证,因此身份验证方法将自动设置为 mysql_native_password。


5
投票

如果更新命令给出类似

column 'password' is not updatable
的错误 然后使用 alter 命令代替。

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

然后

flush privileges;

然后在 config.inc.php 文件中更新此密码,以便您可以访问 http://localhost/phpmyadmin


3
投票

只是在此处添加一些内容 - 有时您必须在尝试设置密码之前运行

flush privileges;
。 所以命令将是:

flush privileges;
SET PASSWORD FOR root@localhost = PASSWORD("some_password");
flush privileges;

0
投票

对于 mysql 用户:

SET password for 'mysql'@'localhost' = password('mypassword');
© www.soinside.com 2019 - 2024. All rights reserved.