刚安装的MySQL使用Navicat操作数据库遇到的问题

刚安装的MySQL使用Navicat操作数据库遇到的问题

一、编辑连接保存报错

连接上了数据库,编辑连接保存报错,如下图:

解决办法:

重启Navicat。

二、打开数据表很慢

第一次打开数据表时速度还能接受,过几分钟再次打开就变得很慢很慢,且查询很少的数据都很耗时。比如我只想查询用户表中的十条数据,竟然查了8秒。

解决办法:

打开关闭数据库,编辑数据库连接,默认是240秒,我这里改为了30秒,还觉得慢可以改为0秒。

这样就会让数据库连接保持随时待命的状态,不会出现因为间隔几分钟没有打开数据表,再次打开时变得很慢很慢了的情况了。

再次查询用户表的10条数据

三、MySQL的进程出现大量"sleep"状态的进程

这可能是刚安装的MySQL还没有优化,查询MySQL的连接超时时间

sql 复制代码
show variables like 'wait_timeout';
sql 复制代码
show variables like 'interactive_timeout';

解释:

wait_timeout:用于指定服务器等待客户端发送命令的时间的上限。

interactive_timeout:用于指定MySQL服务器在等待客户端发送命令的时间后关闭非交互式连接的超时时间。

MySQL默认的连接超时时间是8小时,太长了,没有进行数据操作的时候应该释放资源,可以将超时时间调小一些,注意需要上面两个参数同时设置才能生效。

打开MySQL的配置文件

powershell 复制代码
vim /etc/my.cnf

在"[mysqld]"中加入如下配置

powershell 复制代码
#减少超时时间,避免使用"SHOW PROCESSLIST"命令出现很多"sleep"状态的进程,这里设置为120秒
wait_timeout=120
interactive_timeout=120

这是我的

然后重启MySQL

powershell 复制代码
service mysql restart

再次查询MySQL的进程

sql 复制代码
SHOW PROCESSLIST

可以看到前面的很多"sleep"状态的进程已经不见了。

四、执行sql脚本报错,部分表导不进去

我的问题是这样的,新安装的MySQL从Navicat执行sql脚本,结束时出现失败的错误,看一下执行结束后的数据库,大部分表都导入了,只是部分数据表没能导入。

这是导入时的报错

一开始也没看出那里的问题,于是将就着用,等项目连接上的时候报缺少某个数据表,看了一下数据库中还真没有,就把没导入的数据表从原数据库中单独导出sql文件,再单独导入,结果也是报类似的错

看来导入数据库的时候就是这些表出的问题了。

然后就想着既然sql脚本有问题,那我通过执行sql的形式导入,这些应该总行了吧,但是报如下错:

Row size too large (> 8126). Changing some columns to TEXT or BLOB or using ROW_FORMAT=DYNAMIC or ROW_FORMAT=COMPRESSED may help. In current row format, BLOB prefix of 768 bytes is stored inline.

看报错提示似乎字段的长度不够,需要改为"TEXT"或者"BLOB"类型,我直接把我内容比较多的字段类型改为"LONGTEXT",这样应该承得下了把,但执行sql时还是报这个错。

后面发现这是InnoDB 存储引擎的一个配置参数"innodb_strict_mode",是否采取严格模式的问题,只要把它关了就可以导入了。

解释:

innodb_strict_mode 是 MySQL 中 InnoDB 存储引擎的一个配置参数,它用于控制 InnoDB 存储引擎在处理某些可能的不规范或错误的数据时是否采取严格模式,默认是开启。

关闭采取严格模式的办法如下:

在"[mysqld]"下加入如下配置

powershell 复制代码
#处理 MySQL导入数据库1118错误解决方案[ERR] 1118 - Row size too large (> 8126). Changing some columns to TEXT or BLOB
innodb_strict_mode=0

保存退出,再重启MySQL

powershell 复制代码
service mysql restart

删除原来的数据库,再次导入

成功。

五、当前MySQL配置文件

powershell 复制代码
[mysqld]
port=3306
basedir=/usr/local/mysql/mysql-8.0.35  # MySQL根目录
datadir=/usr/local/mysql/mysql-8.0.35/data/  # MySQL的data目录
socket=/tmp/mysql.sock
character-set-server=UTF8MB4
symbolic-links=0


#配置大小写不敏感,配合初始化mysql时使用
lower_case_table_names=1


#减少超时时间,避免使用"SHOW PROCESSLIST"命令出现很多"sleep"状态的进程,这里设置为120秒
wait_timeout=120
interactive_timeout=120


#解决"java.sql.SQLException: Expression #1 of ORDER BY clause is not in SELECT list,references column"
sql_mode='STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION'

#处理 MySQL导入数据库1118错误解决方案[ERR] 1118 - Row size too large (> 8126). Changing some columns to TEXT or BLOB
innodb_strict_mode=0
相关推荐
权^17 分钟前
MySQL--聚合查询、联合查询、子查询、合并查询(上万字超详解!!!)
大数据·数据库·学习·mysql
Code成立1 小时前
1、深入理解Redis线程模型
数据库·redis·bootstrap
缘友一世3 小时前
macos安装mongodb
数据库·mongodb·macos
万事大吉CC4 小时前
mysql单表查询·3
数据库·mysql
bin91535 小时前
【EXCEL数据处理】000010 案列 EXCEL文本型和常规型转换。使用的软件是微软的Excel操作的。处理数据的目的是让数据更直观的显示出来,方便查看。
大数据·数据库·信息可视化·数据挖掘·数据分析·excel·数据可视化
Miqiuha5 小时前
lock_guard和unique_lock学习总结
java·数据库·学习
一 乐6 小时前
学籍管理平台|在线学籍管理平台系统|基于Springboot+VUE的在线学籍管理平台系统设计与实现(源码+数据库+文档)
java·数据库·vue.js·spring boot·后端·学习
Java探秘者10 小时前
Maven下载、安装与环境配置详解:从零开始搭建高效Java开发环境
java·开发语言·数据库·spring boot·spring cloud·maven·idea
2301_7869643610 小时前
3、练习常用的HBase Shell命令+HBase 常用的Java API 及应用实例
java·大数据·数据库·分布式·hbase
苹果醋310 小时前
大模型实战--FastChat一行代码实现部署和各个组件详解
java·运维·spring boot·mysql·nginx