MySQL执行INSERT语句报错“Unknown column 'localhost.localdomain' in 'field list'”如何解决?
解决MySQL Insert语句的“Unknown column”错误
嘿,这个小坑我之前刚踩过!你遇到的问题很明确:MySQL把你要插入的localhost.localdomain当成了列名来解析,而不是字符串值,所以才会抛出“Unknown column 'localhost.localdomain' in 'field list'”的错误。
错误原因
你写的原始语句里,大概率是给Host字段的值没加单引号(或者不小心用了反引号)。MySQL的规则是:字符串类型的字段值必须用单引号(')包裹,否则会被当作列名/标识符处理。
修改后的正确语句
把所有字符串类型的字段值用单引号括起来就可以了,修改后的SQL如下:
INSERT INTO user (Host, User, Password) VALUES ('localhost.localdomain', 'elcastle', PASSWORD('elca110'));
额外小贴士
- 如果你是使用MySQL 5.7及以上版本,
PASSWORD()函数已经被官方弃用了,更推荐用SHA2('elca110', 256)来生成密码哈希,或者直接用CREATE USER语句来创建用户,比如:
这样更符合现代MySQL的最佳实践哦。CREATE USER 'elcastle'@'localhost.localdomain' IDENTIFIED BY 'elca110';
内容的提问来源于stack exchange,提问作者alperen köksal
相关产品推荐
相关产品推荐

