MySQL入门学习之——MySQL错误解决汇总
发表于:2025-01-20 作者:千家信息网编辑
千家信息网最后更新 2025年01月20日,以下都是工作中使用MySQL过程中遇到的一些错误,特记录之。错误1:在执行mysql时 提示如下错误:ERROR 1580 (HY000) at line 1: You cannot 'DROP' a
千家信息网最后更新 2025年01月20日MySQL入门学习之——MySQL错误解决汇总以下都是工作中使用MySQL过程中遇到的一些错误,特记录之。
错误1:在执行mysql时 提示如下错误:
ERROR 1580 (HY000) at line 1: You cannot 'DROP' a log table if logging is enabled"
解决方法:执行set global slow_query_log=off,然后再次运行mysql
错误2:在执行innobackupex时报如下错误:
innobackupex: Error: Failed to connect to MySQL server: DBI connect(';mysql_read_default_file=/mvnobss/users/mysusr01/mysql/bin/my.cnf;mysql_read_default_group=xtrabackup;port=39301;
mysql_socket=/mvnobss/users/mysusr01/mysql/mydata/mysqld-hdh-vocrmdb1-39301.sock','root',...) failed: Can't connect to local MySQL server through socket '/mvnobss/users/mysusr01/mysql/mydata/mysqld-hdh-vocrmdb1-39301.sock'
解决方法:执行innobackupex备份的用户需要对MySQL数据目录有读取权限,并且对socket文件有读写权限
错误3:java应用报连接异常,错误信息如下:
cause: com.binary.jdbc.exception.DataSourceException: Cannot create PoolableConnectionFactory (null, message from server: "Host '10.123.121.252' is blocked because of many connection errors; unblock with 'mysqladmin flush-hosts'")
解决方法:mysqladmin -uroot -p flush-hosts
错误4:执行mysqldump报如下错误:
mysqldump: Error 2013: Lost connection to MySQL server during query when dumping table `res_card_storage_detail` at row: 510319
解决方法:将参数net_write_timeout的值加大(网上搜索的解决方法)
修改后问题依旧,通过观察系统日志发现有如下重要信息:
Jul 6 17:29:25 yt-votst1 kernel: Out of memory: Kill process 16398 (mysqld) score 44 or sacrifice child
Jul 6 17:29:25 yt-votst1 kernel: Killed process 16398, UID 312, (mysqld) total-vm:5289288kB, anon-rss:1352100kB, file-rss:768kB
接着查看系统内存设置:
free -m
total used free shared buffers cached
Mem: 29970 29830 139 0 169 224
-/+ buffers/cache: 29436 533
Swap: 0 0 0
结论:所以这里mysqldump报错的真正原因是没有设置swap导致mysqld进程内存溢出,设置swap后mysqldump运行正常。
错误5:mysql.user表数据被清空
解决方法:
1.在my.cnf中加入skip-grant-tables,然后重启myqld
2.插入数据到myql.user表
mysql> insert into user(host,user,password) values('localhost','root',password('123'));
ERROR 1364 (HY000): Field 'ssl_cipher' doesn't have a default value
3.上面报错是因为sql_mode中有STRICT_TRANS_TABLES选项,去掉该选项然后重启mysqld
4.执行下面的sql
mysql> insert into user(host,user,password) values('localhost','root',password('123'));
mysql> update user set select_priv='y', insert_priv='y',update_priv='y',Alter_priv='y',delete_priv='y',create_priv='y',drop_priv='y',reload_priv='y',shutdown_priv='y',Process_priv='y',file_priv='y',grant_priv='y',References_priv='y',index_priv='y',create_user_priv='y',show_db_priv='y',super_priv='y',create_tmp_table_priv='y',Lock_tables_priv='y',execute_priv='y',repl_slave_priv='y',repl_client_priv='y',create_view_priv='y',show_view_priv='y',create_routine_priv='y',alter_routine_priv='y',create_user_priv='y' where user='root';
mysql> commit;
5.去掉skip-grant-tables参数,然后重启mysqld
错误1:在执行mysql时 提示如下错误:
ERROR 1580 (HY000) at line 1: You cannot 'DROP' a log table if logging is enabled"
解决方法:执行set global slow_query_log=off,然后再次运行mysql
错误2:在执行innobackupex时报如下错误:
innobackupex: Error: Failed to connect to MySQL server: DBI connect(';mysql_read_default_file=/mvnobss/users/mysusr01/mysql/bin/my.cnf;mysql_read_default_group=xtrabackup;port=39301;
mysql_socket=/mvnobss/users/mysusr01/mysql/mydata/mysqld-hdh-vocrmdb1-39301.sock','root',...) failed: Can't connect to local MySQL server through socket '/mvnobss/users/mysusr01/mysql/mydata/mysqld-hdh-vocrmdb1-39301.sock'
解决方法:执行innobackupex备份的用户需要对MySQL数据目录有读取权限,并且对socket文件有读写权限
错误3:java应用报连接异常,错误信息如下:
cause: com.binary.jdbc.exception.DataSourceException: Cannot create PoolableConnectionFactory (null, message from server: "Host '10.123.121.252' is blocked because of many connection errors; unblock with 'mysqladmin flush-hosts'")
解决方法:mysqladmin -uroot -p flush-hosts
错误4:执行mysqldump报如下错误:
mysqldump: Error 2013: Lost connection to MySQL server during query when dumping table `res_card_storage_detail` at row: 510319
解决方法:将参数net_write_timeout的值加大(网上搜索的解决方法)
修改后问题依旧,通过观察系统日志发现有如下重要信息:
Jul 6 17:29:25 yt-votst1 kernel: Out of memory: Kill process 16398 (mysqld) score 44 or sacrifice child
Jul 6 17:29:25 yt-votst1 kernel: Killed process 16398, UID 312, (mysqld) total-vm:5289288kB, anon-rss:1352100kB, file-rss:768kB
接着查看系统内存设置:
free -m
total used free shared buffers cached
Mem: 29970 29830 139 0 169 224
-/+ buffers/cache: 29436 533
Swap: 0 0 0
结论:所以这里mysqldump报错的真正原因是没有设置swap导致mysqld进程内存溢出,设置swap后mysqldump运行正常。
错误5:mysql.user表数据被清空
解决方法:
1.在my.cnf中加入skip-grant-tables,然后重启myqld
2.插入数据到myql.user表
mysql> insert into user(host,user,password) values('localhost','root',password('123'));
ERROR 1364 (HY000): Field 'ssl_cipher' doesn't have a default value
3.上面报错是因为sql_mode中有STRICT_TRANS_TABLES选项,去掉该选项然后重启mysqld
4.执行下面的sql
mysql> insert into user(host,user,password) values('localhost','root',password('123'));
mysql> update user set select_priv='y', insert_priv='y',update_priv='y',Alter_priv='y',delete_priv='y',create_priv='y',drop_priv='y',reload_priv='y',shutdown_priv='y',Process_priv='y',file_priv='y',grant_priv='y',References_priv='y',index_priv='y',create_user_priv='y',show_db_priv='y',super_priv='y',create_tmp_table_priv='y',Lock_tables_priv='y',execute_priv='y',repl_slave_priv='y',repl_client_priv='y',create_view_priv='y',show_view_priv='y',create_routine_priv='y',alter_routine_priv='y',create_user_priv='y' where user='root';
mysql> commit;
5.去掉skip-grant-tables参数,然后重启mysqld
错误
方法
数据
信息
内存
参数
权限
系统
运行
重要
再次
原因
备份
文件
日志
时报
用户
目录
结论
过程
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
eclipse和数据库连接不上
亚太第一网络技术有限公司
深圳安卓软件开发哪里好
崇明区企业软件开发专业服务
网络技术gangwei
亳州手机软件开发费用
有什么网络安全专业的大学
科技服务包括利用高校数据库
校园网络安全执法自相总结
北斗定位软件开发
网络安全产品作用
多车辆跟踪数据库
延庆区品牌软件开发售后保障
我国网络安全受到威胁
湖州电子网络技术有哪些
游戏软件开发包括哪几个方面
数据库中的多语言设计
网络安全专家发展前景
大连天奥网络技术有限公司
软件开发领域有哪些问题
灵鹊网络技术公司
绿色php服务器
国家网络安全周举行的时间是
软件开发 立项设计
arma3服务器装备怎么得
tcag数据库
网络安全知识云课堂公众号
潮阳软件开发定制
数据库安全有什么用
服务器等级制度