[Debian] Coupure systèmatique de mysql

Résolu/Fermé
belair - 4 janv. 2009 à 09:25
 Max - 8 mars 2010 à 11:06
Bonjour,
Je dispose d'un serveur sous debian, cependant je rencontre quelques problèmes avec ce serveur.
Il arrive régulièrement que mysql bug et fasse bugger tout le serveur, je suis alors obligé de redémarrer le serveur via mon panel d'hébergement.
Après le redémarrage du serveur, mysql ne fonctionne pas et m'affiche l'erreur suivante : "Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2) [2002]". Je suis obligé de relancer manuellement mysql en espérant que ça marche.
Parfois après avoir démarrer mysql manuellement, j'obtiens l'erreur "Checking for corrupt, not cleanly closed and upgrade needing tables.". Je suis obligé de tuer les processus existants pour que ça marche.
Auriez-vous une idée du problème ?
C'est d'autant plus embêtant que je suis loin d'être disponible 24h/24 pour redémarrer le serveur et qu'ainsi mon site peut rester hors-ligne pendant plusieurs heures.
Merci d'avance.

43 réponses

pour le demarrage, est ce que le script mysql est correctement rentrer dans les scripts de demarrage ? man update-rc.d

puor le Checking for corrupt, not cleanly closed and upgrade needing tables
ce n'est pas une erreur.
0
Je ne comprends pas ce qu'il faut faire avec la commande "man update-rc.d", elle affiche une sorte d'aide avec les différentes options utilisables.
D'accord pour le message "Checking for corrupt, not cleanly closed and upgrade needing tables.", je saurais pour la prochaine fois.
0
lami20j Messages postés 21331 Date d'inscription jeudi 4 novembre 2004 Statut Modérateur, Contributeur sécurité Dernière intervention 30 octobre 2019 3 567
4 janv. 2009 à 11:30
Salut,

Affiche le résultat de
find /etc/ -name '*mysql*' 2>/dev/null
cat /etc/mysql/my.cnf
0
Salut,

website:~# find /etc/ -name '*mysql*' 2>/dev/null
/etc/logrotate.d/mysql-server
/etc/mysql
/etc/rc4.d/S18mysql-ndb
/etc/rc4.d/S17mysql-ndb-mgm
/etc/rc4.d/S20mysqld
/etc/rc4.d/S19mysql
/etc/rc1.d/K22mysql-ndb
/etc/rc1.d/K23mysql-ndb-mgm
/etc/rc1.d/K20mysqld
/etc/rc1.d/K21mysql
/etc/init.d/mysql
/etc/init.d/mysql-ndb-mgm
/etc/init.d/mysqld
/etc/init.d/mysql-ndb
/etc/rc3.d/S18mysql-ndb
/etc/rc3.d/S17mysql-ndb-mgm
/etc/rc3.d/S20mysqld
/etc/rc3.d/S19mysql
/etc/logcheck/ignore.d.paranoid/mysql-server-5_0
/etc/logcheck/ignore.d.workstation/mysql-server-5_0
/etc/logcheck/ignore.d.server/mysql-server-5_0
/etc/php5/conf.d/mysql.ini
/etc/php5/conf.d/pdo_mysql.ini
/etc/php5/conf.d/mysqli.ini
/etc/rc6.d/K22mysql-ndb
/etc/rc6.d/K23mysql-ndb-mgm
/etc/rc6.d/K20mysqld
/etc/rc6.d/K21mysql
/etc/rc2.d/S18mysql-ndb
/etc/rc2.d/S17mysql-ndb-mgm
/etc/rc2.d/S20mysqld
/etc/rc2.d/S19mysql
/etc/rc5.d/S18mysql-ndb
/etc/rc5.d/S17mysql-ndb-mgm
/etc/rc5.d/S20mysqld
/etc/rc5.d/S19mysql
/etc/rc0.d/K22mysql-ndb
/etc/rc0.d/K23mysql-ndb-mgm
/etc/rc0.d/K20mysqld
/etc/rc0.d/K21mysql
website:~# cat /etc/mysql/my.cnf
#
# The MySQL database server configuration file.
#
# You can copy this to one of:
# - "/etc/mysql/my.cnf" to set global options,
# - "~/.my.cnf" to set user-specific options.
#
# One can use all long options that the program supports.
# Run program with --help to get a list of available options and with
# --print-defaults to see which it would actually understand and use.
#
# For explanations see
# https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html

