草庐IT

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

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

mysql - 为什么会出现段错误(核心已转储)?

这是我要运行的代码。它编译良好,并且在昨天之前一直运行良好。#include#includeintmain(intargc,char**argv){MYSQL*conn;MYSQL_RES*result;MYSQL_ROWrow;intnum_fields;inti;conn=mysql_init(NULL);mysql_real_connect(conn,"hostname","username","password","database_name",0,NULL,0);mysql_query(conn,"SELECT*FROMtabletest");result=mysql_sto

mysql - 如何修复男性编码的 MySQL 转储?

我收到了来自latin_swedish_1编码的MySQL数据库的转储。转储编码是UTF-8,但它显示编码错误的字符。我要导入转储的目标数据库的字符集设置为utf8_general_ci。但是,我在导入转储时保留了错误编码的字符。我的问题是:如何在导入之前修复此转储? 最佳答案 我刚刚意识到:如果您可以在支持utf8的文本编辑器中看到格式错误的字符,那么源数据库中的数据已经格式错误。我假设您在转储中看到类似“É”的字符串,而不是“é”。UTF-8序列存储在源数据库的latin1表中。生成转储时,此类序列再次转换为UTF-8。您需要通

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 - 将 MySQL 转储导入 R(不需要 MySQL 服务器)

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

mysql - PostgreSQL:从 MySQL 转储导入数据库 - 语法错误

我有一个备份的MySQL文件,我正在尝试将其导入我的PostgreSQL数据库。/Users/bheng/Desktop/database_backups/2016-06-10-local.sql我正在尝试通过命令行来完成:psql-ddb-local-Uroot-f~/Desktop/database_backups/2016-06-10-local.sql我不断得到我什至尝试登录到Postgres并运行它导入正常\i/Users/bheng/Desktop/database_backups/2016-06-10-local.sql但同样的结果发生了。我做错了什么吗?我该如何停止/预

mysql - 从 MySQL 转储导入到 Clickhouse

我想从MySQL转储导入到Clickhouse。我试过浏览officialdocs但找不到任何东西。我试过在StackOverflowanswer之后使用CSV导入.任何帮助表示赞赏。我有一个Ubuntu16.04LTS。 最佳答案 在小数据上,导出到tsv可以,但大数据就不行,因为只导出会花费很多时间。在这种情况下,您需要直接从stdout导入,Clickhouse知道如何完美地做到这一点。示例代码:mysql-uuser-ppass--compress-ss-e"SELECT*FROMtableWHEREid>0ANDid使用这

mysql 在导入数据库转储时挂起

我们有一个来自生产数据库的数据库转储导入脚本,用于重建我们的沙箱数据库。我们为此使用的语法是mysql-uuname-ppassdbname.该脚本继续创建第一个表,然后执行此操作:LOCKTABLES`ad`WRITE;/*!40000ALTERTABLE`ad`DISABLEKEYS*/;/*!40000ALTERTABLE`ad`ENABLEKEYS*/;UNLOCKTABLES;ad表中没有数据所以在DISABLEKEYS之后没有导入语句线。无论如何,此时导入挂起,当我们使用processlist查询数据库时我们看到这样的输出:|5116|uname|localhost|dbn

mysql - 转储具有限制和所有关联的一个数据库表的最佳方法

classProfile:destroyhas_many:friends,:dependent=>:destroyend我需要这样的东西:mysqldump--opt--where="1limit1000"-urootdevelopmentprofiles>profiles.sql但是这个转储包含(正如预期的那样)只有1000个配置文件行,没有关联friend、收藏夹。我应该使用YAML来做还是应该怎么做? 最佳答案 获取前5000条记录:mysqldump--opt--where="1limit5000"-urootdevelop

sql - 如何在重命名某些表/列而不导入其他表/列的同时导入 mysql 转储?

我正在将遗留数据库导入我们程序的新版本,我想知道是否有办法不从转储中导入某些列/表,并在导入时重命名其他表/列?我知道理论上我可以编辑转储文件,但这似乎是一个hack,到目前为止,我的编辑中没有一个可以处理打开1.3gb文件(是的,我已经阅读了关于这里的问题。不,到目前为止,没有一个答案对我有用。)。建议? 最佳答案 可以通过拒绝权限并使用--force作为命令行选项来不导入某些表。不导入某些列或重命名它们是不可能的(至少不编辑转储文件,或在导入后进行修改)。我的建议是:将表导入另一个数据库(1.3G应该还是很快的)。进行删除/重命