#1071 - 指定键过长(MySQL):上传.sql至phpMyAdmin遇报错求助
解决phpMyAdmin上传SQL文件时的截断/报错问题
从你提供的截断报错信息来看,CREATE TABLE coupons...语句没有完整执行,大概率是文件大小超出phpMyAdmin或服务器的限制,或者上传过程中超时导致SQL内容被截断。下面是几个针对性的解决办法:
1. 先确认SQL文件的完整性
首先检查你的.sql文件本身是否完整——用文本编辑器打开文件,看看末尾是否正常结束(比如有没有以;收尾,最后一行是不是完整的SQL语句)。如果文件本身就存在截断,那得重新获取完整的SQL文件。
2. 调整phpMyAdmin与服务器的上传限制
如果文件没问题,那基本是上传大小或超时限制在搞鬼:
- 打开phpMyAdmin的配置文件
config.inc.php(通常在phpMyAdmin安装目录下),调整以下参数:$cfg['MaxUploadSize'] = 256M; // 改成适配你文件大小的值,比如256M $cfg['UploadDir'] = '/path/to/your/folder'; // 可设置服务器上的一个目录,把SQL文件上传到这里后,直接在phpMyAdmin里选择导入,避开HTTP上传限制 - 同时检查服务器的
php.ini配置文件,修改以下参数:
修改完成后重启Web服务器(比如Apache或Nginx),再尝试上传。upload_max_filesize = 256M post_max_size = 256M max_execution_time = 300 max_input_time = 300
3. 拆分SQL文件分批次导入
如果不想修改配置,或者改完还是有问题,可以把大SQL文件拆分成多个小文件——比如按表拆分,每次只导入一个表的SQL语句,这样就不会触发大小或超时限制了。你可以用文本编辑器手动拆分,或者用专门的SQL拆分工具来操作。
4. 用命令行导入(最稳妥方案)
如果你有服务器的命令行权限,直接用MySQL命令行导入是最可靠的方式,完全不受phpMyAdmin的限制:
mysql -u 你的数据库用户名 -p 目标数据库名 < 你的sql文件路径.sql
执行后输入数据库密码即可,这种方式不仅稳定,导入速度也更快。
5. 排查SQL语句的语法问题
如果文件是完整的,那还要确认SQL语句本身是否有语法错误。比如你提供的coupons表语句末尾的c...,是不是漏写了字段(比如created_at、updated_at)?可以把完整的CREATE TABLE语句单独复制到phpMyAdmin的SQL查询窗口执行,看看是否有语法报错。
内容的提问来源于stack exchange,提问作者Rory Joseph Webb
相关产品推荐
相关产品推荐

