我正在为本地环境设置一个项目,它的初始脚本是一些用于创建数据库的SQL命令:
create database 'db-name' default character set utf8;并访问用户帐户的grant特权:
grant select, insert, update, delete, create, drop, index, alter on 'db-name'.* to 'user-name-too-long-for-user-name'@'localhost' identified by 'user-name-pass'当我试图运行grant命令时,我得到以下内容:
ERROR 1470 (HY000): String 'user-name-to-long-for-user-name' is too long for user name (should be no longer than 16)我不明白为什么会发生这种情况,而同样的脚本在我的脚本出现之前已经成功地运行到了另一个环境。
我使用的服务器版本是5.6.20 MySQL社区服务器(GPL)。
这种情况与某个MySQL版本或其他什么版本有关吗?
发布于 2016-08-25 09:05:15
MySQL中用户名的最大长度取决于版本如手册所述:
MySQL用户名可以长达32个字符(在MySQL 5.7.8之前的16个字符)。
发布于 2022-05-06 05:51:48
工作时间为10.7.3-MariaDB
USE mysql;
ALTER TABLE db CHANGE User User CHAR(48) NOT NULL DEFAULT '';
ALTER TABLE user CHANGE User User CHAR(48) NOT NULL DEFAULT '';
ALTER TABLE columns_priv CHANGE User User CHAR(48) NOT NULL DEFAULT '';
ALTER TABLE procs_priv CHANGE User User CHAR(48) NOT NULL DEFAULT '';
ALTER TABLE proxies_priv CHANGE User User CHAR(48) NOT NULL DEFAULT '';
ALTER TABLE tables_priv CHANGE User User CHAR(48) NOT NULL DEFAULT '';重新启动mysql
https://dba.stackexchange.com/questions/147857
复制相似问题