在Windows上使用Workbench客户端(v6.3.5 x64)的最新副本,我试图从我的MySQL数据库创建转储文件,但总是只获得0~1Ko的转储文件。我在两台具有相同版本的服务器上尝试过,我得到了相同的结果:
此数据库由本地IIS网站使用,我停止了整个IIS服务并再次尝试,问题仍然存在。
以前我可以获取转储文件,您可以在下面的文件浏览器屏幕截图中看到:
我认为强制Workbench使用正确版本的Mysqldump工具可以解决问题,所以我去了Workbench Preferences:Edit - >偏好 - >管理 - >并进入mysqldump工具文件的路径:“C:\ Program Files \ MySQL \ MySQL Server 5.6 \ bin \ mysqldump.exe”,但这并没有解决问题。
我还尝试使用命令行生成转储文件,但失败了:
我已经仔细检查了密码,这是我通常用来在Workbench上连接MySQL实例的密码。
有人知道如何解决这个问题吗?
答案 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是传统上较差的软件,如果可以,您应该完全使用其他东西。