Question

I have a problem. I run an open source game software on one of my servers (eAthena) and they use MySQL as their preferred database. However, every time I run mysqldump

mysqldump -u backup -p*** eathena > test-backup.sql

it ends up hanging the server. The eAthena software hangs, and ends up shutting down once it's complete. Is this a size problem? Seeing as how the database is 4.7gb, I'm not sure what to blame. Is there some type of alternative my mysqldump?

I'm running CentOS 6 64bit, MySQL version 5.1.52.

Was it helpful?

Solution

it seems that your mysql installation is running out of memory. Check /etc/my.cnf or /etc/mysql/my.cnf (or wherever it is on CentOS).

increase the table_cache and key_buffer_size . See the examples of confs that comes with the mysql installation: my-huge.cnf’,my-large.cnf’, my-medium.cnf’, andmy-small.cnf’. Compare your confs with this:

[mysqld]
# Reduced to 200 as memory will not be enough for 500 connections.
# memory=key_buffer+sort_buffer_size+read_buffer_size)*max_connections
# which is now: 64 + (1 + 1) * 200 = 464 MB
# max_connections = approx. MaxClients setting in httpd.conf file
# Default set to 100.
max_connections = 100
max_allowed_packet = 1M
max_connect_errors = 10
key_buffer = 512M # 128M for 1GB, 256M for 2GB, 512 for 4GB
join_buffer_size = 4M # 1M for 1GB, 2M for 2GB, 4M for 4GB
read_buffer_size = 4M # 1M for 1GB, 2M for 2GB, 4M for 4GB
sort_buffer_size = 2M # 1M for 1GB, 2M for 2GB, 4M for 4GB
# myisam_sort_buffer_size used for ALTER, OPTIMIZE, REPAIR TABLE commands.
myisam_sort_buffer_size = 32M
# Checked opened tables and adjusted accordingly after running for a while.
table_cache = 1024
# thread_concurrency = 2 * (no. of CPU)
thread_concurrency=4
thread_cache_size = 286
# log slow queries is a must. Many queries that take more than 2 seconds.
# If so, then your tables need enhancement.
log_slow_queries=/var/log/mysqld.slow.log
long_query_time=2
# Reduced wait_timeout to prevent idle clients holding connections.
wait_timeout = 10
connect_timeout = 10
interactive_timeout = 10
# Enable it for vast improvement and it may be all you need to tweak.
query_cache_limit = 1M
query_cache_size = 128M
query_cache_type = 1
[mysqld_safe]
open_files_limit = 8192
[mysqldump]
quick
max_allowed_packet = 16M
[myisamchk]
key_buffer = 256M # 64M for 1GB, 128M for 2GB, 256 for 4GB
sort_buffer = 256M # 64M for 1GB, 128M for 2GB, 256 for 4GB
read_buffer = 64M # 16M for 1GB, 32M for 2GB, 64M for 4GB
write_buffer = 64M # 16M for 1GB, 32M for 2GB, 64M for 4GB
[mysqlhotcopy]
interactive-timeout

don't forget to restart mysql server before try again

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top