MySQL 5.6无法备份数据库

时间:2016-05-02 12:03:21

标签: mysql mysql-workbench mysqldump

在Windows上使用Workbench客户端(v6.3.5 x64)的最新副本,我试图从我的MySQL数据库创建转储文件,但总是只获得0~1Ko的转储文件。我在两台具有相同版本的服务器上尝试过,我得到了相同的结果:

  • 执行任务时出错:'ascii'编解码器无法对位置7中的字符u'\ xa3'进行编码:序号不在范围内(128)
  • 执行任务时出错[错误32]进程无法访问该文件,因为该文件正由另一个进程使用:'c:\ users \ user.web \ appdata \ local \ temp \ 2 \ tmpp0town.cnf'

enter image description here

enter image description here

此数据库由本地IIS网站使用,我停止了整个IIS服务并再次尝试,问题仍然存在。

以前我可以获取转储文件,您可以在下面的文件浏览器屏幕截图中看到:

enter image description here

我认为强制Workbench使用正确版本的Mysqldump工具可以解决问题,所以我去了Workbench Preferences:Edit - >偏好 - >管理 - >并进入mysqldump工具文件的路径:“C:\ Program Files \ MySQL \ MySQL Server 5.6 \ bin \ mysqldump.exe”,但这并没有解决问题。

我还尝试使用命令行生成转储文件,但失败了:

enter image description here

我已经仔细检查了密码,这是我通常用来在Workbench上连接MySQL实例的密码。

有人知道如何解决这个问题吗?

2 个答案:

答案 0 :(得分:0)

这里有两件事:

1)确保在命令行中包含带双引号的空格的路径和名称,否则这些名称可能会被解释为不同的参数。

2)MySQL Workbench中的错误消息似乎表明您的表中的数据不是预期的格式。检查要导出的表及其包含的数据。从错误中可以看出,您有一个包含非ascii字符的ascii编码列。如果是这种情况,您首先要整合您的表格,使得编码与内容匹配(即将列或整个表格转换为例如utf8),或者删除所有与预期编码不匹配的内容。

答案 1 :(得分:0)

使用MySQL Workbench 8.0,我的错误与您的第一个相同,只是我的CURSOR V_LIST_TABLES IS SELECT OBJECT_TYPE, OWNER ||'.'|| OBJECT_NAME AS SCHEMA, OBJECT_NAME FROM DBA_OBJECTS U WHERE OWNER = 'MYSCHEMA' AND OBJECT_TYPE IN ('TABLE'); BEGIN FOR INDX_CURSOR IN V_LIST_TABLES LOOP IF INDX_CURSOR.OBJECT_NAME LIKE '%TEST%' THEN FOR INDX_CURSOR_2 IN ('SELECT * FROM' || INDX_CURSOR.OBJECT_NAME) LOOP NULL; -- DO SOMETHINGS END LOOP; END IF; END LOOP; 字符位于位置4。我们收到该错误,因为在密码中指定的从0开始的位置,有一个{{1 }}字符。您是否知道至少有since 2011个MySQL Workbench does not allow密码,用于导出/转储数据库时包含non-ascii characters?在这一点上,我们可以认为它是已建立的传统-例如,MySQL Workbench是传统上较差的软件,如果可以,您应该完全使用其他东西。

相关问题