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

标签 mysql mariadb

我刚刚在 macOS Mojave 上安装了 MariaDB 10.4,现在需要为 root 用户设置密码。我读到其他问题,我可以通过实现这一目标

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

但这会引发错误

错误 1348 (HY000):列“authentication_string”不可更新

如果我尝试

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

引发错误

错误 1348 (HY000):“密码”列不可更新

这个

为 'root'@'localhost' 设置密码 = 'mypassword';

抛出

错误 1372 (HY000):密码哈希值应为 41 位十六进制数

还有这个

通过“mypassword”更改使用 mysql_native_password 标识的用户“root”@“localhost”;

抛出

错误 1064 (42000):您的 SQL 语法有错误;检查与您的 MariaDB 服务器版本相对应的手册...

我该如何解决这个问题?

最佳答案

自 MariaDB 10.4 起,mysql.global_priv 已取代 mysql.user。后一个现在是一个 View ,无法再更新。

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

SET PASSWORD=PASSWORD('mypassword')

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

关于mysql - 如何在 macOS 上的 MariaDB 10.4 中设置 root 密码?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59941858/

相关文章:

mysql - 如何合并两个数据库,具有相同的数据,但具有不同的主键,并且没有重复的字段?

php - 通过 php 将查询字符串发布到 mysql,而不是将链接放在地址栏中

php - 使用PHP表单上传PDF到数据库

mysql - 进阶 MySQL 左联接 IFNULL 查询

mysql - 在 MariaDB 中禁用 LOCAL INFILE

mysql - 使用存储过程将用户添加到数据库

php - 在递归函数 php 中重新启动第一个循环

php - 将html和css序列化,存入mysql

mysql - 一张或单独的 MariaDB 表中的价格

MySQL JSON : finding value of sibling element in sub-array