4

我有这样的查询

UPDATE `database`.`user` 
SET `Password`=Password("test1234!@#$") 
WHERE `UserID`='1234';

我运行了一次,它更新了密码。我在测试中更改了 t 的大小写,它开始失败并显示消息

错误代码:1146。表 'database.Unknown' 不存在。

经过一些实验,我发现删除$字符串中的 允许查询成功运行。我试图用 / 转义字符,但错误仍然发生。列上的排序规则是utf8,它是varchar(50)

查询本身MySQL Workbench 5.2.47MySQL version 5.1.62Community Edition 中执行。

谁能告诉我为什么美元很麻烦。

编辑:它现在正在发生,没有任何特殊字符。我也知道有更安全的方法来散列密码。在这一点上,我只是好奇为什么会发生特定错误。

4

2 回答 2

1

首先推断问题来自工作台:从命令提示符(mysql -u 用户名 -pPassword -h 主机名)或使用 phpmyadmin 登录,然后尝试执行查询。

如果可行,那就是工作台。

然后,您可能首先只想删除工作台中所有已配置的连接设置并重新添加它们。这可能已经解决了您的问题。

如果问题仍然存在,您可以尝试重新安装工作台。

于 2013-04-04T21:35:19.573 回答
0

最终是存在一个触发器,里面有这个

INSERT INTO Unknown VALUES(1);

我不知道这样做的目的是什么,但显然是导致问题的原因。感谢大家的帮助。

于 2013-04-05T14:16:18.887 回答