0
点赞
收藏
分享

微信扫一扫

mysql本人常遇到的错误码及解决办法(27种)


mysql(本人遇到到错误码及解决办法)

1045

ER_ACCESS_DENIED_ERROR

访问被拒绝
数据库服务器/数据库用户名/数据库名/数据库密码错误

2020年03月26日 再次遇到
  1045'failed to create new session' 没有空间啦,清理一下空间
2020年06月24日
  1045 Access denied for user 'root'@'xxx.xxx.xxx.xxx' (using password: YES) 
  本地登录密码可能错误,远程登录远程授权没有开 
  本人是远程权限没开给我(此处本人用途数据表生成modle)
2020年12月29日
  本人链接同事数据库,无法用root,后来其创建了新的用户

1048

ER_BAD_NULL_ERROR

pymysql.err.IntegrityError: (1048, 'Unknown error 1048')
某些字段不能为空(这个bug好难解呀,我与数据表一个一个比对的)

1049

ER_BAD_DB_ERROR

pymysql.err.InternalError: (1049, 'Unknown error 1049')
连接数据库错误,检查ip,端口,账号,密码,数据库名是否有误

1050

ER_TABLE_EXISTS_ERROR

背景:1050, "Table 'crm_userprofile' already exists"
)
处理方法:删除相应的表重建了

一只叫做Unix的猫解决方法

1.主从数据结构中,主库新建a表操作,从库已有a表;
2.单表中,建表重复,建议新建表最好使用 create table xx if no exist;
解决办法:
1.从库drop table a;删除原先表;
2.停掉从库的mysql服务器,mysqladmin -S /tmp/mysql3316.sock -u -p shutdown 关闭数据库
3.重启从库,启动slave模式;/usr/local/mysql/bin/mysqld_safe --defaults-file=/data/mysql/mysql3317/my3317.cnf & 重启数据库
mysql>slave start;

1054

ER_BAD_FIELD_ERROR

1054, "Unknown column 'password' in 'field list'"
字段与数据库不一样(数据表中有未知的列, 本人实在ORM模型中遇到的,检查改为相同即可)

1060

ER_DUP_FIELDNAME

