我正在使用这个;
mysqldump -u userabc -pabc123 dbname |
gzip > /var/backups/archives/mysql/dbname_$(date +\%d-\%m-\%Y_\%T).sql.gz
Run Code Online (Sandbox Code Playgroud)
这有效,但如果密码包含^例如它失败,我如何转义这个字符并仍然可以mysqldump使用-p标志;
mysqldump -u userabc -pabc^123 dbname |
gzip > /var/backups/archives/mysql/dbname_$(date +\%d-\%m-\%Y_\%T).sql.gz
Run Code Online (Sandbox Code Playgroud) 我每天都在转储一个 mysql wordpress 数据库作为备份。因为我不想在一年后得到 365 个 .sql 文件,所以我认为只保留过去 30 天的转储文件是不错的。始终保留最后 30 个并自动删除旧的,每天一个。
我希望在 bash 中对此进行编程,作为 cron 工作的一部分。所以我已经有了转储并将文件发送到备份服务器的部分。我只需要添加计数并每天删除最旧的一个片段。
这是我得到的(用户名和 pswd 保存在 .my.cnf 文件中):
now=$(date +'%m-%d-%y')
mysqldump -h mysql.server.com my_database | gzip -9 > ${home}/dbBackups/db_backup.sql.gz
mv ${home}/dbBackups/db_backup.sql.gz ${home}/dbBackups/${now}_db_backup.sql.gz
scp ${home}/dbBackups/${now}_db_backup.sql.gz backup_user@backup.server.com:/home/backup_user/backup.server.com/dbBackups/
Run Code Online (Sandbox Code Playgroud)
有没有人知道如何实现这个功能?
我目前正在寻找一种快速方法来同步我的生产数据库和我的dev-db.
我想用这样的东西做这件事:
mysqladmin -u <user> -p<password> <dev-db_name> | mysqldump -u <user> -p<password> --databases <production-db-name> --add-drop-table
Run Code Online (Sandbox Code Playgroud)
但它似乎只是打印屏幕上的所有drump而不是将它管道到mysqladmin util.是否有任何建议可以改善这一点?
我正在尝试编写一个PHP程序,以自动创建MySQL表的备份作为服务器上的sql文件:
$backup = "$path/$tablename.sql";
$table = "mydbname.mytablename";
exec(
sprintf(
'/usr/bin/mysqldump --host=%s --user=%s --password=%s %s --quick --lock-tables --add-drop-table > %s',
$host,
$user,
$password,
$table,
$backup
)
);
我得到的.sql文件中的所有内容都是这样的:
-- MySQL dump 10.10 -- -- Host: localhost Database: mydbname.mytablename -- ------------------------------------------------------ -- Server version 5.0.27 /*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */; /*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */; /*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */; /*!40101 SET NAMES utf8 */; /*!40103 SET @OLD_TIME_ZONE=@@TIME_ZONE */; /*!40103 SET TIME_ZONE='+00:00' */; /*!40014 SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0 */; /*!40014 SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 */; /*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, …
我在使用PHP数组中的值进行mysql函数时遇到了一些困难.
我有一个阵列,
$a[0] = 89
$a[1] = 23
$a[2] = 15
$a[3] = 28
$a[4] = ...
Run Code Online (Sandbox Code Playgroud)
我需要像这样生成一个字符串:
$result_array = 'ID = 89 OR ID = 23 OR ID = 15 OR ID = 28 OR ID = ...';
Run Code Online (Sandbox Code Playgroud)
要从我的数据库中获取值:
$result_test = mysql_query("SELECT * FROM Events Where $result_array");
Run Code Online (Sandbox Code Playgroud)
但我不知道如何从数组$ a创建字符串$ result_array.
我正在尝试使用现有网站在我的PC中构建开发环境.我复制了所有数据并导出Drupal DB,而不是缓存*和监视程序表,以使脚本变得很小.当我尝试导入大约12MB的脚本时,我得到"MySQL服务器消失"错误,不知道为什么或如何解决它.我试过从phpMyAdmin,从服务器中的MySQL命令行等等.有帮助吗?
提前致谢
我正在寻找一种备份MySQL上所有数据库的方法.我写了一个运行mysqldump的批处理文件,它工作正常.不幸的是我使用MySQL 5.0并且无法升级到包含mysqldump中的information_schema的较新版本.
任何人都可以让我知道我应该如何转储这个数据库?我在过去的8个小时里一直在努力,但是无法让它发挥作用!
希望有人能提供帮助.
干杯
亚历克斯
我最有效的方法是导出200个数据库,总共40GB的数据,并将它们导入另一个服务器?我原本计划运行一个脚本,将每个数据库导出到自己的sql文件,然后将它们导入新服务器.如果这是最好的方法,是否有一些额外的标志,我可以传递给mysqldump,将加快它?
我看到的另一个选项是直接通过SSH将mysqldump传递给导入.这会是一个更好的选择吗?如果是这样,你能提供一些关于脚本可能是什么样子的信息吗?
所以我有一个运行批处理脚本的批处理服务器.此脚本为我们的数据库服务器发出mysqldump命令.
mysqldump -h nnn.nn.nnn.nn -u username -p password --tab=/var/batchfiles/ --fields-enclosed-by='"' --fields-terminated-by="," --fields-escaped-by="\\" --lines-terminated-by="\\n" store_locations stores
Run Code Online (Sandbox Code Playgroud)
当命令运行时,我收到一个错误:
Can't create/write to file '/var/mi6/batch/stores.txt' (Errcode: 2) when executing 'SELECT INTO OUTFILE'
Run Code Online (Sandbox Code Playgroud)
现在我已经尝试按照http://techtots.blogspot.com/2011/12/using-mysqldump-to-export-csv-file.html的建议输出到/ tmp目录,它仍然无法写入文件因为它告诉我它已经存在,即使它没有.
最重要的是,我希望能够在服务器A上运行一个脚本,该脚本为数据库服务器发出mysql命令,并将该输出文件以csv格式保存到服务器A.
仅供参考,我也试过运行mysql并将输出重定向到文件.这会创建一个标签文件但你没有太多的输出控制权,所以它也不会真正起作用.
当我在perl中执行以下操作时,我总是得到错误代码"0".即使例如mysql数据库不存在,或密码错误等.
@args = ("mysqldump -u root -ppassword database1 | gzip -c > /usr/local/bin/database.gzip");
system(@args) == 0
or die "Command failed: @args \nError Code: $? \n";
Run Code Online (Sandbox Code Playgroud)
我的目标是捕获mysqldump命令的任何错误,因此我可以确保备份是否成功.