Ubuntu 20.04导入MySQL报Can't initialize batch_readline错误如何解决
MySQL导入报错排查与解决方案
这个报错的核心原因是命令中重定向的输入源不是可读取的SQL文件,按以下步骤排查即可:
- 第一步:校验文件类型与路径
执行ls -l sampledb.sql查看文件属性:- 如果输出开头为
d,说明当前路径下sampledb.sql是目录,替换为正确的SQL文件路径即可 - 如果提示
No such file or directory,说明相对路径错误,优先写绝对路径。如果是WSL访问Windows系统下的文件,路径格式为/mnt/盘符/Windows下的路径,比如存放在C盘Downloads的文件路径为/mnt/c/Users/你的Windows用户名/Downloads/sampledb.sql
- 如果输出开头为
- 第二步:校验文件读取权限
执行cat sampledb.sql测试是否能正常读取文件内容:- 如果提示权限不足,执行
sudo chmod +r sampledb.sql为当前用户添加读权限 - 如果是WSL跨Windows盘访问出现权限异常,先把文件复制到WSL本地目录再操作:
cp /mnt/c/Users/xxx/Downloads/sampledb.sql ~/ cd ~/
- 如果提示权限不足,执行
- 第三步:替换导入命令规避重定向问题
如果上述两步都没问题,可以换用MySQL内部source命令导入,避免shell重定向引发的报错:- 先登录MySQL交互界面:
mysql -u root -p,输入root密码进入 - 切换到目标数据库:
use db1; - 执行导入:
source /完整路径/sampledb.sql;
这种方式还能输出更详细的导入错误信息,方便后续排查。
- 先登录MySQL交互界面:
- 特殊情况处理
如果SQL文件是zip、gz等压缩格式,先解压得到原生.sql文件再导入;如果文件下载过程中损坏,重新下载完整的SQL文件即可。
内容的提问来源于stack exchange,提问作者Sashini
相关产品推荐
相关产品推荐

