我已经阅读了很多关于这个问题的线程以及MySQL文档,但似乎没有任何建议有效。
这是我的.cnf
[客户端] 端口 = 3306 socket =/var/run/mysqld/mysqld.sock [mysqld_safe] socket =/var/run/mysqld/mysqld.sock 尼斯 = 0 [mysqld] 用户 = MySQL pid-file =/var/run/mysqld/mysqld.pid socket =/var/run/mysqld/mysqld.sock 端口 = 3306 basedir =/usr datadir =/var/lib/mysql tmpdir =/tmp lc-messages-dir =/usr/share/mysql 跳过外部锁定 默认存储引擎=INNODB 字符集服务器=UTF8 排序规则服务器=utf8_bin interactive_timeout = 2880000 wait_timeout = 2880000 net_write_timeout = 6000 net_read_timeout = 6000 delayed_insert_timeout = 6000 key_buffer = 256M 密钥缓冲区大小 = 32M max_allowed_packet = 600M thread_stack = 256K thread_cache_size = 8 最大连接数 = 500 线程缓存大小 = 50 打开文件限制 = 65535 表定义缓存 = 4096 表打开缓存 = 10240 查询缓存类型 = 0 query_cache_limit = 2M query_cache_size = 32M myisam-recover = BACKUP innodb_buffer_pool_size = 384M innodb_additional_mem_pool_size = 20M innodb_log_file_size = 10M innodb_log_buffer_size = 64M innodb_flush_log_at_trx_commit = 1 innodb_lock_wait_timeout = 180 log_error =/var/log/mysql/error.log expire_logs_days = 10 max_binlog_size = 100M [mysqldump] 快 报价名称 max_allowed_packet = 64M [伊萨姆奇克] key_buffer = 32M
此外,我在MySQL CLI中运行了查询以确保我的设置保持不变,它们似乎是:
MySQL>选择@@global.wait_timeout, @@session.wait_timeout; +-----------------------+------------------------+ |@@global.等待超时 |@@session.等待超时 | +-----------------------+------------------------+ | 2880000 | 2880000 | +-----------------------+------------------------+
MySQL>选择@@global.max_允许_数据包,@@session.max_允许_数据包; +-----------------------------+------------------------------+ |@@global.max_允许_数据包 |@@session.max_允许_数据包 | +-----------------------------+------------------------------+ | 629145600 | 629145600 | +-----------------------------+------------------------------+
服务器环境:Ubuntu 服务器 14.04LTS
MySQL 版本:5.6
这是一个专用的MySQL服务器,上面没有其他应用程序。
我没有用完内存:
内存总计: 32948824 kB 内存免费: 31494136 kB 缓存: 281624 kB 交换缓存: 0 kB 交换总计: 33550332 kB 免掉期: 33550332 kB
我终于能够解决这个问题,但绕过了MySQL工作台迁移工具并使用mysqldup生成用于还原到服务器的数据库.sql文件。这是我所做的:
- 从超时的 MySQL 服务器中删除了所有数据库
- 通过 mysqldump 从我们的备份数据库中导出所有数据
- 将该转储文件还原到新的MySQL服务器(该服务器超时)
- 运行mysql_upgrade,所有表正常 执行查询:现在一切工程
是:mysqlcheck 和 mysql_upgrade 在以某种方式超时的数据库上运行时,返回状态正常并且没有发现任何错误。我不知道为什么,但我看到这是一个非常奇怪和烦人的问题,考虑到这正是mysqlcheck的用途。
无论如何,如果您遇到此问题,请尝试从较旧的备份(如果有)还原数据库,看看是否有效。