如何从mysql导出4.5 GB表?

时间:2011-10-22 15:48:54

标签: mysql phpmyadmin wamp

我有一个表有38.406.168行,并且根据phpmyadmin 4.5GB的大小。我想看看表格的最后一行。很遗憾,我无法使用select * from ... limit 38.406.166,1,甚至无法使用select count(*) from ...功能。

我在wamp服务器中更改了my.ini,但在尝试执行其中一个查询时,我仍然得到mysql服务器已经消失了。 BTW;我甚至无法在ID上设置索引以使这些过程更快。

我的最后一次尝试是导出表格以查看最后一行。但是,它只显示了123MB的文件。

我该怎么办?请帮我。该计算机的功能是2.93 GHz,3.50GB 这是我的my.ini文件:

# The MySQL server
[wampmysqld]
port        = 3306
socket      = /tmp/mysql.sock
skip-locking
key_buffer = 384M
max_allowed_packet = 2000M
table_cache = 4096
sort_buffer_size = 2000M
net_buffer_length = 8K
read_buffer_size = 2000M
read_rnd_buffer_size = 2000M
myisam_sort_buffer_size = 2000M
basedir=c:/wamp/bin/mysql/mysql5.1.36
log-error=c:/wamp/logs/mysql.log
datadir=c:/wamp/bin/mysql/mysql5.1.36/data
(.. these parts are deleted, since there is nothing to set as value)
# Uncomment the following if you are using InnoDB tables
#innodb_data_home_dir = C:\mysql\data/
#innodb_data_file_path = ibdata1:10M:autoextend
#innodb_log_group_home_dir = C:\mysql\data/
#innodb_log_arch_dir = C:\mysql\data/
# You can set .._buffer_pool_size up to 50 - 80 %
# of RAM but beware of setting memory usage too high
#innodb_buffer_pool_size = 384M
#innodb_additional_mem_pool_size = 20M
# Set .._log_file_size to 25 % of buffer pool size
#innodb_log_file_size = 10M
#innodb_log_buffer_size = 64M
#innodb_flush_log_at_trx_commit = 1
#innodb_lock_wait_timeout = 180

[mysqldump]
quick
max_allowed_packet = 160M

非常感谢你的帮助

2 个答案:

答案 0 :(得分:1)

我尝试了很多东西,结果是那两个工作:

  1. 只需通过mysql的内部主从功能镜像数据库(尝试谷歌,你会找到很好的教程)到一个简单的备份服务器上(如果他们有ssh访问,大多数便宜的主机包都可以工作)

  2. 试试http://www.mysqldumper.net/,这是复制和发布的最佳工具。将大型数据库分成100mb部分。这个简单的开源工具完成了“专业”备份脚本无法完成的所有工作。

答案 1 :(得分:0)

您将需要使用mysqldump命令来执行此操作。这是我在linux中所做的,但我认为它将转换为Windows(我看到你正在运行WAMP)。

mysqldump --opt --force -Q --user=[your_user] -p [database_name] > dump.sql

您可能需要将目录更改为mysqldump文件所在的位置:

  

cd c:\ path \ to \ mysql \ bin