mysql query报错怎么解决

上周我的朋友在使用MySQL时遇到了查询错误。
他按照以下步骤一步步解决问题:
1 .他先仔细阅读了错误信息,发现是语法错误,错误码是1 06 4 2 、然后他检查SQL语句,发现少了方括号。
3 、然后他确认数据库连接,发现连接设置中的用户名拼写错误。
4 、再次检查表结构和数据,确认表和列存在,数据类型匹配。
5 、检查权限时,发现该用户没有SELECT权限。
6 、他还开启了MySQL错误日志,发现问题是查询超时导致的。
7 . 最终,他在官方文档和社区中发现了类似的案例,并修复了该问题。

这个过程相当繁琐,但问题最终还是解决了。
你就会明白,下次遇到类似情况时可以尝试这些方法。
没关系。

mysql主从复制或其他操作报错ERROR 1064 (42000): You have an er

是的,这就是问题所在。
SQL语法错误,参数中没有逗号。
仔细检查命令,并在参数中添加逗号。
做!谨慎是关键。

MySQL 修改密码报错:ERROR 1064 (42000),如何解决?

不幸的是,我多次遇到这个问题。
记得有一次在论坛上看到一位兄弟说他的MySQL在修改密码时出现错误ERROR 1 06 4 (4 2 000)。
这是相当令人头疼的事情。
当我查看它时,发现它使用了过时的 SQL 语法,需要更新。

当时我不明白为什么这个密码不能改?查阅资料发现,从MySQL 5 .7 .6 版本开始,他们删除了PASSWORD()函数和直接操作mysql.user表的方法,而是使用了ALTERUSER语句。

有几种方法可以解决这个问题:
1 使用 MySQL 推荐的标准更改密码语句。
这个比较简单。
格式如下:CHANGE USER '用户名'@'主机名' IDENTIFIED BY '新密码';。
例如,如果我有一个名为 wang 的用户,我会写 ALTER USER 'wang'@'localhost' IDENTIFIED BY 'NewPass1 2 3 !';指挥中。

2 如果你还在使用老版本的认证插件,并且想要兼容的话,可以选择第二种方法,即ALTER USER 'username'@'hostname' IDENTIFIED WITH mysql_native_password BY 'new pass';。
当您的应用程序或客户端不支持默认的 caching_sha2 _password 插件时,通常会使用此方法。

操作步骤首先要使用命令行登录MySQL,即输入mysql -uroot -p,然后输入管理员密码。
接下来,执行刚才提到的密码更改命令。
如果遇到权限错误,必须使用root用户执行,或者先给root用户授予权限,使用GRANT ALL PRIVILEGES ON。
TO 'root'@'localhost' WITH GRANT OPTION;,然后删除私有权利;刷新权限。

注意:新密码必须符合MySQL的密码政策。
注意长度和特殊字符。
您还必须确保用户名@主机名组合存在。
您可以使用 SELECT User, Host FROM mysql.user WHERE User='wang';检查。

此外,如果您使用的是MySQL 8 .0或更高版本,则默认设置为caching_sha2 _password插件。
如果你想降级到mysql_native_password,你必须显式声明它。

常见问题,如Access Denied错误,表示当前用户没有修改权限,所以必须使用root用户或者有UPDATE权限的账户。
还有错误提示Plugin 'mysql_native_password' is not returned,所以需要检查MySQL是否支持该插件。

综上所述,按照这几个方法,基本可以解决由于语法不兼容导致的ERROR 1 06 4 错误,安全修改密码。