草庐IT

MYSQLDUMP

全部标签

mysqldump + auto_increment 导致主键错误

我正在使用mysqldump(a)转储一个表,然后(b)将它插入到别处。当我尝试执行(b)部分时出现问题。这是我得到的错误。键“PRIMARY”的重复条目“1”现在,坚持,坚持。我知道我没有插入重复的主键....我检查了CREATETABLE语句。id字段上的auto_incremement保留为id列的最大值:AUTO_INCREMENT=45634650。我认为问题在于,如果您尝试插入id值小于auto_increment指定值的任何行,MySQL将给出此错误....无论该id是否重复。我尝试从TABLECREATE语句中手动删除AUTO_INCREMENT。仍然是同样的错误。更新

mysql - 无需停机即可移动 mysql 服务器

我有一个在服务器上运行的小型mysql数据库(200MB)。使用它的应用程序大约每分钟写入100次,而读取次数略少。我需要将该数据库移动到新服务器,最好不要停机或停机时间尽可能短。写入其中的所有数据都不会丢失。我猜做一个mysqldump然后恢复它会花费太长时间,正确的方法是什么?大部分表都使用Innodb。 最佳答案 您可以设置复制。使您的新服务器成为当前服务器的从属服务器。然后切换主/从连接(互联网上有足够多的关于如何准确地做到这一点,但最后你有2个服务器几乎相同的内容,一个只是稍微领先另一个,你交换他们的角色).一旦你切换了它

MySQL 转储和导入不保留编码?

我正在尝试将一个表从远程机器上的MySQL数据库复制到我本地机器上的另一个MySQL数据库。我注意到在将转储导入我的本地机器后,出现了诸如â€â„¢之类的字符,而不是单引号。我认为这是一个编码问题,所以我进入了两个数据库并运行了showcreatetableposts,在两者接近尾声时,我看到了CHARSET=utf8。此外,我在转储文件上运行了file-i,在scp将其发送到我的本地机器之前和之后,它们都是utf8。但是,当我导入这个文件时,我之前得到了这个:attendees—policymakers,及之后:attendees—policymakers,我不确定为什么会这样,

python - 从 mysqldump 备份执行相互依赖的 View

mysqldump使用按字母顺序列出的表(和View)创建转储。当表之间存在外键关系时,这不是很方便,但是,通过运行可以轻松解决问题:SETFOREIGN_KEY_CHECKS=0;我有一种情况,例如,Viewvwapple依赖于Viewvworange。使用mysqldump,vwapple在vworange之前列出并执行,这是有问题的,因为我们会收到“Viewvworange不存在”错误消息。这种情况如何解决?View是否具有与表类似的解决方案?还是让每个View独立来解决这个问题更好?注意我正在使用python脚本恢复数据库。每个View和表都在其单独的.sql文件中,因为我想独

mysql - 为 postgres 创建 mysqldump

我正在创建一个mysql转储文件以导入到postgresql中。我正在使用:mysqldump-uusername-p--compatible=postgresqldatabasename>outputfile.sql现在,我遇到了INSERT语句的问题,如果有bool列,MySql转储会将此值作为0或1(true或false)写入文件,但是当我导入时使用psql进行转储,此程序要求bool字段的值为“true”或“false”。有什么解决办法吗? 最佳答案 user3182456的回答很棒。但是,如果您无权访问pg_cast并且您

mysqldump 仅转储具有特定前缀的数据库

我有大约100个不同的数据库,我想用mysqldump转储那些以前缀“asd_”开头的数据库我试过了,但没用:mysqldump-u[user]-p[pwd]-h[server.url]asd_*--single-transaction>backup.sql我也试过:mysqldump-u[user]-p[pwd]-h[server.url]"SHOWDATABASESLIKE'asd_%'"--single-transaction>backup.sql但两者都不起作用。感谢您的帮助。 最佳答案 单独的mysqldump不支持表或数

mysql - 用mysqldump设置不同的内存引擎

我想使用mysqldump复制我的mysql数据库。我使用这个unix命令mysqldumpdb1|mysqldb2但是db1都是engine=myisam的表。我希望db2拥有所有带有engine=memory的表。有谁知道在一个命令中执行此操作的方法吗?我不想调用php/python等脚本来更改for循环中的所有表。谢谢 最佳答案 感谢MarcB,我找到了这个解决方案。mysqldumpdb1>dump.sql&&sed-i's/ENGINE=MyISAM/ENGINE=MEMORY/g'dump.sql&&mysqldb2通过

mysql - 将 MySQL 转储导入 R(不需要 MySQL 服务器)

RMySQL和sqldf等软件包允许与本地或远程数据库服务器进行交互。我正在创建一个可移植项目,该项目涉及在并不总是能够访问正在运行的服务器但确实总是能够访问最新的.sql转储的情况下(或在设备上)导入sql数据数据库。目标似乎很简单:在不涉及MySQL服务器的情况下将.sql转储导入R。更具体地说,我想创建一个列表列表,其中的元素对应于.sql转储中定义的任何数据库(可能有多个),这些元素又由这些数据库中的表组成。为了使其可重现,让我们使用示例sportsdbSQL文件here—如果你解压它,它叫做sportsdb_sample_mysql_20080303.sql。有人会认为sql

cmd - 在没有密码提示的情况下从脚本调用 mysqldump

我需要在VisualBasic中执行cmd命令。这并不难,但我需要在外部程序运行时给出一个论点。F:\mysql-5.7.13-winx64\bin\mysqldump.exe-h-u-p>abcd.sql但是在执行之后,程序会要求输入密码。那我该怎么做呢?你好,多米尼克 最佳答案 您可以在命令行中提供密码(不安全):mysqldump.exe-h-u--password="my_password">abcd.sql您还可以使用Mysqloptionsfile.使用凭据详细信息创建my.cnf:[mysqldump]host="my

没有触发器的 Mysqldump

我正在使用mysqldump来共享数据库转储,但我遇到了触发器问题。该命令不会在触发器中添加“删除”或“替换”行,这使得已经添加了具有相同触发器名称的先前转储的人出现错误:ERROR1359(HY000)atline1420:Triggeralreadyexists我在论坛上看到人们说这是mysql缺少的功能,但所有帖子都是旧的,我想知道现在是否有办法做到这一点。我知道有一种方法可以分别转储架构和数据,但我想保留一个转储以供共享。 最佳答案 有一个mysqldump选项--skip-triggers您应该使用它来跳过触发器。