MySQL中MyISAM表如何安全复制到另一台服务器

轻婷小哥_7612

轻婷小哥_7612

2026-08-24

564人浏览

原创

myisam表迁移不能依赖--single-transaction或物理拷贝,必须确保.frm、.myd、.myi三文件完整一致,停写后flush tables with read lock,严格校验权限与版本兼容性,并导入后执行repair table验证。

mysql中myisam表如何安全复制到另一台服务器

MyISAM 表不能像 InnoDB 那样靠 mysqldump 加 --single-transaction 保证一致性,也不能用物理拷贝直接“复制粘贴”——它看起来简单,实则极易损坏,尤其在没停服务或路径权限出错时。

MyISAM 表文件结构必须完整迁移

MyISAM 表由三个文件组成:.frm(表结构)、.MYD(数据)、.MYI(索引)。缺一不可,且文件名、大小、修改时间必须严格一致。任意一个文件损坏或不匹配,MySQL 启动后会报 Table 'db.table' doesn't exist 或 Incorrect file format。

  • 确认源库已停止写入:执行 FLUSH TABLES WITH READ LOCK;,再 SHOW OPEN TABLES WHERE In_use > 0; 检查无活跃表锁才可继续
  • 不要只拷 .MYD 和 .MYI:漏掉 .frm 会导致目标库无法识别表结构,哪怕文件存在也报错
  • 目标服务器 MySQL 版本需兼容:MyISAM 在 MySQL 8.0 中仍支持,但部分旧字段类型(如 TINYTEXT 的排序规则)可能因字符集配置不同而加载失败

符号链接方式风险极高,慎用

有人尝试用 ln -s 把 .MYD/.MYI 指向新磁盘,但这在 MySQL 8.0+ 默认被禁用(--skip-symbolic-links),且一旦路径权限不对、软链断裂或 SELinux 拦截,表直接不可用,错误日志里常出现 Can't find file: './db/table.frm' (errno: 13)。

MySQL
MySQL

编写正确的MySQL查询,避免字符集、索引和锁方面的常见陷阱。

下载
  • 若真要用符号链接,必须在 my.cnf 显式开启:symbolic-links=ON(MySQL 5.7)或 skip-symbolic-links=OFF(MySQL 8.0+)
  • 目标路径属主必须是 mysql:mysql,且目录不能有 world-writable 权限(如 chmod 755 可行,777 会被 MySQL 拒绝加载)
  • 不建议跨文件系统做软链:XFS/ext4 上尚可,Btrfs/ZFS 因硬链接语义差异,极大概率导致数据读取错乱

逻辑导出导入仍是首选方案

对 MyISAM 表而言,mysqldump 虽慢,却是最稳妥的跨服务器迁移方式。它不依赖文件系统一致性,也不受 MySQL 版本微小差异影响,还能过滤、改写 SQL(比如替换数据库名、调整引擎)。

  • 导出时加 --no-create-info 如果目标库已建好表结构,避免重复建表失败
  • 导入前手动执行 SET SESSION sql_mode='';,防止 MySQL 8.0+ 严格模式下因空值或默认值报错
  • 大表导入卡住?改用 mysql --local-infile=1 + LOAD DATA INFILE(需提前 GRANT FILE ON *.* TO ...)
  • 别信 dump 文件里的 CREATE TABLE ... ENGINE=MyISAM —— 目标库若默认引擎是 InnoDB,必须显式指定 ENGINE=MyISAM,否则表创建成功但行为异常

MyISAM 迁移真正的坑不在“怎么拷”,而在“怎么验证”。哪怕所有文件都复制过去、MySQL 也启动了,也要逐表执行 REPAIR TABLE db.table;,因为 MyISAM 没有崩溃恢复机制,一次异常关机就可能导致索引错位——这点很容易被忽略,直到某次查询突然返回空结果或乱序数据才暴露出来。

相关文章

PHP速学视频免费教程(入门到精通)
PHP速学视频免费教程(入门到精通)

PHP怎么学习?PHP怎么入门?PHP在哪学?PHP怎么学才快?不用担心,这里为大家提供了PHP速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!

下载

本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

相关专题

更多
服务器是什么
服务器是什么

服务器是一种计算机硬件设备或软件程序,它具有强大的计算和存储能力,用请求、存储数据和提供服务。它在互联网中着关重要的作用,为用户提供各种服务和资源。本专题为大家提供服务器相关的文章、下载、课程内容,供大家免费下载体验。

2023.08.15

417

5

连接apple id服务器时出错
连接apple id服务器时出错

连接apple id服务器时出错的原因包括网络连接问题、服务器问题、Apple ID账户问题、设备问题、防火墙或安全软件问题、时间和日期设置问题、Apple服务器维护等。本专题为大家提供apple id相关的文章、下载、课程内容,供大家免费下载体验。

2023.09.08

860

5

搭建互联网服务器
搭建互联网服务器

搭建互联网服务器需要:1、选择合适的硬件和操作系统,第一步是选择合适的硬件和操作系统;2、安装和配置操作系统,是搭建互联网服务器的关键步骤;3、安装和配置服务器软件,是搭建互联网服务器的下一步,常见的服务器软件包括Apache、Nginx、Tomcat等;4、配置防火墙和安全性,是搭建互联网服务器的重要步骤;5、域名解析和配置,是搭建互联网服务器的最后一步。

2023.09.19

2512

5

如何查看服务器状态
如何查看服务器状态

查看服务器状态的方法有使用命令行工具、图形界面工具、监控工具、日志文件和远程管理工具等。本专题为大家提供服务器状态相关的文章、下载、课程内容,供大家免费下载体验。

2023.10.09

856

5

服务器域名转接慢怎么解决
服务器域名转接慢怎么解决

服务器域名转接慢的解决办法有DNS优化、服务器优化、CDN加速、前端优化和网络优化等。本专题为大家提供服务器相关的文章、下载、课程内容,供大家免费下载体验。

2023.10.17

749

5

服务器评测软件
服务器评测软件

服务器评测软件有PassMark Software、CPU-Z、GPU-Z、CrystalDiskMark、IOmeter、JMeter、LoadRunner、Apache Bench等等。详细介绍:1、PassMark Software是一款综合性的服务器性能测试软件,可以评估服务器在各种负载条件下的性能;2、CPU-Z是一款可以提供服务器CPU详细信息的软件等等。

2023.10.17

394

3

如何开启TFTP服务器
如何开启TFTP服务器

开启TFTP服务器的步骤包括选择TFTP服务器软件、下载和安装软件、配置TFTP服务器以及启动和测试服务器等。本专题为大家提供服务器相关的文章、下载、课程内容,供大家免费下载体验。

2023.10.18

2256

4

服务器负载不兼容怎么解决
服务器负载不兼容怎么解决

解决方法:1、增加服务器资源;2、负载均衡;3、优化应用程序;4、增加缓存机制;5、分布式架构;6、限流和熔断;7、自动化扩容。想知道更详细服务器负载不兼容的解决方法,可以访问本专题下面的文章。

2023.10.20

4152

4

宽带如何接入服务器
宽带如何接入服务器

宽带接入服务器的方法有ADSL宽带接入服务器、光纤接入服务器、无线接入服务器和以太网接入服务器等。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

2023.10.20

667

5

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
PostgreSQL vs MySQL
PostgreSQL vs MySQL

共1课时 | 176人学习

使用phpenv集成环境安装极致CMS
使用phpenv集成环境安装极致CMS

共2课时 | 279人学习