1060,字段名重复了,(本人当时做ddl,sql导入,进行SQL解析出同样两个索引,故报错

1062

ER_DUP_ENTRY

pymysql.err.IntegrityError: (1062, '')
		unique=True,某字段是唯一存在的,报错就是因为数据库中的该值已经重复存在
		修改方法:1、删除数据库中的重复数据,2、或者允许某字段值重复存在(即修改索引)

1067

ER_INVALID_DEFAULT

无效的默认值

1089

Incorrect prefix key

1089 - Incorrect prefix key; 
the used key part isn't a string, 
the used length is longer than the key part, 
or the storage engine doesn't support unique prefix keys
本人猜测因为建表后修改表的字段属性,导致了冲突
本人复制了属性从新建个空表,或者删除表的数据保存即可。或者修改表中字段

1130

无法远程连接

原因:mysql服务器 root 默认只允许 localhost 也就是 127.0.0.1 连接
 use mysql;
 允许任何IP链接 update user set host = '%' where user ='root';
 刷新权限 flush privileges;

1136

传入参数个数不相同

原因:mysql服务器 root 默认只允许 localhost 也就是 127.0.0.1 连接
pymysql.err.InternalError: (1136, "Column count doesn't match value count at row 1")
INSERT INTO Salary VALUES('000001', 2100.8, 123.09) 有的可能不为空,或者insert语句 % 拼接有误

1142

ER_TABLEACCESS_DENIED_ERROR

pymysql.err.OperationalError: (1142, 'Unknown error 1142')
 权限问题,可能权限不够,联系管理员查看你是否有相应增删改查权限
 本人修改字段是也报了此错误
 执行SHOW  CREATE  TABLE 时返现是视图临时表(待验证)

1146

ER_NO_SUCH_TABLE

Table doesn't exist   表不存在

1213

Deadlock found when trying to get lock; try restarting transaction

出现原因mysql锁了

SELECT * FROM   information_schema.INNODB_LOCK_WAITS; 查看当前等锁的事务
SELECT * FROM	information_schema.INNODB_LOCKS; 查看当前锁定的事务
SELECT * FROM	information_schema.INNODB_TRX;   查看当前的事务!

mysql本人常遇到的错误码及解决办法(27种)_字段

  1. 治标办法,能迅速解决问题,不治本(遇到时间2021-08-19) RUNNING状态 杀死这个进程,杀不死就重启Mysql服务
    杀死进程id(trx_mysql_thread_id对应的值)kill 进程号

1264

ER_WARN_DATA_OUT_OF_RANGE

pymysql.err.DataError: (1264, '')
重点关注这个表的字段 tinyint 1字节 (-128,127) (0,255) 小整数值
警告数据超出范围(一不小心就超了)

1265

WARN_DATA_TRUNCATED

为行%ld上的列’%s’截短数据
本人错误原因:MySQL字段birthday 应传1995-08-07 ,本人传成了手机号1801918****,所以报了此错误

1292

ER_TRUNCATED_WRONG_VALUE

通常时间格式错误data, timedate

1327

ER_SP_UNDECLARED_VAR

mysql语句 或者 创建 存储过程时报错([存储过程]

解决时间 2020-01-13 17:21:35
select * into newtable from oldtable where 
从一个表中选取数据,然后把数据插入另一个表中, mysql不支持上述语法
应改为:
结构相同:
insert into table_name_new select * from table_name_old
结构不同:
insert into table_name_new(column1,column2...) select column1,column2... from table_name_old


本人实在python中pymysql:
执行select * from pub_user limit 1000;  
		注意1000后无空格且次‘;’中文分号,报1327 错误。
		注意1000后有空格且次‘;’中文分号,报1064 错误。

1364

Field ‘***’ doesn’t have a default value

数据表里非空且无默认值的字段 
说人话是:数据表数据表里某个字段 不能为空且没有默认值 
解决办法是:设置为可空 或者 设置默认值

1366

Incorrect string value

pymysql.err.InternalError: (1366, "Incorrect string value: 
    MySQL中utf8编码只支持到3字节,一些4字节的unicode不能正确处理
    修改MySQL的字段编码为utf8mb4

1405

原因没有找到,尴尬呀

mysql本人常遇到的错误码及解决办法(27种)_服务器_02

当时本人的链接是localhost, 127.0.0.1  所以链接不上指定的mysql数据库。
意思就是:可能自己链接其他主机的数据库,而自己链接时使用localhost,回报这种错误

1406

ER_DATA_TOO_LONG

pymysql.err.DataError: (1406, '')  传入的数据不正确(长度,类型有误)
解决办法:1. 检查传入字段类型是否有误   插入字段长度是否过长 2. 找到dba修改数据库数据表中对应字段长度

1553

MySQL Cannot drop index needed in a foreign key constraint

MySQL Cannot drop index needed in a foreign key constraint
删除字段对应的外键(或请检查索引问题)

2003

10060 2003-can t connect to MySQL server on ip(10060)的解决办法

连接mysql数据库时提示,提示此错误
	1. 检查mysql服务器未开启
	2. bind-address对于连接的ip做了一个限定(公司会设置,找运维赋予权限,生成证书,连接)
	3. 数据库用户只能在指定的ip上连接(公司会设置,找运维赋予权限,生成证书,连接)
	4. 检查防火墙是否关闭,网络是否通

2006

MySQL server has gone awayMySQL 服务器不可用

数据量过大,修改my.ini配置文件,可将max_allowed_packet加大到500M

2013

CR.CR_SERVER_LOST

CR.CR_SERVER_LOST, "Lost connection to MySQL server during query")
pymysql.err.OperationalError: (2013, 'Lost connection to MySQL server during query')
	失去MySQL 服务器连接,检查数据库的服务没有起,或者账号密码端口是否被更改

2059

-

mysql本人常遇到的错误码及解决办法(27种)_mysql_03

2021-01-08遇到此错误

mysql8 之前的版本中加密规则是mysql_native_password,而在mysql8之后,加密规则是caching_sha2_password
更改加密规则:
use mysql; #选择数据库
ALTER USER 'root'@'localhost' IDENTIFIED BY 'password' PASSWORD EXPIRE NEVER;       #  修改加密规则
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'password';  #    更新用户密码
FLUSH PRIVILEGES; #刷新权限

2059

Too many connections

2021-12-28遇到此错误,原因是其他客户端正在使用所有可用的连接应用场景 django, peewee。 mysql 默认最大链接数为151修改一下即可

解决思路
1. SET GLOBAL max_connections = 800;  非持久,下次重启没啦
2. 持久化配置
	vi /etc/mysql/my.cnf
	[mysqld]
	max_connections = 500
**查看mysql的最大连接数
	show variables like '%max_connections%';


举报

相关推荐

0 条评论