我刚刚在macOS Mojave上安装了MariaDB 10.4,现在我需要为root
用户设置密码。我阅读了其他有关SO的问题,我可以通过
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...
我该如何解决?
答案 0 :(得分:5)
自MariaDB 10.4 mysql.global_priv
以来,已替换mysql.user
。现在是一个视图,无法再对其进行更新。
由于您已经以root用户身份登录,因此请保持简单并使用以下命令更改密码:
SET PASSWORD=PASSWORD('mypassword')
由于无法再通过套接字对用户进行身份验证,因此身份验证方法将自动设置为mysql_native_password。
答案 1 :(得分:0)
对于mysql用户:
SET password for 'mysql'@'localhost' = password('mypassword');
答案 2 :(得分:0)
只需在此处添加一些内容-有时您必须运行flush privileges;
才能尝试设置密码。
所以命令将是:
flush privileges;
SET PASSWORD FOR root@localhost = PASSWORD("some_password");
flush privileges;