标签: mysqldump

Windows上的mysql自动备份

是否有任何软件或工具可以每隔几个小时定期自动备份mysql数据库?

它应该在本地硬盘上备份,还能通过FTP备份到不同的服务器上吗?

我在Windows上使用mySQL(Wamp).

备份网站常规怎么样?

mysql backup mysqldump database-backups

2
推荐指数
1
解决办法
7911
查看次数

导入到新计算机后,MySQL ENUM列将不匹配引用的值

最近我导入了一个新的数据库,在我的本地机器上进行开发,但它不起作用:ENUM列仅在没有引号的情况下发送变量时才起作用.这是一个例子:

mysql.local>select count(*) from psh_products where active = 1;
+----------+
| count(*) |
+----------+
|    72782 |
+----------+
1 row in set (0.04 sec)

mysql.local>select count(*) from psh_products where active = '1';
+----------+
| count(*) |
+----------+
|        0 |
+----------+
1 row in set (0.00 sec)
Run Code Online (Sandbox Code Playgroud)

如果你想知道表结构:

CREATE TABLE `psh_products` (
  `productID` int(12) unsigned NOT NULL AUTO_INCREMENT,
  `catID` int(2) unsigned NOT NULL,
  `main_sku` varchar(255) COLLATE utf8_unicode_ci NOT NULL,
  `sku` varchar(255) COLLATE utf8_unicode_ci NOT NULL,
  `shortsku` varchar(255) COLLATE utf8_unicode_ci NOT …
Run Code Online (Sandbox Code Playgroud)

mysql mysqldump

2
推荐指数
1
解决办法
485
查看次数

php mysqldump和zip 7z

我有这行PHP备份我的数据库,工作就像一个魅力(Windows 7):

$exec_str = "{$real_path}Bin\mysqldump -h {$mysql_db_host} -u {$mysql_db_user} -p{$mysql_db_pasw} {$db_name} > {$backupdir}\\{$db_name}.sql";
Run Code Online (Sandbox Code Playgroud)

但我宁愿让.zql文件用7zip压缩(作为7z)

这个不起作用(7za.exe的路径是正确的)而是生成空的7z文件:

$exec_str = "{$real_path}Bin\mysqldump -h {$mysql_db_host} -u {$mysql_db_user} -p{$mysql_db_pasw} {$db_name} | {$real_path}7za a > {$backupdir}\\{$db_name}.sql.7z";
Run Code Online (Sandbox Code Playgroud)

我究竟做错了什么?

php mysqldump windows-7

2
推荐指数
1
解决办法
7218
查看次数

python子进程和mysqldump

我知道之前已经问过这个问题的部分内容,但我有一些相关的问题.

我正在尝试执行

mysqldump -u uname -ppassword --add-drop-database --databases databaseName | gzip > fileName
Run Code Online (Sandbox Code Playgroud)

我可能会抛弃一个非常大的(200GB?)数据库.这本身就是一件蠢事吗?然后我想通过网络发送压缩文件进行存储,删除本地转储,并清除几个表.

无论如何,我正在使用这样的子进程,因为似乎没有办法在没有子进程的情况下执行整个原始调用 是一个表名:

from subprocess import Popen, PIPE

f = open(FILENAME, 'wb')
args = ['mysqldump', '-u', 'UNAME', '-pPASSWORD', '--add-drop-database', '--databases', 'DB']

p1 = Popen(args, stdout=PIPE)
P2 = Popen('gzip', stdin=p1.stdout, stdout=f)
p2.communicate()
Run Code Online (Sandbox Code Playgroud)

但后来我读到,通信缓存内存中的数据,这对我不起作用.这是真的?

我现在最终做的是:

import gzip
subprocess.call(args, stdout=f)
f.close()

f = open(filename, 'rb')
zipFilename = filename + '.gz'
f2 = gzip.open(zipFilename, 'wb')
f2.writelines(f)
f2.close()
f.close()
Run Code Online (Sandbox Code Playgroud)

当然这需要一百万年,我讨厌它.

我的问题:1.我可以在非常大的数据库上使用我的第一种方法吗?2.我是否可能将mysqldump的输出传输到套接字并通过网络触发并在它到达时保存它,而不是发送压缩文件?

谢谢!

python subprocess mysqldump

2
推荐指数
1
解决办法
5007
查看次数

如何使用SQL从数据库中选择最近2个季度的数据?

我在我们的数据库中有过去两年的模型数据.我想从数据库表中仅选择最后2个季度的那些模型.

假设, Sysdate-> 29/07/2013(July)

我应该能够从下面的季度检索模型

Q1-April,May,June(last quarter)

Q2-July,Aug,Sep(Including quarter)
Run Code Online (Sandbox Code Playgroud)

以下查询如何更改?

Select model_id,model_name,Effective_date_from,effective_date_to 
from   model 
where active='YES';
Run Code Online (Sandbox Code Playgroud)

mysql sql oracle toad mysqldump

2
推荐指数
1
解决办法
7161
查看次数

cpanel中包含cron作业的数据库备份

我正在尝试使用cron作业恢复我的cpanel.

我的脚本是这样的

/usr/bin/mysqldump --user=username --password=password --host=localhost dbname | gzip > /home/username/backups/dbbackup_$date.sql.gz
Run Code Online (Sandbox Code Playgroud)

并在backup.sh中

#!/bin/bash
date=`date +%Y%m%d_%k%M`;
  /usr/bin/mysqldump --user=username --password=password --host=localhost dbname | gzip > /home/username/backups/dbbackup_$date.sql.gz
Run Code Online (Sandbox Code Playgroud)

我已经设定了每5分钟的时间.但它没有发生.请建议我在哪里做错了

mysql cron mysqldump cpanel

2
推荐指数
1
解决办法
6887
查看次数

使用mysqldump注释指令

我一直在使用mysql很长一段时间,但没有真正研究它的一个功能 - 转储中的指令.我目前正在进行分区,所以让我们以一个例子为例,让我们看一下http://dev.mysql.com/tech-resources/articles/mysql_55_partitioning.html中的代码:

show create table t2\G
*************************** 1. row ***************************
       Table: t2
Create Table: CREATE TABLE `t2` (
  `dt` datetime DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1
/*!50500 PARTITION BY RANGE (to_seconds(dt))
(PARTITION p01 VALUES LESS THAN (63426787200) ENGINE = MyISAM,
 PARTITION p02 VALUES LESS THAN (63426816000) ENGINE = MyISAM,
 PARTITION p03 VALUES LESS THAN (63426844800) ENGINE = MyISAM,
 PARTITION p04 VALUES LESS THAN (63426873600) ENGINE = MyISAM,
 PARTITION p05 VALUES LESS THAN (63426902400) ENGINE = MyISAM,
 PARTITION …
Run Code Online (Sandbox Code Playgroud)

mysql directive mysqldump

2
推荐指数
1
解决办法
533
查看次数

Mysqldump性能下降

在我的cronjobs里面,我每晚都会制作一个完整的mysqldump.
我的数据库在20个表中有1.5GB的总数据.
几乎每张桌子都有索引.

我做这样的备份:

mysqldump --user=user  --password=pass  --default-character-set=utf8 database
            --single-transaction| gzip > "mybackupfile"
Run Code Online (Sandbox Code Playgroud)

我做了2个月.这个过程需要将近1.5分钟,持续2个月.

上周我的托管公司改变了我的服务器.服务器更改后,此过程开始长达5分钟.我告诉服务器公司,他们将CPU从4GHz增加到6GHz,因此mysqldump进程变为3,5分钟.然后他们增加到12 GHz.但这并没有改变性能.

我检查了我的共享SSD磁盘性能hdparm.它是70 MB /秒.所以我再次抱怨 所以他们把我的硬盘改成了另一个.硬盘读取速度变为170 MB /秒.所以mysqldump进程变成了3分钟.

但持续时间远远超过以前的值.这种性能下降的原因是什么?我该如何隔离问题?

(服务器是Centos 6.4,12 GHz CPU,8 GB RAM)


编辑:我的公司再次更改服务器,我仍然有同样的问题.旧服务器有3.5分钟的备份时间,现在新服务器有5分钟的时间.压缩时的结果文件为820 MB,解压缩时为2.9 GB.

我试图找出是什么让这个转储变慢.

转储过程于11:24:32开始,于11:29:40停止.您可以从屏幕截图的时间戳中查看它.

截图:

hdparm 结果:

/dev/sda2:
 Timing cached reads:   3608 MB in  1.99 seconds = 1809.19 MB/sec
 Timing buffered disk reads: 284 MB in  3.00 seconds =  94.53 MB/sec

/dev/sda2:
 Timing cached reads:   2120 MB in  2.00 seconds = 1058.70 MB/sec …
Run Code Online (Sandbox Code Playgroud)

mysql mysqldump database-backups

2
推荐指数
1
解决办法
1946
查看次数

如何在Python中使用mysqldump和mysql复制数据库?

我正在编写一个简单的Python脚本来复制MySQL数据库.我试图根据以下SO问题及其答案复制数据库:" 不使用mysqldump复制/复制数据库 "," python subprocess和mysqldump "和" Python子进程,mysqldump和管道 ".但是,由于某些原因我的脚本无法正常工作,因为表格和数据没有出现在我的新数据库中.

我可以从我的输出中看到mysqldump正常工作(我在输出中看到"转储完成..."),所以我认为我的管道出了问题.

这是我的脚本:

#!/usr/bin/env python

import pymysql
from subprocess import Popen, PIPE, STDOUT

conn = pymysql.connect(host='127.0.0.1', port=3306, user='root', passwd='', db='mydb')
cur = conn.cursor()

print("Attempting to create new database...")
try:
    cur.execute("CREATE DATABASE mydb2")
    print("Creating new database")
except Exception:
    print("Database already exists")
print()

# close connection just to be sure
cur.close()
conn.close()

print("Trying to copy old database to new database...")

args1 = ["mysqldump", "-h", "localhost", "-P", "3306", "-u", "root", "-p", "mydb"] …
Run Code Online (Sandbox Code Playgroud)

python mysql subprocess mysqldump pymysql

2
推荐指数
3
解决办法
2万
查看次数

mysqldump --add-drop-database生成!40000是否正确?

我正在使用MySql v 6.1.7601。我通过以下命令转储数据库:

mysqldump -u USERNAME -pPASSWORD --routines --add-drop-database --databases myDatabase> ...pathToSavedFile.sql
Run Code Online (Sandbox Code Playgroud)

我本来希望

DROP DATABASE IF EXISTS myDatabase;
CREATE DATABASE IF NOT EXISTS myDatabase;
USE myDatabase;
Run Code Online (Sandbox Code Playgroud)

...创建表代码...

相反,我有这个:

/*!40000 DROP DATABASE IF EXISTS `myDatabase` */;
CREATE DATABASE /*!32312 IF NOT EXISTS*/ 'myDatabase' /*DEFAULT ....
Run Code Online (Sandbox Code Playgroud)

如何设置以正确显示(清除)DROP和CREATE语句?

mysql mysqldump

2
推荐指数
1
解决办法
1794
查看次数