MariaDB 10.6修改authentication_string遇ERROR 1356问题求助
解决MariaDB 10.6中UPDATE mysql.user报错及正确的用户认证配置方法
问题原因
MariaDB 10.4及以上版本里,mysql.user已不再是物理表,而是一个视图,直接执行UPDATE mysql.user会触发引用无效或权限类错误(ERROR 1356),必须使用官方推荐的ALTER USER语句管理用户认证信息。
正确操作步骤
1. 登录MariaDB
沿用你当前的登录方式即可:
sudo mariadb -u root
2. 将root用户密码设为空
如果需求是让root无需密码登录,执行以下标准ALTER USER语句:
ALTER USER 'root'@'localhost' IDENTIFIED BY '';
3. 切换为Unix Socket认证(可选)
若需要root通过系统用户权限直接登录(即sudo mariadb无需输入密码),可配置为socket认证:
ALTER USER 'root'@'localhost' IDENTIFIED VIA unix_socket;
4. 立即生效权限(可选)
执行完上述操作后,若要让配置立即生效,可执行:
FLUSH PRIVILEGES;
错误语法纠正
你之前尝试的ALTER USER root SET authentication_string=''属于错误语法,MariaDB中修改用户认证信息的标准格式是ALTER USER '用户名'@'主机' IDENTIFIED BY '密码';(空密码用''替代),而非SET authentication_string写法。
内容的提问来源于stack exchange,提问作者sandy560
相关产品推荐
相关产品推荐