# This will be passed to all mysql clients
# It has been reported that passwords should be enclosed with ticks/quotes
# escpecially if they contain "#" chars...
# Remember to edit /etc/mysql/debian.cnf when changing the socket location.
[client]
port = 3306
socket = /var/run/mysqld/mysqld.sock

# Here is entries for some specific programs
# The following values assume you have at least 32M ram

# This was formally known as [safe_mysqld]. Both versions are currently parsed.
[mysqld_safe]
socket = /var/run/mysqld/mysqld.sock
nice = 0

[mysqld]
#
# * Basic Settings
#
user = mysql
pid-file = /var/run/mysqld/mysqld.pid
socket = /var/run/mysqld/mysqld.sock
port = 3306
basedir = /usr
datadir = /var/lib/mysql
tmpdir = /tmp
language = /usr/share/mysql/english
skip-external-locking
#
# Instead of skip-networking the default is now to listen only on
# localhost which is more compatible and is not less secure.
bind-address = 127.0.0.1
#
# * Fine Tuning
#
key_buffer = 16M
max_allowed_packet = 16M
thread_stack = 128K
thread_cache_size = 8
#max_connections = 100
#table_cache = 64
#thread_concurrency = 10
#
# * Query Cache Configuration
#
query_cache_limit = 1M
query_cache_size = 16M
#
# * Logging and Replication
#
# Both location gets rotated by the cronjob.
# Be aware that this log type is a performance killer.
log = /var/log/mysql/mysql.log
#
# Error logging goes to syslog. This is a Debian improvement :)
#
# Here you can see queries with especially long duration
#log_slow_queries = /var/log/mysql/mysql-slow.log
#long_query_time = 2
#log-queries-not-using-indexes
#
# The following can be used as easy to replay backup logs or for replication.
#server-id = 1
log_bin = /var/log/mysql/mysql-bin.log
# WARNING: Using expire_logs_days without bin_log crashes the server! See README.Debian!
expire_logs_days = 10
max_binlog_size = 100M
#binlog_do_db = include_database_name
#binlog_ignore_db = include_database_name
#
# * BerkeleyDB
#
# Using BerkeleyDB is now discouraged as its support will cease in 5.1.12.
skip-bdb
#
# * InnoDB
#
# InnoDB is enabled by default with a 10MB datafile in /var/lib/mysql/.
# Read the manual for more InnoDB related options. There are many!
# You might want to disable InnoDB to shrink the mysqld process by circa 100MB.
#skip-innodb
#
# * Security Features
#
# Read the manual, too, if you want chroot!
# chroot = /var/lib/mysql/
#
# For generating SSL certificates I recommend the OpenSSL GUI "tinyca".
#
# ssl-ca=/etc/mysql/cacert.pem
# ssl-cert=/etc/mysql/server-cert.pem
# ssl-key=/etc/mysql/server-key.pem



[mysqldump]
quick
quote-names
max_allowed_packet = 16M

[mysql]
#no-auto-rehash # faster start of mysql but no tab completition

[isamchk]
key_buffer = 16M

#
# * NDB Cluster
#
# See /usr/share/doc/mysql-server-*/README.Debian for more information.
#
# The following configuration is read by the NDB Data Nodes (ndbd processes)
# not from the NDB Management Nodes (ndb_mgmd processes).
#
# [MYSQL_CLUSTER]
# ndb-connectstring=127.0.0.1


#
# * IMPORTANT: Additional settings that can override those from this file!
#
!includedir /etc/mysql/conf.d/

socket=/var/lib/mysql/mysql.sockwebsite:~#
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
lami20j Messages postés 21331 Date d'inscription jeudi 4 novembre 2004 Statut Modérateur, Contributeur sécurité Dernière intervention 30 octobre 2019 3 567
4 janv. 2009 à 11:48
Re,

Affiche
ps aux | grep mysql
ls -l /var/lib/mysql/mysql.sock
ls -l /var/run/mysqld/mysql.sock 
0
Re,

