MySQL 5.7 mysql.exe mysqldump.exe 单独运行不会有什么问题,也就是说,只要把文件单独拷贝出来,放到其它电脑上面就可以直接运行,想用 mysql 客户端就拷贝 mysql.exe,想用 mysqldump 备份其它 mysql 服务器数据就拷贝 mysqldump.exe,对于特定情况这非常有用,也非常轻便,比如,你需要使用 mysqldump 备份一台远程 mysql 服务器上的数据库,在你实施备份操作的这一台电脑上,你不需要将 mysql 作为服务器供客户端连接,你就没有必要安装 mysql 服务,也没有必要在电脑上保存完整版 mysql 的所有文件,而完整版 mysql 要占用很多的磁盘空间。
MySQL 8.0 mysql.exe mysqldump.exe 就不能单独运行了,如果只拷贝一个文件,运行 mysql.exe 或 mysqldump.exe 的时候,不会有任何输出,程序不能正常工作,也不会有任何的错误信息输出。不报错,这就让人很无语了。
一般出现这样的情况,是因为程序运行需要加载其它的文件,通常是DLL文件,也就是动态链接库文件。既然 mysql.exe 和 mysqldump 不报错,我们就要自己来调试程序,找出哪些文件需要一起拷贝。实际上有很多软件可以检测程序依赖,比如 depends.exe,它是一个只有几百KB的小软件,下载下来,用它打开要检测的可执行文件,它会指出你要运行的程序运行时需要加载哪些文件以及现在正在运行的操作系统上缺少哪些文件。
对于 MySQL 8.0 的 mysql.exe mysqldump.exe,它指出了以下这些动态链接库文件缺失。
- LIBCRYPTO-3-X64.DLL
- LIBSSL-3-X64.DLL
- API-MS-WIN-CORE-WINRT-ERROR-L1-1-0.DLL
- API-MS-WIN-CORE-WINRT-L1-1-0.DLL
- API-MS-WIN-CORE-WINRT-ROBUFFER-L1-1-0.DLL
- API-MS-WIN-CORE-WINRT-STRING-L1-1-0.DLL
- DCOMP.DLL
- IESHIMS.DLL
复制代码 实际上,并不是所有这些文件都需要拷贝,因为有一些文件是操作系统默认就有,只要最终要运行 mysql.exe mysqldump.exe 的电脑上有这些文件,就不需要拷贝。经过实测,以下两个文件才是真正必须拷贝的文件。
- libcrypto-3-x64.dll
- libssl-3-x64.dll
复制代码 这两个文件都存在于 mysql 程序目录中 mysql.exe 和 mysqldump 所在的目录,把它们一起拷贝过去,正常运行。打完,收工。 |
|