建设网站怎么建立服务器,wordpress一站式开发,雅安交通建设集团网站,网站建设评标办法刚安装的MySQL使用Navicat操作数据库遇到的问题 一、编辑连接保存报错二、打开数据表很慢三、MySQL的进程出现大量“sleep”状态的进程四、执行sql脚本报错#xff0c;部分表导不进去五、当前MySQL配置文件 一、编辑连接保存报错
连接上了数据库#xff0c;编辑连接保存报错… 刚安装的MySQL使用Navicat操作数据库遇到的问题 一、编辑连接保存报错二、打开数据表很慢三、MySQL的进程出现大量“sleep”状态的进程四、执行sql脚本报错部分表导不进去五、当前MySQL配置文件 一、编辑连接保存报错
连接上了数据库编辑连接保存报错如下图 解决办法
重启Navicat。
二、打开数据表很慢
第一次打开数据表时速度还能接受过几分钟再次打开就变得很慢很慢且查询很少的数据都很耗时。比如我只想查询用户表中的十条数据竟然查了8秒。 解决办法
打开关闭数据库编辑数据库连接默认是240秒我这里改为了30秒还觉得慢可以改为0秒。 这样就会让数据库连接保持随时待命的状态不会出现因为间隔几分钟没有打开数据表再次打开时变得很慢很慢了的情况了。
再次查询用户表的10条数据 三、MySQL的进程出现大量“sleep”状态的进程 这可能是刚安装的MySQL还没有优化查询MySQL的连接超时时间
show variables like wait_timeout;show variables like interactive_timeout;解释 wait_timeout用于指定服务器等待客户端发送命令的时间的上限。 interactive_timeout用于指定MySQL服务器在等待客户端发送命令的时间后关闭非交互式连接的超时时间。 MySQL默认的连接超时时间是8小时太长了没有进行数据操作的时候应该释放资源可以将超时时间调小一些注意需要上面两个参数同时设置才能生效。
打开MySQL的配置文件
vim /etc/my.cnf在“[mysqld]”中加入如下配置
#减少超时时间避免使用“SHOW PROCESSLIST”命令出现很多“sleep”状态的进程这里设置为120秒
wait_timeout120
interactive_timeout120这是我的
然后重启MySQL
service mysql restart再次查询MySQL的进程
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_FORMATDYNAMIC or ROW_FORMATCOMPRESSED 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]”下加入如下配置
#处理 MySQL导入数据库1118错误解决方案[ERR] 1118 - Row size too large ( 8126). Changing some columns to TEXT or BLOB
innodb_strict_mode0保存退出再重启MySQL
service mysql restart删除原来的数据库再次导入 成功。
五、当前MySQL配置文件
[mysqld]
port3306
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-serverUTF8MB4
symbolic-links0#配置大小写不敏感配合初始化mysql时使用
lower_case_table_names1#减少超时时间避免使用“SHOW PROCESSLIST”命令出现很多“sleep”状态的进程这里设置为120秒
wait_timeout120
interactive_timeout120#解决“java.sql.SQLException: Expression #1 of ORDER BY clause is not in SELECT list,references column”
sql_modeSTRICT_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_mode0