[Debian] Coupure systèmatique de mysql

Résolu
belair -  
 Max -
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.
Configuration: Debian
Windows XP
Firefox 3.0.5

43 réponses

  • 1
  • 2
  • 3
Résumé de la discussion

Des dysfonctionnements MySQL sur un serveur Debian provoquent des plantages du service et empêchent la connexion locale via le socket '/tmp/mysql.sock' (2) après chaque redémarrage. Des réponses explorent la coexistence de deux instances ou daemons MySQL, avec des scripts d'init différents et des liens système qui démarrent simultanément, ce qui complique la résolution. Des essais préconisent de supprimer l'installation MySQL générant les liens automatiques et de nettoyer les scripts init, afin d'avoir une seule instance MySQL gérée par le paquet Debian. Pour des vérifications telles que l'arrêt des services, l'examen du chemin de socket et la recherche de processus résiduels, il devient possible d'éviter les démarrages concurrents et les pertes de liaison.

Généré automatiquement par IA
sur la base des meilleures réponses
  1. Youplaboum
     
    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
  2. belair
     
    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
  3. lami20j Messages postés 21506 Date d'inscription   Statut Modérateur, Contributeur sécurité Dernière intervention   3 571
     
    Salut,

    Affiche le résultat de
    find /etc/ -name '*mysql*' 2>/dev/null
    cat /etc/mysql/my.cnf
    0
  4. belair
     
    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
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. lami20j Messages postés 21506 Date d'inscription   Statut Modérateur, Contributeur sécurité Dernière intervention   3 571
     
    Re,

    Affiche
    ps aux | grep mysql
    ls -l /var/lib/mysql/mysql.sock
    ls -l /var/run/mysqld/mysql.sock 
    0
  7. belair
     
    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
  8. lami20j Messages postés 21506 Date d'inscription   Statut Modérateur, Contributeur sécurité Dernière intervention   3 571
     
    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
  9. belair
     
    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
  10. lami20j Messages postés 21506 Date d'inscription   Statut Modérateur, Contributeur sécurité Dernière intervention   3 571
     
    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
  11. belair
     
    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
  12. lami20j Messages postés 21506 Date d'inscription   Statut Modérateur, Contributeur sécurité Dernière intervention   3 571
     
    Re,

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

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

    0
  13. belair
     
    Re,
    Je le démarre avec : /etc/init.d/mysql start
    0
  14. lami20j Messages postés 21506 Date d'inscription   Statut Modérateur, Contributeur sécurité Dernière intervention   3 571
     
    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
  15. belair
     
    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
  16. lami20j Messages postés 21506 Date d'inscription   Statut Modérateur, Contributeur sécurité Dernière intervention   3 571
     
    Re,
    kill -9 3316 
    ps aux | grep mysql
    0
  17. belair
     
    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
  18. lami20j Messages postés 21506 Date d'inscription   Statut Modérateur, Contributeur sécurité Dernière intervention   3 571
     
    Re,
    /etc/init.d/mysql stop
    ps aux | grep mysql
    0
  19. belair
     
    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
  20. lami20j Messages postés 21506 Date d'inscription   Statut Modérateur, Contributeur sécurité Dernière intervention   3 571
     
    Re,
    /etc/init.d/mysqld stop
    ps aux | grep mysql

    0
  21. belair
     
    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
  • 1
  • 2
  • 3