website:~# ps aux | grep mysql
mysql 3316 11.0 5.3 74056 26604 ? Sl 07:36 28:07 /usr/local/mysql/bin/mysqld --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data --user=mysql --pid-file=/usr/local/mysql/data/website.pid --skip-external-locking
root 11965 0.0 0.1 2852 704 pts/0 R+ 11:49 0:00 grep mysql

website:~# ls -l /var/lib/mysql/mysql.sock
ls: /var/lib/mysql/mysql.sock: No such file or directory

website:~# ls -l /var/run/mysqld/mysql.sock
ls: /var/run/mysqld/mysql.sock: No such file or directory
0
lami20j Messages postés 21331 Date d'inscription jeudi 4 novembre 2004 Statut Modérateur, Contributeur sécurité Dernière intervention 30 octobre 2019 3 567
4 janv. 2009 à 11:53
Re,

Bon, je pense qu'il faut remonter encore plus.

Comment tu as installé mysql?
Puisque d'après ce que je crois, tu l'as installé deux fois : depuis les sources et avec le gestionnaire de paquets
Je me trompe?!
0
Re,
mysql était installé par défaut.
Par contre, dès qu'il y a eu la première fermeture inopinée, je ne cache pas avoir un peu bidouiller avec des apt-get & Co...
0
lami20j Messages postés 21331 Date d'inscription jeudi 4 novembre 2004 Statut Modérateur, Contributeur sécurité Dernière intervention 30 octobre 2019 3 567
4 janv. 2009 à 12:02
Re,

Ben, en fait tu as bidouillé plus que tu le dis.

Regarde ça
/usr/local/mysql/bin/mysqld --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data --user=mysql --pid-file=/usr/local/mysql

apt-get n'installe pas dans /usr/local

d'où ma supposition que tu l'as installé depuis les sources.

Bref, je pense que tu as le mysql installé avec apt et le mysql installé depuis les sources
Donc il y a un conflit quelque part.

Affiche
whereis mysql
ls -l /usr/local/mysql/bin
0
Re,
C'est fort possible, j'ai cherché des solutions un peu partout sur le net...

