我遇到了有关数据库导出的问题。首先,我必须澄清我正在使用MySQL Workbench 5.2.47。到目前为止,我遵循的过程如下:
>
我按照http://mysqlworkbench.org/2012/07/migrating-from-ms-sql-server-to-mysql-using-workbench-migration-wizard/的指示创建了与MSSQL DB的连接,以便将其转换为MySQL DB。
然后我还检查了我的数据是否已导入数据库。
现在我想将其导出为sql文件/或最好导出为frm、myi、myd文件,以便将它们放置在我的服务器中。
我试图从
>
服务器管理-
已从安全性更改密码(用户和权限)
但我遇到了问题
Dumping test (all tables)
Running: mysqldump.exe --defaults-extra-file="c:\users\d_micha\appdata\local\temp\tmpgtwa_m.cnf" --user=root --max_allowed_packet=1G --host=localhost --port=3306 --default-character-set=utf8 --single-transaction=TRUE --routines --events --no-data "test"
mysqldump: Got error: 1045: Access denied for user 'root'@'localhost' (using password: NO) when trying to connect
Operation failed with exitcode 2
我不知道我可能做错了什么,我已经在谷歌中搜索了找到解决方案,但它应该正常导出。
任何其他信息将应要求提供。
谢谢你。
请尝试此解决方案https://bugs.mysql.com/bug.php?id=91640.
实际上,我们可以使用工作台中的高级选项来根据https://stackoverflow.com/a/52944315/1694902禁用列统计信息-见下文:
这篇文章的作者说,“不幸的是,每次启动MySQL Workbench时,您都必须这样做。”
这是我的工作,也许它可以帮助别人。
这更像是一种解决方法,但它会让您获得所需的结果。只需使用提供的信息从CLI获取MySQL表的转储 - 基本上它只是复制
从日志中看到,mysqldump 具有参数 --defaults-file。此文件可以并且将包含连接凭据,如密码。显然MySQLWorkbench没有提供此文件的密码(“使用密码:否”)。
因此,只需创建一个名为database.cnf的文件,并将其放在计算机的某个位置(例如c:\temp\database.cnf),其中包含如下凭据:
[client]
user=root
password=your-root-password
single-transaction=TRUE
host=localhost
port=3306
default-character-set=utf8
max_allowed_packet=1G
由于这也适用于命令行中的任何其他参数,因此您还可以添加所有其他内容,例如--single-transaction等。现在以日志文件条目为例:
Running: mysqldump.exe --defaults-extra-file="c:\users\d_micha\appdata\local\temp\tmpgtwa_m.cnf" --user=root --max_allowed_packet=1G --host=localhost --port=3306 --default-character-set=utf8 --single-transaction=TRUE --routines --events --no-data "test"
并替换- defaults-extra-file参数以指向您的数据库。cnf -还要删除“Running:”信息和您已经在数据库中提供的每个参数。cnf:
mysqldump.exe --defaults-extra-file="c:\temp\database.cnf" --routines --events --no-data "test"
然后打开一个Shell,转到您的MySQLWorkbene-Folder并运行命令,例如:
cd c:\Program Files\MySQL\MySQL Workbench 6.3 CE\
mmysqldump.exe --defaults-extra-file="c:\temp\database.cnf" --routines --events --no-data "test" > c:\Users\user\Downloads\table1.sql
不要忘记将输出发送到一个文件中!
长话短说:使用CLI工具mysqldump,MySQLWorkbench也这样做,但不是正确的方式。
如果全局配置文件存在于以下位置之一,mysqldump也会读取该文件:
因此,您可以将上面编辑的 cnf 文件中的信息放到此位置之一,然后运行 mysqldump 命令而不使用 --defaults-file-parameter
这可能是最复杂的解决方案:my.cnf将使用mysqldump接受的任何参数。那么,为什么不使用它来配置您的转储呢?只需将所有参数添加到my.cnf中
[client]
user=root
password=secretPassword
single-transaction=TRUE
host=localhost
protocol=tcp
port=3306
default-character-set=utf8
skip-triggers=TRUE
all-databases=TRUE
all-tablespaces=TRUE
现在在shell /命令行上运行mysqldump,不带任何参数,就可以了:
cd c:\Program Files\MySQL\MySQL Workbench 6.3 CE\
mysqldump.exe > c:\Users\user\Downloads\dump.sql
当您没有<code>LOCK TABLES</code>权限时,我看到过这个问题。您将在日志中的其余拒绝访问错误之前看到此错误。尝试在工作台的“数据导出”面板中的高级设置中禁用<code>LOCK TABLES</code>。
mysqldump: Got error: 1044: Access denied for user 'XXX'@'%' to database 'XXX' when doing LOCK TABLES
尝试导出大型数据库时,我收到以下错误消息: 有什么线索吗?我应该怎么做才能成功地将表从在线导出到离线。我想从Web服务器下载本地的sql。 在这种情况下,我正在使用mysql工作台从在线导出sql。
我正试图从MySQL Workbench导出数据库,但在导出过程中我得到了以下信息: 正在运行:mysqldump.exe-默认值-file = " c:\ users \ user \ appdata \ local \ temp \ tmp 2h 91 wa . CNF "-user = root-host = localhost-protocol = TCP-port = 3306-defa
我试图使用Windows上的MySQL Workbench 6.0导出我的数据库,以发送到Amazon RDS中的db实例,但我得到了以下错误: 有人有什么想法可以帮助我吗?
当我尝试更改 mysql 数据库上的特权时,出现以下错误: 请确保所使用的帐户有权访问MySQL授权表。执行“描述mysql.db”时出错 这也是它不让我从另一个数据库导入表的原因吗?当我尝试时,我得到了错误: 操作失败与exitcode 1 09:20:16恢复D:\ design and photos \ boo . com \ db dump \ 070113 . SQL 正在运行:mysq
我正在尝试连接到mysql工作台,但遇到以下错误 错误消息无法连接到数据库服务器 用户“root”从主机到服务器的连接尝试失败(位于127.0.0.1:3306:无法打开数据库)。 请:1。检查mysql是否正在服务器127.0.0.1上运行 检查mysql是否在端口3306上运行(注意:3306是默认值,但可以更改) 检查root是否具有从您的地址连接到127.0.0.1的权限(mysql权限定
我想从我的实时服务器PC导出我的Web应用程序和站点的数据库,但我收到以下错误: 14:18:07 倾倒 ct (所有表) 正在运行: mysqldump.exe --defaults-file=“c:\users\admini~1\appdata\local\temp\tmphnpsqu.cnf” --user=root --host=localhost --protocol=tcp --por