Dépannage MYSQL et optimisation de l'environnement de production

Dépannage MySQL et optimisation de l'environnement de production

1. Implémentation de cas: échecs courants de l'instance unique MySQL

Défaut 1

1. Phénomène d'échec

ERREUR 2002 (HY000): impossible de se connecter au serveur MySQL local via le socket "/data/mysq/mysql.sock '(2)

2. Analyse des problèmes

La base de données n'est pas démarrée ou le port de la base de données est bloqué par le pare-feu

3. Solution

Démarrez la base de données ou ouvrez le port d'écoute de la base de données sur le pare-feu

Défaut deux

1. Phénomène d'échec

ERREUR 1045 (28000): Accès refusé pour l'utilisateur 'root @' localhost (en utilisant le mot de passe: NON)

2. Analyse des problèmes

Mot de passe incorrect ou pas d'accès

3. Solution

Modifiez le fichier de configuration principal de my.cnf et ajoutez des tables skip-grant sous [mysqld]

  • update met à jour le champ authentication_string de la table utilisateur
  • Réautoriser.

Défaut trois

1. Phénomène d'échec

Le problème de connexion à distance lente à la base de données se produit parfois lors de l'utilisation d'une connexion à distance à la base de données

2. Analyse des problèmes

Résolution DNS lente, trop de connexions client

3. Solution

  • Modifiez le fichier de configuration principal my.cnf (ajoutez le paramètre skip-name-resolution)
  • L'autorisation de base de données interdit l'utilisation de noms d'hôte

Défaut quatre

1. Phénomène d'échec

Impossible d'ouvrir le fichier: 'xxX_ forums.MYI'. (numéro d'erreur: 145)

2. Analyse des problèmes

  • Le serveur est arrêté anormalement, l'espace où se trouve la base de données est plein ou une autre raison inconnue endommage la table de la base de données
  • Le groupe d'appartenance du fichier a changé en raison de la copie de la base de données

3. Solution

  • Réparer la table de données (myisamchk, phpMyAdmin)
  • Modifier le groupe du fichier

Défaut cinq

1. Phénomène d'échec

ERREUR 1129 (HY000): l'hôte xxx.oxx.xxx.xxx est bloqué en raison de nombreuses erreurs de connexion; débloquer avec 'mysqladmin flush-hosts'

2. Analyse des problèmes

Nombre maximal d'erreurs de connexion dépassé

3. Solution

  • Vider le cache (mot-clé flush-hosts)
  • Modifier mysq | fichier de configuration (max_ connect_ errors = 1000)

Défaut six

1. Phénomène d'échec

Trop de connections

2. Analyse des problèmes

Le nombre de connexions dépasse la limite de connexion maximale de MySQL

3. Solution

  • Modifier le fichier de configuration MySQL (max_ connections = 10000)
  • Modifiez temporairement les paramètres: set GLOBAL max_ connections = 10000;

Défaut sept

1. Phénomène d'échec

Attention: le fichier de configuration accessible en écriture mondiale /etc/my.cnf est ignoré ERREUR! MySQL est en cours d'exécution mais le fichier PID est introuvable

2. Analyse des problèmes

Problème d'autorisation du fichier de configuration MySQL /etc/my.cn

3. Solution

chmod 644 /etc/my.cnf

Défaut huit

1. Phénomène d'échec

InnoDB: Erreur: page 14178 numéro de séquence du journal 29455369832
InnoDB: est dans le futur! Numéro de séquence du journal système actuel 29455369832

2. Analyse des problèmes

Le fichier de données Innodb est endommagé

3. Solution

Modifiez le fichier de configuration my.cnf (innodb_ force_recovery = 4)

Sauvegarder les fichiers de données après le démarrage de la base de données

Utilisez des fichiers de sauvegarde pour restaurer les données

2. Implémentation de cas: échecs courants de l'environnement maître-esclave MySQL

Défaut un

1. Phénomène d'échec

Slave_ I0_ L'exécution à partir de la bibliothèque est NON

Le thread d'E / S esclave s'arrête car le maître et l'esclave ont des identifiants de serveur MySQL égaux; ces identifiants doivent être différents pour que la réplication fonctionne (ou l'option --replicate-same-server-id doit être utilisée sur l'esclave mais cela n'a pas toujours de sens; veuillez consulter le manuel avant de l'utiliser).

2. Analyse des problèmes:

La valeur de l'id du serveur de la bibliothèque principale et de la bibliothèque esclave est la même

3. Solution

  • Modifiez la valeur de l'ID serveur de la bibliothèque esclave pour qu'elle soit différente de la bibliothèque principale
  • Redémarrez la base de données et synchronisez à nouveau

Défaut deux

1. Phénomène d'échec:

Slave_ I0_ L'exécution à partir de la bibliothèque est NON

2. Analyse des problèmes:

La clé primaire est en conflit ou la base de données principale supprime ou met à jour les données, l'enregistrement est introuvable dans la base de données et les données sont modifiées.

3. Solution

  • 方法 一
    mysql> arrêter l'esclave;
    mysql> set GLOBAL SQL_SLAVE_ SKIP_COUNTER = 1;
    mysql> démarrer l'esclave;
  • Méthode deux
    set global read_ only = true;

Défaut trois

1. Phénomène d'échec

Erreur lors de l'initialisation de la position du journal du relais: erreur 1/0 lors de la lecture de l'en-tête à partir du journal binaire

2. Analyse des problèmes

Le bac relais du journal de relais de la bibliothèque est endommagé

3. Solution

Réparez manuellement, trouvez à nouveau le binlog synchronisé et les points de position, puis resynchronisez
mysql> CHANGE MASTER TO MASTER_LOG_FILE = 'mysql-bin.xx', MASTER_LOG_POS = xxx;

3. Implémentation de cas: optimisation MySQL

1. Optimisation matérielle

  • CPU: Il est recommandé d'utiliser un processeur symétrique multicanal à architecture SMP
  • RAM: RAM physique supérieure à 4 Go
  • Disque: matrice de disques RAID-0 + 1 ou disque SSD

2. Optimisation du fichier de configuration MySQL

  • Ajuster les éléments de configuration

3. Optimisation SQL

  • Essayez d'utiliser un arc de câble | Vérifiez
  • Optimiser la pagination
  • Optimisation GROUP BY

4. Optimisation de l'architecture MySQL

  • Choix d'architecture: maître-esclave, maître-maître, un maître-multi-esclave, multi-maître-multi-esclave

Je suppose que tu aimes

Origine blog.csdn.net/weixin_39608791/article/details/108444813
conseillé
Classement