我用PHP写了一些代码到备份数据库.
这是我的代码:
exec("mysqldump --opt -h localhost -u root test > mydb.sql");
Run Code Online (Sandbox Code Playgroud)
但是我的文件(mydb.sql)中有0字节.我也运行passthru(),system(),但它仍然得到0字节.
我尝试使用命令.有用.
我使用最新的XAMPP作为我的localhost.
那么,我怎样才能让它正常工作?
mysqldump --no-create-info --extended-insert=FALSE --compact --where="1 limit 10 offset 20 '" -u root -p mydatabase users > users-10-10.sql
Run Code Online (Sandbox Code Playgroud)
我尝试了上面的命令,偏移量似乎不起作用。它首先获取数据。
有没有办法调整这个问题?
我必须为我们的数据库编写一个小的多线程 mysqldump 脚本,但由于单个表包含一个空格,我遇到了一些问题。
我的第一次尝试非常简单:
for TABLE in `mysql -u user -ppassword -e 'show tables;' dbname`
do
while [ 1 ]
do
if [ `jobs -r | wc -l` -lt $MAXTHREADS ]
then
break
else
sleep 1
fi
done
mysqldump -u user -ppassword dbname $TABLE
done
Run Code Online (Sandbox Code Playgroud)
不幸的是,有一张桌子,里面有一个空格。我在 google 上搜索了一点,使用 for 循环和命令的多行输出,更改 $IFS 变量是一个常见的解决方案。所以我把它改成了\n\b(不知何故,当我只使用\n时$IFS是空的)但这是一个坏主意,因为它导致mysql命令不再起作用。
我认为,当我事先获取表并在每次在 for 循环中使用 mysqldump 时将 $IFS 改回时,这应该不是问题。但是我又弄错了,因为我现在只有一行所有表。
我目前的代码:
TABLES=$(mysql -u user -ppassword -e "show tables" dbname | tail -n +2)
OIFS="$IFS"
AIFS=$(echo -en "\n\b")
IFS="$AIFS"
for TABLE in …Run Code Online (Sandbox Code Playgroud) 我有 3 个问题:
1. 如何使用 mysqldump 之类的命令获取 db2 dump database -
2. 如果我希望此转储包含查找表,是否可以这样做,或者我必须逐个手动导出查找表?
3. 之后我如何使用输出转储文件?
提前致谢
有谁知道我在哪里可以找到一个SQL转储形式的英语单词列表?
我在网上找到了一个单词列表,但它是一个大的纯文本文件; 单词由新行字符分隔.我尝试编写一个PHP脚本来循环显示单词并将它们插入到数据库中,但很快就会在读取大文件时遇到内存问题.我已将文件拆分为4个较小的文件,但我仍然遇到内存错误.如果有人知道如何将我当前的文件转换为更加导入的朋友格式,请告诉我.
我正在尝试导入一个大型数据库,但因为有一个索引,所以导入数据库需要永远.我尝试将原始文件复制到另一台机器但由于某种原因,最大的表没有被读取给我一个错误:can't read file: 'tablename.MYD.所以我mysqldump我的旧数据库,但它使用索引.我不能再这样做,因为它需要很长时间.
我正在尝试导入数据库但不知道如何在没有索引的情况下执行此操作.我认为导入后添加索引要快得多.有没有人有什么建议?
它真的很简单,我只是无法弄清楚语法.
我想在另一台服务器上复制我的服务器设置.
我可以转储我的所有数据库
mysqldump -uroot -p --alldatabases > all.sql
Run Code Online (Sandbox Code Playgroud)
但是如何将所有这些导入到另一台服务器上的全新mysql设置中呢?
我试图通过PHP获取数据库的mysqldump,我只能通过这种方式通过命令行进行数据库转储.
d:
cd "d:\wamp\bin\mysql\mysql5.5.24\bin"
mysqldump.exe
mysqldump --user=user --password=password --host=localhost db_name > "D:\dump\test.sql"
Run Code Online (Sandbox Code Playgroud)
当试图以这种方式从php执行此命令时,我得到一个空的转储文件.
$cmd = 'd: cd "d:/wamp/bin/mysql/mysql5.5.24/bin"mysqldump.exe>mysqldump --user=user --password=password --host=localhost db_name > "D:\dump\test.sql"';
exec($cmd);
Run Code Online (Sandbox Code Playgroud)
或者这样
$cmd = 'd:/wamp/bin/mysql/mysql5.5.24/bin>mysqldump.exe>mysqldump --user=user --password=password --host=localhost db_name > D:\dump\test.sql';
exec($cmd);
Run Code Online (Sandbox Code Playgroud)
或者这样
$cmd = 'd:/wamp/bin/mysql/mysql5.5.24/bin>mysqldump --user=user --password=password --host=localhost db_name > D:\dump\test.sql';
exec($cmd);
Run Code Online (Sandbox Code Playgroud)
我只得到空的转储文件.我已经经历了很多的问题在这里一样了这个,而这和很多,但没有该解决方案为我工作.
请查看并建议任何可行的方法.
谢谢.
我创建了包含多个表的MySQL模式,然后我决定使用以下命令为每个表添加外键约束:
ALTER TABLE Orders
ADD FOREIGN KEY (P_Id)
REFERENCES Persons(P_Id)
Run Code Online (Sandbox Code Playgroud)
如何获取架构的备份(包含外键)以便我可以在另一台机器上复制它?
请注意,SHOW CREATE TABLEmysqldump在我的情况下不起作用,因为它们只创建一个UNIQUE KEY约束而不是FOREIGN KEY.