Si tenéis un servidor dedicado y queréis optimizar vuestro servidor mysql (configurando el archivo my.cnf) os dejo este script que adecua los valores de configuración a los de vuestro servidor:

http://day32.com/MySQL/tuning-primer.sh

Simplemente tenéis que subirlo a vuestro servidor y ejecutar:

sh tuning-primer.sh

El script os dirá los valores óptimos para vuestro servidor.

Siempre va a depender del uso que se haga al servicio Mysql y de la configuración del servidor.

De todas formas, os dejo esta configuración para un servidor con Mysql 4.1 o superior y con 1 Gb de memoria:

[mysqld]
socket=/path/to/mysql.sock
datadir=/var/lib/mysql
skip-locking
skip-innodb
# MySQL 4.x has query caching available.
# Enable it for vast improvement and it may be all you need to tweak.
query_cache_type=1
query_cache_limit=1M
query_cache_size=32M
# max_connections=500
# 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=200
#interactive_timeout=180
interactive_timeout=100
#wait_timeout=180
#wait_timeout=100
# Reduced wait_timeout to prevent idle clients holding connections.
#wait_timeout=30
wait_timeout=15
connect_timeout=10
# max_connect_errors is set to 10 by default
#max_connect_errors=10
#table_cache=256
#table_cache=1024
# Checked opened tables and adjusted accordingly after running for a while.
table_cache=512
#tmp_table_size=32M by default
#thread_cache=128
# Reduced it to 32 to prevent memory hogging. Also, see notes below.
thread_cache=32
# key_buffer=258M
# Reduced it by checking current size of *.MYI files, see notes below.
key_buffer=128M
# Commented out the buffer sizes and keeping the default.
# sort_buffer_size=2M by default.
#sort_buffer_size=1M
# read_buffer_size=128K by default.
#read_buffer_size=1M
# read_rnd_buffer_size=256K by default.
#read_rnd_buffer_size=1M
# myisam_sort_buffer_size=8M by default.
#myisam_sort_buffer_size=64M
# thread_concurrency = 2 * (no. of CPU)
thread_concurrency=2
# 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

[mysql.server]
user=mysql
basedir=/var/lib

[safe_mysqld]
err-log=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid
open_files_limit=8192

[mysqldump]
quick
max_allowed_packet=16M

[mysql]
no-auto-rehash
# Remove the next comment character if you are not familiar with SQL
#safe-updates

[isamchk]
key_buffer=64M
sort_buffer=64M
read_buffer=16M
write_buffer=16M

[myisamchk]
key_buffer=64M
sort_buffer=64M
read_buffer=16M
write_buffer=16M

[mysqlhotcopy]
interactive-timeout

[client]
socket=/path/to/mysql.sock

por Victor

Me llamo Víctor López y nací en Zaragoza el 16 de Diciembre de 1984. Esta web la monté exactamente el 23 de Mayo del 2005 con la idea de publicar mis experiencias personales, cosas curiosas que veía a mi alrededor (tanto en Internet como en mi vida) y el poder tener mi propio espacio web en la red. Si quieres puedes ver las estadísticas del año 2010. Ingeniero Superior en informática (terminé la carrera en 2006), desde pequeño ya estaba totalmente convencido a lo que me iba a dedicar en mi vida, la informática. Quizás porque mi padre tenía un Spectrum y me pegaba horas trasteándolo o quizás porque desde pequeño siempre me han gustado “los chismes”. El caso es que empezó a gustarme este mundo de la informática. Profesionalmente soy Analista-Programador Senior en PHP y me dedico al análisis, desarrollo y programación de páginas web y al desarrollo de aplicaciones (principalmente web en PHP, empecé a programar en el año 2002 en PHP), creación, alojamiento, optimización (diseño, SEO, publicidad), puesta en marcha de webs y potenciándolas. Actualmente soy Lead Integration Engineer en EnGrande.com – BudGetPlaces.com, además de formar parte de Homein.com (anteriormente he trabajado en Atrapalo.com, Camyna.com y Sync.es). Socio fundador de Coompy.es Alquilar habitación – Compartir piso. Partidario del software libre y usuario asiduo de Ubuntu y CentOS. Fui usuario de Mac pero ahora ya he vuelto al buen camino con Linux (Ubuntu distro). Sobre mi filosofía de vida, te invito a que leas este artículo: “Tu eres el resultado de ti mismo“. Si lo lees, entenderás mi punto de vista de la vida. Intento estar lo más lejos posible de la monotonía y considero mi trabajo como un hobby, me gusta aprender cosas nuevas cada día y afrontar nuevas metas y proyectos. En mi tiempo libre me gusta practicar cualquier deporte (el fútbol especialmente), me gusta competir (sea el ámbito que sea), los coches, las buenas películas/series y viajar. Personalmente considero que lo primero en esta vida es la salud y las personas, dejando atrás otras cosas, como puede ser el dinero, la fama y todas esas chorradas, que cuanto más las tienen las personas, más las quieren y menos les importan los demás. Y creo que el respeto y educación es fundamental. Pues eso es todo, un breve resumen de mi persona. Si te quieres anunciar en mi blog, contactar conmigo ya sea para la contratación de mis servicios, ofertas, agradecimientos, quejas, insultos, amenazas y/o similares, puedes mandarme un correo cuando quieras. Mi correo personal de contacto es: http://helektron.com/contacto-personal/ Puedes seguir este blog por Google Plus, Facebook, Twitter, RSS y por mail.

5 comentario en “Cómo optimizar el servidor Mysql (configurando my.cnf) de un servidor dedicado”
  1. My brother recommended I might like this website. He used to be entirely right. This publish truly made my day. You can not consider just how so much time I had spent for this info! Thank you!

  2. ejecute el tuning-primer pero no me deja conectarme al server, alguna sugerencia..ejemplo:

    # ./tuning-primer.sh

    Using login values from ~/.my.cnf
    – INITIAL LOGIN ATTEMPT FAILED –
    ./tuning-primer.sh[12]: test: argument expected
    ERROR 1045 (28000): Access denied for user ‘root’@’localhost’ (using password: NO)
    ERROR 1045 (28000): Access denied for user ‘root’@’localhost’ (using password: NO)

    ERROR 1045 (28000): Access denied for user ‘root’@’localhost’ (using password: NO)
    ERROR 1045 (28000): Access denied for user ‘root’@’localhost’ (using password: NO)
    ERROR 1045 (28000): Access denied for user ‘root’@’localhost’ (using password: NO)
    — MYSQL PERFORMANCE TUNING PRIMER —
    – By: Matthew Montgomery –

    ERROR 1045 (28000): Access denied for user ‘root’@’localhost’ (using password: NO)
    ERROR 1045 (28000): Access denied for user ‘root’@’localhost’ (using password: NO)
    MySQL Version

    ERROR 1045 (28000): Access denied for user ‘root’@’localhost’ (using password: NO)
    ERROR 1045 (28000): Access denied for user ‘root’@’localhost’ (using password: NO)
    ./tuning-primer.sh[12]: /: syntax error

  3. Está bien ese script, aunque la verdad lo mejor es ir línea por línea revisando y probando. Nunca confié en los scripts estos de GNU/Linux, por eso me pasé a OpenBSD hace años.

    Un saludo.

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *