草庐IT

mySQLdump

全部标签

mysql - 如何使用 mysqldump 保存 UTF8mb4 数据?

我正在使用mysqldump转储包含UTF8MB4列和UTF8MB4数据的数据库。当我将此.sql文件导入支持UTF8MB4的新数据库时,所有UTF8MB4字符都被转换为????。有人知道如何使用UTF8MB4使MySQL和导入工作吗? 最佳答案 使用mysqldump时,您应该使用--default-character-set=utf8mb4选项指定字符集。$mysqldump--default-character-set=utf8mb4-uusername-pdatabase>dump.sql

mysql - 是否有可能找出两个 mysql 转储文件之间的区别?

我需要知道一个进程中mysql数据库发生的所有变化。所有更改都是仅插入的。为此,我在使用以下命令之前和之后转储了数据库>mysqldump-uroot-psgdatabase_310ec9ef0bcea1f9c677369ea973ab75>AfteOpDb.sql有没有一种方法可以逐个表地查看数据库中发生的所有插入?我的意思不是文本比较工具,以图形方式显示差异的特定于db的东西会非常好。操作系统:window 最佳答案 如OMGPonies所述在thisanswer,您可以使用DIFF工具。可以免费使用的一对夫妇(同样,在原始帖子

mysql - 如何在不覆盖重复字段的情况下将 SQL 转储导入表

如何将MySQL转储文件导入数据库而不覆盖具有相同值的记录? 最佳答案 这是link到手册。您可以指定是否替换现有记录。--replace,-r--replace和--ignore选项控制输入行的处理,这些输入行在唯一键值上复制现有行。如果指定--replace,新行将替换具有相同唯一键值的现有行。如果指定--ignore,将跳过在唯一键值上复制现有行的输入行。如果您未指定任何一个选项,则在找到重复的键值时会发生错误,并且文本文件的其余部分将被忽略。如果您使用的是phpmyadmin,那么您也可以在GUI中选择此选项。

mysqldump 使用数据库名称完全限定触发器

我正在尝试使用mysqldump导出需要使用不同数据库名称导入的数据库。查看mysqldump生成的SQL,触发器似乎是唯一与源数据库名称完全限定的对象名称,因此满足了我的需求。无论如何,有没有指示mysqldump不完全限定任何对象名称,包括触发器? 最佳答案 我遇到了同样的问题,我找到了解决方案。我使用MySQLWorkbench设计我的数据库,并在那里创建了一些触发器。他们都使用语法CREATETRIGGERtrigger_name除了一个:CREATETRIGGERdbname.trigger_name(这只是我的错误)。M

mysqldump 限制之间的记录

mysqldump--opt--where="trueLIMIT100"dbname>dbname.sql但是如果我想要第2000行到第3000行的记录怎么办?像一般的sql一样,我们可以使用LIMIT2000、3000;但是mysqldump是否有类似的替代方案? 最佳答案 有--where好像是sql注入(inject)提示,然而方便mysqldump--opt--where="1ORDERBYidLIMIT2000,1000"dbname>dbname.sql 关于mysqldum

mysql - 在 Git 推送和 pull 上导出和导入数据库

我需要我的数据库在两台本地计算机之间保持同步,而无需在两者之间使用服务器。经过一些研究后,我认为我可以使用Githooks为我完成任务。我基本上想要的是在gitpush上运行mysqldump(并将SQL文件添加到提交中)并在上运行mysqlimport>gitpull到远程存储库和从远程存储库中提取。我找不到任何特定的Hook。我尝试了pre-commitHook,但这并没有在当前提交中添加SQL文件。然后我尝试了prepare-commit,但没有成功。有没有人得到这个问题的答案? 最佳答案 BenKulbertis的这个解决方

shell - cron 作业出错,但在 shell 上工作正常

我正在配置Cron以自动备份我的sql。但是,我认为Cron存在一些问题并且运行不正常。这是我正在运行的命令:mysqldump--opt-Q-uhereisthename-p'hereisthepasswordwithstrangecharactersthatmustbeescaped'databasename|gzip>/home2/username/backups/backupnamefolder/backupdbwebsitename.`date+"%Y-%m-%d"`.gz当我通过SSH运行它时,它工作正常并生成备份。但是,如果我通过Cron运行它,我会收到以下错误:/bin

mysql - 导入从 mysqldump --routines 生成的 mysql 程序

我使用mysqldump工具制作我的数据库的副本。问题是,当我使用--routines参数输出我的存储过程和我的数据时,生成的输出在我尝试导入它时会导致错误。它是这样的:%mysqldump--routinesMyDB|mysqlMyDB2(其中MyDB2已存在但为空)我得到的错误如下:ERROR1064(42000)atline307:YouhaveanerrorinyourSQLsyntax;checkthemanualthatcorrespondstoyourMySQLserverversionfortherightsyntaxtousenear''atline23如果我省略--

mysql - 无法让 mysqldump 连接到本地 mysql 实例(错误 2003/10061)

我在windowsxp机器上安装了mysql5.1。它正在监听端口3308。我正在尝试使用mysqldump:>mysqldump-uroot-pmypassworddbname>out.sql出现错误:mysqldump:Goterror:2003:Can'tconnecttoMySQLserveron'localhost'(10061)whentryingtoconnect不确定问题出在哪里,查看--help转储变量并显示port=3308,正如我在mysql安装中设置的(而不是默认的3306)。我认为我的安装没有任何不同。我也尝试在命令行上显式设置端口号,但仍然出现同样的错误。谢

mysql - 配置 MySQL 服务器以避免 "MySQL Server has gone away"错误

当我尝试使用转储建立MySQL数据库时,出现以下错误消息ERROR2006(HY000)atline312:MySQLserverhasgoneaway经过广泛的谷歌搜索(并在本论坛中搜索),我发现我必须增加my.ini文件中的max_allowed_pa​​cket。我已经为这个参数尝试了各种值(包括非常大的值),但我无法摆脱这个错误。即使我在命令行中指定--max_allowed-packet选项(如下)也没有用C:\Users\Panora>mysql--user=root--password=root--max-allowed-packet=600Mdb我尝试使用以下命令创建转