MySQL常见错误码及解决方法(1130、1461、2003、1040、2000、1049、1062、1129、2002、1690等)

目录

【问题1】、FATAL: error 1130: Unknown error 1130

【问题2】、FATAL: error: 1461

【问题3】、ERROR 2003 (HY000): Can't connect to MySQL server on "" (113)

【问题4】、FATAL: error 2003: Can't connect to MySQL server on '172.19.111.151' (111)

【问题5】、mysql Error 1040 too many connection

【问题6】、FATAL:error 2000: Unknown error 2000

【问题7】、ERROR 1045 (28000): Access denied for user ‘root’@‘localhost’ (using password: YES)

【问题8】、FATAL: error 1049: Unknown error 1049

【问题9】、mysql error 1062 

【问题10】、MySQL ERROR 1129

【问题11】、error2002

【问题12】、FATAL: error 2004: Can't create TCP/IP socket (24)

【问题13】、FATAL: Worker threads failed to initialize within 30 seconds!

【问题14】、warning:changed limits:max_connections:214

【问题15】、Fatal error: Please read "Security" section of the manual to find out how to run mysqld as root!

【问题16】、[ERROR] Could not open unix socket lock file /tmp/mysql.sock.lock.

【问题17】、ERROR 1690 (22003): BIGINT UNSIGNED value is out of range in '(`test`.`t`.`a` - `test`.`t`.`b`)'   .

【问题18】、Could not create unix socket lock file:

【问题19】、MySQL 5.5 升级 5.6 报错: mysqld got signal 11

mysql error code(备忘)

B.2. 客户端错误代码和消息客户端错误信息来自下述源文件:


【问题1】、FATAL: error 1130: Unknown error 1130

prepare阶段,报错:“FATAL: unable to connect to MySQL server on host '172.19.111.151', port 3306, aborting...”

FATAL: error 1130: Unknown error 1130

【原因】: MySQL默认不允许root远程连接。

【解决办法】:修改权限,客户端登入mysql,

(1)、使用mysql库:use mysql;

(2)、查看用户表:SELECT `Host`,`User` FROM user;  

(3)、更新用户表,(其中%的意思是允许所有的ip远程访问,如果需要指定具体的某个ip就写上具体的ip即可)

UPDATE user SET `Host` = '%' WHERE `User` = 'root' LIMIT 1;

如果不成功,试一试:update user set host = '%' where user ='root';

(4)、再次查看用户表:SELECT `Host`,`User` FROM user;  

(5)、强制刷新权限:flush privileges;

问题解决!

 use mysql; update user set host = '%' where user ='root'; flush privileges; SELECT `Host`,`User` FROM user;

【问题2】、FATAL: error: 1461

Sysbench  run阶段,报错:

