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  ***;    //重新再删除一边 
flush privileges;   //刷新数据权限

       
       
       
       
  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信息。授权GRANT ALL PRIVILEGES ON *.* TO '用户'@'要指定的IP地址' IDENTIFIED BY '设置的密码' WITH GRANT OPTION;这里不指定ip可以空着或者%

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
       
       
       
posted @ 2019-05-21 15:27  林山风火  阅读(1191)  评论(0编辑  收藏  举报