website:~# whereis mysql
mysql: /usr/bin/mysql /etc/mysql /usr/X11R6/bin/mysql /usr/bin/X11/mysql /usr/local/bin/mysql /usr/local/mysql /usr/share/mysql /usr/share/man/man1/mysql.1.gz
website:~# ls -l /usr/local/mysql/bin
total 41792
-rwxr-xr-x 1 mysql mysql 3661 2008-08-04 14:20 CMakeLists.txt
-rwxr-xr-x 1 mysql mysql 1302552 2008-08-19 07:08 comp_err
-rwxr-xr-x 1 mysql mysql 2676 2008-08-04 14:20 comp_sql.c
-rwxr-xr-x 1 mysql mysql 2772 2008-08-19 06:53 make_sharedlib_distribution
-rwxr-xr-x 1 mysql mysql 13719 2008-08-04 14:20 make_win_bin_dist
-rwxr-xr-x 1 mysql mysql 11355 2008-08-19 06:53 make_win_src_distribution_old
-rwxr-xr-x 1 mysql mysql 1424 2008-08-19 06:53 msql2mysql
-rwxr-xr-x 1 mysql mysql 1736092 2008-08-19 07:08 myisamchk
-rwxr-xr-x 1 mysql mysql 1604792 2008-08-19 07:08 myisam_ftdump
-rwxr-xr-x 1 mysql mysql 1616600 2008-08-19 07:08 myisamlog
-rwxr-xr-x 1 mysql mysql 1646348 2008-08-19 07:08 myisampack
-rwxr-xr-x 1 mysql mysql 1307516 2008-08-19 07:08 my_print_defaults
-rwxr-xr-x 1 mysql mysql 1620108 2008-08-19 07:08 mysql
-rwxr-xr-x 1 mysql mysql 110848 2008-08-19 06:53 mysqlaccess
-rwxr-xr-x 1 mysql mysql 1702 2008-08-04 14:20 mysqlaccess.conf
-rwxr-xr-x 1 mysql mysql 1409144 2008-08-19 07:08 mysqladmin
-rwxr-xr-x 1 mysql mysql 1492368 2008-08-19 07:08 mysqlbinlog
-rwxr-xr-x 1 mysql mysql 10791 2008-08-19 06:53 mysqlbug
-rwxr-xr-x 1 mysql mysql 1405632 2008-08-19 07:08 mysqlcheck
-rwxr-xr-x 1 mysql mysql 1754524 2008-08-19 07:08 mysql_client_test
-rwxr-xr-x 1 mysql mysql 6008 2008-08-19 06:53 mysql_config
-rwxr-xr-x 1 mysql mysql 3670 2008-08-19 06:53 mysql_convert_table_format
-rwxr-xr-x 1 mysql mysql 6065512 2008-08-19 07:08 mysqld
-rwxr-xr-x 1 mysql mysql 22746 2008-08-19 06:53 mysqld_multi
-rwxr-xr-x 1 mysql mysql 13108 2008-08-19 06:53 mysqld_safe
-rwxr-xr-x 1 mysql mysql 1450748 2008-08-19 07:08 mysqldump
-rwxr-xr-x 1 mysql mysql 6356 2008-08-19 06:53 mysqldumpslow
-rwxr-xr-x 1 mysql mysql 11648 2008-08-19 06:53 mysql_explain_log
-rwxr-xr-x 1 mysql mysql 3245 2008-08-19 06:53 mysql_find_rows
-rwxr-xr-x 1 mysql mysql 483 2008-08-19 06:53 mysql_fix_extensions
-rwxr-xr-x 1 mysql mysql 5894 2008-08-19 06:53 mysql_fix_privilege_tables
-rwxr-xr-x 1 mysql mysql 33828 2008-08-04 14:24 mysql_fix_privilege_tables_sql.c
-rwxr-xr-x 1 mysql mysql 31431 2008-08-19 06:53 mysqlhotcopy
-rwxr-xr-x 1 mysql mysql 1402388 2008-08-19 07:08 mysqlimport
-rwxr-xr-x 1 mysql mysql 1429540 2008-08-19 07:08 mysqlmanager
-rwxr-xr-x 1 mysql mysql 6586 2008-08-19 06:53 mysql_secure_installation
-rwxr-xr-x 1 mysql mysql 16687 2008-08-19 06:53 mysql_setpermission
-rwxr-xr-x 1 mysql mysql 1404608 2008-08-19 07:08 mysqlshow
-rwxr-xr-x 1 mysql mysql 14473 2008-08-19 06:53 mysql_tableinfo
-rwxr-xr-x 1 mysql mysql 1529216 2008-08-19 07:08 mysqltest
-rwxr-xr-x 1 mysql mysql 1426820 2008-08-19 07:08 mysqltestmanager
-rwxr-xr-x 1 mysql mysql 1397100 2008-08-19 07:08 mysqltestmanagerc
-rwxr-xr-x 1 mysql mysql 1292152 2008-08-19 07:08 mysqltestmanager-pwgen
-rwxr-xr-x 1 mysql mysql 1289880 2008-08-19 07:08 mysql_tzinfo_to_sql
-rwxr-xr-x 1 mysql mysql 1342948 2008-08-19 07:08 mysql_upgrade
-rwxr-xr-x 1 mysql mysql 5831 2008-08-19 06:53 mysql_upgrade_shell
-rwxr-xr-x 1 mysql mysql 100008 2008-08-19 07:08 mysql_waitpid
-rwxr-xr-x 1 mysql mysql 3818 2008-08-19 06:53 mysql_zap
-rwxr-xr-x 1 mysql mysql 1295024 2008-08-19 07:08 perror
-rwxr-xr-x 1 mysql mysql 1298764 2008-08-19 07:08 replace
-rwxr-xr-x 1 mysql mysql 1294608 2008-08-19 07:08 resolveip
-rwxr-xr-x 1 mysql mysql 1298764 2008-08-19 07:08 resolve_stack_dump
lrwxrwxrwx 1 mysql mysql 11 2008-11-10 06:20 safe_mysqld -> mysqld_safe

