我有这样的查询
UPDATE `database`.`user`
SET `Password`=Password("test1234!@#$")
WHERE `UserID`='1234';
我跑了一次,它更新了密码。我在测试中改变了t的情况,并且它开始失败并显示消息
错误代码:1146。表'database.Unknown'不存在。
经过一些实验,我发现删除字符串中的$
可以使查询成功运行。我试图用/逃避角色,但仍然发生了错误。列上的排序规则为utf8
,为varchar(50)
。
查询本身正在MySQL Workbench 5.2.47
和MySQL version 5.1.62
社区版上执行。
任何人都可以告诉我为什么$很麻烦。
编辑:现在没有任何特殊字符。我也知道有更安全的散列密码方法。我只是好奇为什么会发生特定的错误。
答案 0 :(得分:1)
首先从工作台中扣除问题: 从命令提示符(mysql -u Username -pPassword -h hostname)或phpmyadmin登录,然后尝试执行查询。
如果有效,那就是工作台。
然后,您可能首先要删除工作台中所有已配置的连接设置并重新添加它们。这可能已经解决了你的问题。
如果问题仍然存在,您可以尝试重新安装工作台。
答案 1 :(得分:0)
结束了存在其中的触发器
INSERT INTO Unknown VALUES(1);
我不知道这是什么目的,但显然导致了这个问题。感谢大家的帮助。