mysql数据库使用中的常见报错类型解析
常见的报错类型:(更新ing)
报错分类 | 报错信息 | 错误解析 | 备注 |
ERROR 1044 (42000):Access denied for user |
数据库拒绝 |
常见于用户授权不足。可登陆root用户,变更当前用户的对应权限。 |
|
ERROR 1045 (28000): Access denied for user *** (using password: YES) | 数据库拒绝,登录密码错误 | 核实登录密码 | |
|
|||
ERROR 1054 (42S22): Unknown column *** in 'where clause' |
根据限定条件无法找到指定的列内容 |
检查输入的列内容及限制条件是否正确 |
|
ERROR 1064 (42000): You have an error in your SQL syntax; |
语法错误:在语句中出现错误 |
1.检查语法是否符合规定的语法规则,如登录时@符号后是否有空格 2.查看是否使用了保留字,找到对应的保留字,不是必须的建议修改,尽量不和保留字冲突。如果确实得用 ,就用反引号(’ ‘)把内容引起来
|
|
ERROR 1072 (42000): Key column '***' doesn't exist in table | 引用的***字段,不存在 | 检查是否拼写错误 | |
ERROR 1130: Host 10.0.0.1 is not allowed to connect to this MySQL server |
不允许通过ip地址10.0.0.1访问指定数据库 |
指定登录主机信息错误。登录root用户,修改用户登录主机信息 |
|
ERROR 1133 (42000): Can't find any matching row in the user table | 在user表中未找到指定的用户 |
可以用flush privileges;刷新一遍,再试。如果还不行的话,核实用户信息是否正确,存在。 |
|
ERROR 1142 (42000): CREATE command denied to user 'guest04' | 数据库拒绝执行创建命令,‘guest04’无相关的授权 | 查看确认授权情况。确实有需要,在root用户登陆后添加相应授权 | |
ERROR 1144 (42000): Illegal GRANT/REVOKE command; | 授权内容不合法 | ||
ERROR 1227 (42000): Access denied; you need (at least one of) the CREATE USER privilege(s) for this operation | 数据库拒绝执行,原因是没有取得相应动作的授权(此处为创建用户) | 查看确认授权情况。确实有需要,在root用户登陆后添加相应授权 | |
ERROR 1241 (21000): Operand should contain 1 column(s) | 进行子查询的时候,选项需要1列但选择对象不唯一。 | ||
ERROR 1248 (42000): Every derived table must have its own alias | 在多级查询中,派生出来的表格需要加一个别名。 | 这是为了保证每个派生出来的表都需要有一个自己的别名。 | |
ERROR 1396 (HY000): Operation CREATE USER failed for *** | 创建用户失败 |
查看下用户,确认要创建的用户是否已经存在,如果是刚刚删除,可以用下面步骤尝试解决 drop user ***; //重新再删除一边 |
|
ERROR 1701 (42000): Cannot truncate a table referenced | 清空失败,还有外键关联的情况下,无法情况当前数据表 | ||
ERROR 1819 (HY000): Your password does not satisfy the current policy requirements | 密码策略异常信息:格式不符合当前密码格式需求 | ||
ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2) | mysql的服务端,服务未启动,或者出现mysql进程异常 ,通过mysql.server status查看 |
手动重启一下mysql服务,windows找到mysql服务,macbook中系统偏好中找到mysql服务重启 或者执行命令 sudo /usr/local/mysql/support-files/mysql.server stop
sudo /usr/local/mysql/support-files/mysql.server start |
|
远程链接mysql ERROR 2003 - Can't connect to MySQL server on '49.234.38.164' (60 "Operation timed out") | 远程链接超时,可能的错误情况有,远程mysql服务未开启;mysql默认绑定只能本地登录;当前用户没有远程登录的权限;防火墙没有开放3306端口;如果是云服务器可能没有配置3306端口的安全规则 |
1,先ping一下目标ip看是否能通,然后,telnet ip 端口,查看是否能访问端口。 2,查看mysql的安装、启用情况,systemctl status mysql 3,查看mysql的配置文件,my.ini,或者my.cnf或者mysql.conf.d/mysqld.cnf,注释掉bind-address,可以顺便添加上skip-external-locking 以及skip-name-resolve 4,对于用户是否能异地登录,查看user表中用户host信息。授权 5,查看防火墙状态,防火墙开放3306端口,ubuntu系统sudo ufw allow 3306,使用sudo ufw status查看.其他linux使用firewall -cmd ***操作 6,云服务器中,阿里云在权限管理中添加安全规则开放3306.腾讯云,在防火墙中添加开放端口 |
|
macOS中,使用系统偏好中手动启动mysql服务时,启动不起来 | 配置信息或者文件权限有误 | 查看~/.bash_profile,路径是否正确,~/.bashrc,分别source ***重新载入一下,/etc/my.cnf设置情况查看,使用 ls -l my.cnf查看权限设置,本机必须是读写执行权限,7**,一般可以700或者744 | |
ERROR! The server quit without updating PID file (***) | 使用终端,命令行启动mysql服务端的时候,执行mysql.server start,出现的报错, | 网上多个解释,最后也没解决,mac上,只能手动到偏好设置中,启动服务 | |
ERROR! MySQL is running but PID file could not be found
ERROR! Multiple MySQL running but PID file could not be found (13423 13507 ) |
mysql进程异常,执行mysql.server status 报异常 | 不影响使用时暂时忽略下,也是没找到最终解决方法,找到mysql所有进程,ps -ef | grep mysql,kill | |