“FATAL: `thread_init' function failed:  /usr/share/sysbench/oltp_common.lua:284: SQL API error

FATAL: MySQL error: 1461 "Can't create more than max_prepared_stmt_count statements (current value: 16382)"

(last message repeated 3 times)”

【原因】:max_prepared_stmt_count参数限制了同一时间在mysqld上所有session中prepared 语句的上限。它的取值范围为“0 - 1048576”,默认为16382。高并发的情况下需要调高这个值。mysql对于超出max_prepared_stmt_count的prepare语句就会报1461的错误。

【解决办法】:先将该值调大。

mysql> show global status like 'com_stmt%';   查看各参数

mysql> show global variables like 'max_prepared_stmt_count';

mysql> set global max_prepared_stmt_count=1048576; 参数调到最大

【问题3】、ERROR 2003 (HY000): Can't connect to MySQL server on "" (113)

两台服务器相互连接,报错:

ERROR 2003 (HY000): Can't connect to MySQL server on "" (113)

【原因】:导致此错误的原因为服务器端防火墙未开放MySQL程序使用的端口,默认为3306,开放端口即可

 

/sbin/iptables -I INPUT -p tcp --dport 3306 -j ACCEPT   

systemctl stop firewalld.service    直接关闭防火墙

systemctl disable firewalld.service    禁止firewall开机启动

【问题4】、FATAL: error 2003: Can't connect to MySQL server on '172.19.111.151' (111)

一台服务器连接另一台服务器,报错:

FATAL: error 2003: Can't connect to MySQL server on '172.19.111.151' (111)

【原因】:如果想让172.19.111.152能够连接到本地172.19.111.151的这个数据库,要让数据库给其分配权限,登录mysql,执行:(username 和 password是登录mysql的用户名和密码)

 

如果要想所有的外部ip地址都能够访问使用mysql,可以执行下面:之后执行刷新数据库:

grant all privileges on *.* to root@'%'identified by 'mysql';//设置可以远程访问

//GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY '' WITH GRANT OPTION;//这条语句好像不管用

flush privileges;

【问题5】、mysql Error 1040 too many connection

解决办法:

执行以下语句修改最大连接数:set global max_connections = 3600;

【问题6】、FATAL:error 2000: Unknown error 2000

加上--mysql-ssl=on参数

【问题7】、ERROR 1045 (28000): Access denied for user ‘root’@‘localhost’ (using password: YES)

根据网上查了很多资料,出现Access denied的原因有如下可能:
(1)MySQL的服务器停止了
(2)用户的端口号或者IP导致拒绝访问
(3)MySQL的配置文件错误(my.ini等文件)
(4)root用户的密码错误

【问题8】、FATAL: error 1049: Unknown error 1049

原因:客户端中未创建sbtest数据库,数据库不存在

类似问题:pymysql.err.InternalError: (1049, “Unknown database ‘root’”)

[pymysql.connect只负责连接数据库,它不会帮你创建数据库的,你要先创建一个]

连接客户端,创建sbtest数据库create database sbtest;

mysql -u root -p password

今天在输入的时候却发现命令输入不正确,而且会要求再输入一遍密码,然后返回

“ERROR 1049 (42000): Unknown database 'password'”

-p和密码是连在一起的,他们之间没有空格
然后就问题解决自然登录上去了!!!

-u后面可以紧跟用户名,也可以加个空格,但密码后面一定不能加空格。
如果加了空格,mysql会认为后面那个是一个库名
我们可以看看正确的语句:

(1)mysql -u root -p123

(2)mysql -uroot -p123

【问题9】、mysql error 1062 

Duplicate entry ‘1’ for key ‘PRIMARY’

错误原因:主键冲突,主键值具有唯一性 
解决方法:’PRIMARY’主键的值不能相同

sysbench增加参数

--mysql-ignore-errors=1062

--mysql-ignore-errors=”all”

【问题10】、MySQL ERROR 1129

问题说明:通过mysql命令连接mysql数据库的时候报了ERROR 1129的错误;

错误说明:ERROR 1129 (HY000): Host 'mysql02' is blocked because of many connection errors; unblock with 'mysqladmin flush-hosts'

错误原因:同一个ip在短时间内产生太多中断的数据库连接而导致的阻塞(超过mysql数据库max_connection_errors的最大值)

Maximum Value (64-bit platforms)

18446744073709551615

Maximum Value (32-bit platforms)

4294967295

解决方法:[root@mysql01 script]# mysqladmin flush-hosts -h 127.0.0.1 -uroot -p

Enter password:

本次使用以下方法更改:set global max_connect_errors=10000000;flush privileges;

【问题11】、error2002

ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/tmp/mysql.sock' (111)

检查/tmp/mysql.sock.lock中数字是否是mysqld的进程号

【问题12】、FATAL: error 2004: Can't create TCP/IP socket (24)

解决办法:

1、编辑 mysql.ini,在 [mysqld] 下面的区域加 enable-named-pipe;

2、检查系统的临时目录或者 MySQL 临时目录的权限;

3、在以上方法无效的情况下,建议重新安装另外版本的 MySQL。

netsh winsock reset 重置即可

winsock是windows网络编程接口,winsock工作在应用层,它提供与底层传输协议无关的高层数据传输编程接口 netsh winsock reset 是把它恢复到默认状态

【问题13】、FATAL: Worker threads failed to initialize within 30 seconds!

问题描述:sysbench初始化线程过大,初始化线程超时,报错
解决:

sybench高版本增加了参数控制线程初始化时间

--thread-init-timeout=N  wait time in seconds for worker threads to initialize [30]

【问题14】、warning:changed limits:max_connections:214

问题描述:

2020-11-02T02:03:23.463021Z 0 [Warning] Changed limits: max_open_files: 1024 (requested 500000)

2020-11-02T02:03:23.463346Z 0 [Warning] Changed limits: max_connections: 214 (requested 100000)

2020-11-02T02:03:23.463352Z 0 [Warning] Changed limits: table_open_cache: 400 (requested 4000)

2020-11-02T02:03:23.636714Z 0 [Warning] TIMESTAMP with implicit DEFAULT value is deprecated. Please use --explicit_defaults_for_timestamp server option (see documentation for more details).

问题原因:操作系统层面的open files限制

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值