我每周都会把所有桌子都丢掉来备份.但后来我明白它只存储表的.frm文件.它没有显示表的.MYD和.MYI文件.所以我只有我的数据库的.frm文件,mydatabase也是innodb.那么我可以在数据库中获取包含数据的数据库吗?
我正在尝试将MySQL数据库从Linux机器移动到运行Windows Vista的机器.
使用mysqldump,我已经获得了一个.sql
文件,我已将其移至Windows机器.下一步是什么?
如果我要转移到另一台Linux机器,可以做这样的事情:
mysql -u username -p databasename < dumpfile.sql
Run Code Online (Sandbox Code Playgroud)
有没有人知道一个类似于Windows命令行的调用?或者有工具来实现这一目标吗?
当我从Windows命令行尝试这种类型的命令时,我得到:
'mysql' is not recognized as an internal or external command
Run Code Online (Sandbox Code Playgroud)
我也尝试过:
mysql> source C:\Stuff\dumpfile.sql
Run Code Online (Sandbox Code Playgroud)
这给了:
Failed to open file 'C:\Stuff\dumpfile.sql', error: 2
Run Code Online (Sandbox Code Playgroud) 我想知道如何将mysqldump添加到我的MAMP环境中.我google了一下,发现只有社区MySQL服务器版本.但我不想安装另一个MySQL - 主要是因为我想在任何实验之前先保存我的数据.
thx提前帮助(可能只是一个简单的链接:)
我有一个包含一个数据库和大约150个表的大型SQL文件.我想mysqlimport
用来导入该数据库,但是,我希望导入过程忽略或跳过几个表.导入所有表的正确语法是什么,但忽略其中一些?谢谢.
我有一个表遍布两个运行MySql 4的服务器.我需要将这些表合并到一个服务器中以用于我们的测试环境.
这些表每个都有数百万条记录,它们在两台服务器上的原因是因为它们有多大.任何表格的改变和分页都会给我们带来太大的性能损失.
因为它们处于生产环境中,所以我不可能在现有服务器上以任何方式更改它们.
问题是主键是一个唯一的自动递增字段,因此存在交叉点.
我一直在试图弄清楚如何使用mysqldump命令来忽略某些字段,但是--disable-keys只是改变了表,而不是完全摆脱键.
在这一点上,我看起来需要修改数据库结构,以便将主键的校验和或哈希用作实际应该唯一的两个唯一字段的组合...我真的不想做这个.
救命!
我有一个MySQLDump生成的SQL文件.如何通过命令提示符恢复它?
我正在尝试使用mysqldump
仅导出数据库模式 - 没有数据,没有其他SQL注释,只有CREATE TABLE
命令.这是我到目前为止所得到的:
mysqldump -h localhost -u root -p --no-data --compact some_db
Run Code Online (Sandbox Code Playgroud)
它几乎实现了我想要的,但我想消除"字符集"行(如下面示例输出中的前3行).有没有mysqldump
选择呢?
/*!40101 SET character_set_client = @saved_cs_client */;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8 */;
CREATE TABLE `foo` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`bar_id` int(11) DEFAULT NULL,
`bazz` varchar(255) DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE=MyISAM AUTO_INCREMENT=369348 DEFAULT CHARSET=latin1;
/*!40101 SET character_set_client = @saved_cs_client */;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8 …
Run Code Online (Sandbox Code Playgroud) 我在VPS上使用了这个脚本多年.它仍然有效.
DBLIST=`mysql -uroot -pROOT_PASSWORD -ANe"SELECT GROUP_CONCAT(schema_name) FROM information_schema.schemata WHERE schema_name NOT IN ('information_schema','performance_schema')" | sed 's/,/ /g'`
MYSQLDUMP_OPTIONS="-uroot -pROOT_PASSWORD --single-transaction --routines --triggers"
BACKUP_DEST="/home/backup/db/"
for DB in `echo "${DBLIST}"`
do
mysqldump ${MYSQLDUMP_OPTIONS} ${DB} | gzip > ${BACKUP_DEST}/${DB}.sql.gz &
done
wait
tar -czvf /home/backup/db2/`date +\%G-\%m-\%d`_db.tar.gz ${BACKUP_DEST}
Run Code Online (Sandbox Code Playgroud)
现在我要搬到另一个托管.我正在尝试使用相同的脚本(当然我用新凭据更改了ROOT_PASSWORD)但我不知道为什么我得到这个:
mysqldump: Got errno 32 on write
mysqldump: Got errno 32 on write
mysqldump: Got errno 32 on write
mysqldump: Got errno 32 on write
mysqldump: Got errno 32 on write
mysqldump: Got errno 32 on …
Run Code Online (Sandbox Code Playgroud) 鉴于mysqldump
导致导入错误的错误:
namtar backups # mysql -p < 2010-12-01.sql
Enter password:
ERROR 1062 (23000) at line 8020: Duplicate entry 'l?he?' for key 'wrd_txt'
Run Code Online (Sandbox Code Playgroud)
是否有一种简单的方法可以告诉导入只是跳过给定的行并继续?
(是的,我知道我可以手动编辑文件或解析输出,但它不是很方便)
我正在尝试组装mysqldump所需的所有选项,以将我的应用程序数据库使用的所有内容创建到单个脚本中.这包括数据库本身和所有数据库用户/密码/权限.
除了用户篇之外,我已经弄清楚了......这就是我目前正在使用的内容:
mysqldump -h host -u root -p \
--add-drop-database --routines -B database_name > backup.sql
Run Code Online (Sandbox Code Playgroud)
那么,我错过了什么?