Merci de ton aide.
0
lami20j Messages postés 21331 Date d'inscription jeudi 4 novembre 2004 Statut Modérateur, Contributeur sécurité Dernière intervention 30 octobre 2019 3 567
4 janv. 2009 à 12:13
Re,

Je ne me suis pas trompé, tu as un conflit.

Parfois après avoir démarrer mysql manuellement, j
Avec quelle commande?

0
Re,
Je le démarre avec : /etc/init.d/mysql start
0
lami20j Messages postés 21331 Date d'inscription jeudi 4 novembre 2004 Statut Modérateur, Contributeur sécurité Dernière intervention 30 octobre 2019 3 567
4 janv. 2009 à 12:17
Re,

Je vois
/etc/init.d/mysql
/etc/init.d/mysqld

et aussi
/etc/rc5.d/S20mysqld
/etc/rc5.d/S19mysql


Donc il y a deux serveur mysql qui démarrent (ou qui essaient de démarrer) au début de ta session graphique


On va essayer de dépister lequel

Tape d'abord en root
killall mysql

et affiche
ps aux | grep mysql
0
Re,
Ce sont ces doubles serveurs mysql qui font bugger le serveur tout entier alors ?

website:~# killall mysql
mysql: no process killed

website:~# ps aux | grep mysql
mysql 3316 11.4 7.9 91796 39700 ? Sl 07:36 32:34 /usr/local/mysql/bin/mysqld --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data --user=mysql --pid-file=/usr/local/mysql/data/website.pid --skip-external-locking
root 13189 0.0 0.1 2852 704 pts/0 R+ 12:20 0:00 grep mysql
0
lami20j Messages postés 21331 Date d'inscription jeudi 4 novembre 2004 Statut Modérateur, Contributeur sécurité Dernière intervention 30 octobre 2019 3 567
4 janv. 2009 à 12:23
Re,
kill -9 3316 
ps aux | grep mysql
0
Re,

website:~# kill -9 3316

website:~# ps aux | grep mysql
root 13372 0.2 0.2 3660 1284 ? S 12:26 0:00 /bin/sh /usr/local/mysql/bin/mysqld_safe --user=mysql --datadir=/usr/local/mysql/data --pid-file=/usr/local/mysql/data/website.pid
mysql 13400 7.0 1.5 68460 7836 ? Sl 12:26 0:00 /usr/local/mysql/bin/mysqld --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data --user=mysql --pid-file=/usr/local/mysql/data/website.pid --skip-external-locking
root 13406 0.0 0.1 2852 704 pts/0 R+ 12:26 0:00 grep mysql
0
lami20j Messages postés 21331 Date d'inscription jeudi 4 novembre 2004 Statut Modérateur, Contributeur sécurité Dernière intervention 30 octobre 2019 3 567
4 janv. 2009 à 12:29
Re,
/etc/init.d/mysql stop
ps aux | grep mysql
0
Re,

website:~# /etc/init.d/mysql stop
Stopping MySQL database server: mysqld.

website:~# ps aux | grep mysql
root 13372 0.0 0.2 3660 1284 ? S 12:26 0:00 /bin/sh /usr/local/mysql/bin/mysqld_safe --user=mysql --datadir=/usr/local/mysql/data --pid-file=/usr/local/mysql/data/website.pid
mysql 13400 11.2 5.0 70332 25064 ? Sl 12:26 0:28 /usr/local/mysql/bin/mysqld --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data --user=mysql --pid-file=/usr/local/mysql/data/website.pid --skip-external-locking
root 13686 0.0 0.1 2852 704 pts/0 R+ 12:30 0:00 grep mysql
0
lami20j Messages postés 21331 Date d'inscription jeudi 4 novembre 2004 Statut Modérateur, Contributeur sécurité Dernière intervention 30 octobre 2019 3 567
4 janv. 2009 à 12:33
Re,
/etc/init.d/mysqld stop
ps aux | grep mysql

0
Re,

website:~# /etc/init.d/mysqld stop
Stopping mysqld: [ OK ]

website:~# ps aux | grep mysql
root 13856 0.0 0.1 2848 696 pts/0 R+ 12:34 0:00 grep mysql
0