Mot-clé - mysql

Fil des billets

08mar. 2010

Gestion des sessions Magento

magento_logo.jpg
Suite à mon article Centralisation des sessions Magento en cluster présentant l'utilisation de Memcached avec Magento, voici également d'autres façons de gérer les sessions.

  1. Utilisation du mode par défaut :

Lors de l'utilisation de ce mode par défaut, les sessions sont sauvegardées dans le répertoire /home/www/domain.com/var/session. Dans le cadre d'un système clusterisé il serait nécessaire de mutualiser ce répertoire.

Dans le cadre de l'utilisation de Magento sur un serveur en StandAlone, je vous conseil de stocker vos sessions (profitez-en pour vous occuper du cache) en RAM afin d'optimiser au mieux les accès.
Par exemple mon /etc/fstab avec 256Mo alloué pour le cache et 64Mo pour les sessions

tmpfs /home/www/domain.com/var/cache tmpfs size=256M 0 0
tmpfs /home/www/domain.com/var/session tmpfs size=64M 0 0

Attention en cas de redémarrage du serveur le cache et les sessions seront intégralement perdus, il conviendra donc de régénérer le cache depuis l'administration.

  1. Utilisation d'une base de données :

Il vous suffit de choisir l'option appropriée lors de l'étape 3 de l'assistant d'installation : Save session data in Database ou d'effectuer la modification suivante dans app/etc/local.xml.

<session_save><![CDATA[db]]></session_save>

Les sessions devraient à présent apparaître dans la table core_session.

  1. Utilisation de Memcached :

Voir le précèdent billet : Memcached et Magento

01janv. 2010

Optimisation de Magento avec la réplication Mysql

magento_logo.jpg
Pour les utilisateurs d'une réplication mysql et de Magento, il faut savoir que tout a été prévu par Magento afin d'optimiser le traitement des requêtes Mysql avec un serveur dédiée à la lecture, et un second à l'écriture.

Voici pour les développeurs la syntaxe à adopter :

       <resources>
            <db>
                <table_prefix><![CDATA[]]></table_prefix>
            </db>
            <default_setup>
                <connection>
                        <host><![CDATA[Mysql_Write:port]]></host>
                        <username><![CDATA[user]]></username>
                        <password><![CDATA[password]]></password>
                        <dbname><![CDATA[bdd_name]]></dbname>
                    <active>1</active>
                </connection>
            </default_setup>
            <default_read>
                <connection>
                        <host><![CDATA[Mysql_ReadOnly:port]]></host>
                        <username><![CDATA[user]]></username>
                        <password><![CDATA[password]]></password>
                        <dbname><![CDATA[bdd_name]]></dbname>
                    <active>1</active>
                </connection>
            </default_read>
        </resources>

Bien entendu, il ne faut pas oublier que je préconise un serveur Mysql dédié au rôle de Read Only, donc une réplication avec des paramètres avancés du type Replicate_Wild_Ignore_Table afin d'éviter une action du type Je me suis trompé de serveur lors de l'insertion et la réplication Mysql sur le serveur RO est donc en erreur

Lien :

Magento Performance Group

27août 2009

myisamchk error Not enough memory for blob

mysql_logo.gif
Une nouvelle erreur apparu sur une table corrompu suite à un crash Mysql pour manque de RAM (Out of memory).

Tout d'abord un petit rappel sur la façon qu'utilise le moteur MyISAM pour la gestion des tables :

  1. wordpress_postmeta.MYD - la table où tous les enregistrements sont stockés.
  2. wordpress_postmeta.MYI - l'index pour les tables.
  3. wordpress_postmeta.frm - le schéma de la table.


Voici l' erreur rencontrée lors de la réparation de la table :

srv1234 ~ # myisamchk -r /var/lib/mysql/wordpress/wordpress_postmeta.MYI
 
- recovering (with sort) MyISAM-table '/var/lib/mysql/wordpress/wordpress_postmeta.MYI'
Data records: 31769
- Fixing index 1
Wrong block with wrong total length starting at 94358749
myisamchk: error: Not enough memory for blob at 94358800
MyISAM-table '/var/lib/mysql/wordpress/wordpress_postmeta.MYI' is not fixed because of errors

Cela se produit parce que l'entrée de l'index invalide indique que la taille d'un champ BLOB est plus grande que celle spécifié entre parenthèse. La correction a été assez simple, il suffit d'ajouter l'option --max-record-length=0.

srv1234 ~ # myisamchk --max-record-length=0 -r /var/lib/mysql/wordpress/wordpress_postmeta.MYI

Dans le cas présent la valeur --max-record-length=0 permet de ne définir aucune limitation sur la taille du champ BLOB.

29janv. 2009

Utilisation Mysql SSL

mysql_logo.gif
Par défaut, MySQL utilise une connexion en clair entre le client et le serveur. Cela signifie qu'une personne peut surveiller votre trafic, et lire les données échangées. Cette personne pourrait aussi modifier les données qui transitent entre le client et le serveur. Parfois, vous aurez besoin d'échanger des informations sur un réseau public, mais en sécurisant ces informations. Dans ce cas, utiliser une connexion sans protection est inacceptable.

SSL est un protocole qui utilise différents algorithmes de chiffrement pour s'assurer que les données qui transitent par un réseau public peuvent être considérées comme fiables. Ce protocole dispose de méthodes pour s'assurer que les données n'ont pas été modifiées, ce que soit par une altération, une perte ou une répétition des données. SSL inclut aussi des algorithmes pour reconnaître et fournit des outils de vérifications d'identité, pris en charge par le standard X509.

Le chiffrement est une méthode pour rendre des données illisibles. En fait, les pratiques actuelles requièrent d'autres éléments de sécurité issus des algorithmes de chiffrement. Ils doivent savoir résister à de nombreux types d'attaque, comme la modification de l'ordre des messages ou les répétitions inopinées.

X509 est un standard qui rend possible l'identification d'une personne sur l'internet. Il est particulièrement utilisé pour les applications e-commerce. En termes simples, il doit y avoir une entreprise (appelée l'``autorité de certification'') qui assigne un certificat électronique à toute personne qui en a besoin. Ces certificats utilisent un chiffrement assymétrique qui exploitent deux clés de chiffrement, une clé publique et une clé privée. Le propriétaire d'un certificat peut prouver son identité en montrant son certificat à l'autre partie. Un certificat est constitué de la clé publique du propriétaire. Toute donnée qui est chiffrée avec cette clé publique doit être déchiffrée avec la clé secrète correspondante, qui est détenue par le propriétaire du certificat.

MySQL n'utilise pas les connexions chiffrées par défaut, car cela ralentit considérablement le protocole de communication. Toute fonctionnalité supplémentaire requiert du travail supplémentaire de la part du serveur, et chiffrer des données est une tâche particulièrement coûteuse, qui peut ralentir considérablement les tâches principales de MySQL. Par défaut, MySQL est paramétré pour être aussi rapide que possible.

A savoir :

MySQL permet de faire du cas par cas. Il est possible de n'activer SSL que pour certains utilisateurs ou encore de permettre des communications sécurisées avec un utilisateur sans vérifier l'authenticité du client.

Vérification du support ssl :

Afin de savoir si un serveur MySQL possède le support pour SSL, il suffit de s'y connecter et de taper la requête suivante :

mysql> SHOW VARIABLES LIKE 'have_openssl';
+------------------+-------------+
| Variable_name |     Value    |
+------------------+-------------+
| have_openssl  | DISABLED | 
+------------------+-------------+
1 row IN SET (0.00 sec)

Le support est disponible mais non actif.

Activation du support ssl et création des certificats

Tout les certificats doivent être en format "pem" (X509 en base-64)

  • On prépare le terrain

1) On crée le répertoire

mkdir -p /etc/ssl/mysql/private
mkdir /etc/ssl/mysql/newcerts/
cd /etc/ssl/mysql

2) Création des fichiers nécessaires : database, serial

touch /etc/ssl/mysql/index.txt
echo "01" > /etc/ssl/mysql/serial

3) Préparation d'un openssl.cnf alternatif

srv94 mysql # cp -av /etc/ssl/openssl.cnf ./       
`/etc/ssl/openssl.cnf' -> `./openssl.cnf'

4) On modifie openssl.cnf

srv94 mysql # diff /etc/ssl/openssl.cnf ./openssl.cnf 
37c37
< dir		= ./demoCA		# Where everything is kept
---
> dir		= /etc/ssl/mysql/	# Where everything is kept
  • Génération du certificat d'autorité (CA) :
srv94 mysql # openssl req -new -x509 -keyout /etc/ssl/mysql/private/cakey.pem -out /etc/ssl/mysql/cacert.pem -config /etc/ssl/mysql/openssl.cnf
Generating a 1024 bit RSA private key
................++++++
..........................++++++
writing new private key to '/etc/ssl/mysql/private/cakey.pem'
Enter PEM pass phrase:
Verifying - Enter PEM pass phrase:
-----
You are about to be asked to enter information that will be incorporated
into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter '.', the field will be left blank.
-----
Country Name (2 letter code) [AU]:FR
State or Province Name (full name) [Some-State]:Seine Saint-Denis
Locality Name (eg, city) []:Saint-Denis
Organization Name (eg, company) [Internet Widgits Pty Ltd]:Euro-Web SARL
Organizational Unit Name (eg, section) []:
Common Name (eg, YOUR name) []:srv94.sd-france.net
Email Address []:xxxxxxx@xxxxx.xx
  • On génère la clé privée du serveur ainsi qu'une demande de certificat :
srv94 mysql # openssl req -new -keyout /etc/ssl/mysql/server-key.pem -out /etc/ssl/mysql/server-req.pem -days 3600 -config /etc/ssl/mysql/openssl.cnf
Generating a 1024 bit RSA private key
.......................................++++++
............++++++
writing new private key to '/etc/ssl/mysql/server-key.pem'
Enter PEM pass phrase:
Verifying - Enter PEM pass phrase:
-----
You are about to be asked to enter information that will be incorporated
into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter '.', the field will be left blank.
-----
Country Name (2 letter code) [AU]:FR
State or Province Name (full name) [Some-State]:Seine Saint-Denis
Locality Name (eg, city) []:Saint-Denis
Organization Name (eg, company) [Internet Widgits Pty Ltd]:Euro-Web SARL
Organizational Unit Name (eg, section) []:
Common Name (eg, YOUR name) []:srv94.sd-france.net
Email Address []:xxxxxxx@xxxxx.xx
 
Please enter the following 'extra' attributes
to be sent with your certificate request
A challenge password []:
An optional company name []:
  • On supprime la passphrase de la clé :
srv94 mysql # openssl rsa -in /etc/ssl/mysql/server-key.pem -out /etc/ssl/mysql/server-key.pem
Enter pass phrase for /etc/ssl/mysql/server-key.pem:
writing RSA key
  • Signature par l'autorité de certification (CA) du certificat serveur :
srv94 mysql # openssl ca  -policy policy_anything -out /etc/ssl/mysql/server-cert.pem -config /etc/ssl/mysql/openssl.cnf -infiles /etc/ssl/mysql/server-req.pem
Using configuration from /etc/ssl/mysql/openssl.cnf
Enter pass phrase for /etc/ssl/mysql//private/cakey.pem:
Check that the request matches the signature
Signature ok
Certificate Details:
        Serial Number: 1 (0x1)
        Validity
            Not Before: Feb 12 17:55:14 2009 GMT
            Not After : Feb 12 17:55:14 2010 GMT
        Subject:
            countryName               = FR
            stateOrProvinceName       = Seine Saint-Denis
            localityName              = Saint-Denis
            organizationName          = Euro-Web SARL
            commonName                = srv94.sd-france.net
            emailAddress              = xxxxxxx@xxxxx.xx
        X509v3 extensions:
            X509v3 Basic Constraints: 
                CA:FALSE
            Netscape Comment: 
                OpenSSL Generated Certificate
            X509v3 Subject Key Identifier: 
                CC:D2:B4:BF:DD:7F:07:9D:46:5F:22:3B:4D:A4:8C:08:D6:C2:EB:B7
            X509v3 Authority Key Identifier: 
                keyid:54:F0:E4:EF:61:E0:05:70:F1:24:82:B2:06:69:60:83:01:4E:27:16
 
Certificate is to be certified until Feb 12 17:55:14 2010 GMT (365 days)
Sign the certificate? [y/n]:y
 
 
1 out of 1 certificate requests certified, commit? [y/n]y
Write out database with 1 new entries
Data Base Updated
  • On génère la clé privée du client ainsi qu'une demande de certificat :
srv94 mysql # openssl req -new -keyout /etc/ssl/mysql/client-key.pem -out /etc/ssl/mysql/client-req.pem -days 3600 -config /etc/ssl/mysql/openssl.cnf
Generating a 1024 bit RSA private key
..............++++++
...................................++++++
writing new private key to '/etc/ssl/mysql/client-key.pem'
Enter PEM pass phrase:
Verifying - Enter PEM pass phrase:
-----
You are about to be asked to enter information that will be incorporated
into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter '.', the field will be left blank.
-----
Country Name (2 letter code) [AU]:FR
State or Province Name (full name) [Some-State]:Paris
Locality Name (eg, city) []:Paris
Organization Name (eg, company) [Internet Widgits Pty Ltd]:Euro-Web
Organizational Unit Name (eg, section) []:SD-France
Common Name (eg, YOUR name) []:blog.yacoubi.fr
Email Address []:xxxxx@xxx.xx
 
Please enter the following 'extra' attributes
to be sent with your certificate request
A challenge password []:
An optional company name []:
  • On supprime la passphrase
srv94 mysql # openssl rsa -in /etc/ssl/mysql/client-key.pem -out /etc/ssl/mysql/client-key.pem
Enter pass phrase for /etc/ssl/mysql/client-key.pem:
writing RSA key
  • Et enfin on signe par le CA le certificat
srv94 mysql # openssl ca  -policy policy_anything -out /etc/ssl/mysql/client-cert.pem -config /etc/ssl/mysql/openssl.cnf -infiles /etc/ssl/mysql/client-req.pem
Using configuration from /etc/ssl/mysql/openssl.cnf
Enter pass phrase for /etc/ssl/mysql//private/cakey.pem:
Check that the request matches the signature
Signature ok
Certificate Details:
        Serial Number: 2 (0x2)
        Validity
            Not Before: Feb 12 18:07:44 2009 GMT
            Not After : Feb 12 18:07:44 2010 GMT
        Subject:
            countryName               = FR
            stateOrProvinceName       = Paris
            localityName              = Paris
            organizationName          = Euro-Web
           organizationalUnitName          = SD-France
            commonName                = blog.yacoubi.fr
            emailAddress              = xxxxx@xxx.xx
        X509v3 extensions:
            X509v3 Basic Constraints: 
                CA:FALSE
            Netscape Comment: 
                OpenSSL Generated Certificate
            X509v3 Subject Key Identifier: 
                09:76:3A:FC:BF:58:34:42:CF:54:CE:23:81:63:C4:13:A3:4F:CD:5B
            X509v3 Authority Key Identifier: 
                keyid:54:F0:E4:EF:61:E0:05:70:F1:24:82:B2:06:69:60:83:01:4E:27:16
 
Certificate is to be certified until Feb 12 18:07:44 2010 GMT (365 days)
Sign the certificate? [y/n]:y
 
 
1 out of 1 certificate requests certified, commit? [y/n]y
Write out database with 1 new entries
Data Base Updated

Configuration du serveur :

On modifie la configuration de MYSQL

[mysqld]
ssl-ca=/etc/ssl/mysql/cacert.pem
ssl-cert=/etc/ssl/mysql/server-cert.pem
ssl-KEY=/etc/ssl/mysql/server-KEY.pem

On vérifie que SSL est bien activé

mysql> SHOW VARIABLES LIKE 'have_openssl';
+------------------+-------+
| Variable_name | Value |
+------------------+-------+
| have_openssl  | YES   | 
+------------------+-------+
1 row IN SET (0.00 sec)

Pour la suite tout se fera à la ligne de commande, vous pouvez bien entendu configuré /etc/mysql/my.cnf en conséquence

[client]
ssl-ca = /etc/ssl/mysql/cacert.pem
ssl-cert = /etc/ssl/mysql/client-cert.pem
ssl-KEY = /etc/ssl/mysql/client-KEY.pem

On crée/modifie un utilisateur pour forcer le SSL

REVOKE ALL PRIVILEGES ON `mohamed`.* FROM 'mohamed'@'%'; GRANT SELECT, INSERT, UPDATE, DELETE, CREATE, DROP, INDEX, ALTER, CREATE TEMPORARY TABLES, LOCK TABLES, CREATE VIEW, SHOW VIEW, CREATE ROUTINE, ALTER ROUTINE, EXECUTE ON `mohamed`.* TO 'mohamed'@'%' REQUIRE SSL;

Un test pour une connexion standard nous permet de vérifier que SSL est bien requis

blog ~ # mysql -umohamed -pssl -hsrv94
ERROR 1045 (28000): Access denied for user 'mohamed'@'localhost' (using password: YES)

Un nouveau test en précisant le CA, on constate que la connexion s'établie

blog ~ # mysql -umohamed -pssl --ssl-ca=/etc/mysql/ca-cert.pem -hsrv94
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 101
Server version: 5.0.70 Gentoo Linux mysql-5.0.70-r1
 
Type 'help;' or '\h' for help. Type '\c' to clear the buffer.
 
mysql>

Voici la différence entre la version non SSL et SSL obtenu en sniffant

mysqlsniffer listening for MySQL on interface eth0 port 3306
78.41.233.209.60024 > server: ID 0 len 1 COM_QUIT
server > 78.41.233.209.60025: ID 0 len 52 Handshake <proto 10 ver 5.0.70 thd 17> 
78.41.233.209.60025 > server: ID 1 len 61 Handshake (new auth) <user mohamed db (null) max pkt 16777216> 
server > 78.41.233.209.60025: ID 2 len 7 OK <fields 0 affected rows 0 insert id 0 warnings 0> 
78.41.233.209.60025 > server: ID 0 len 33 COM_QUERY: select @@version_comment limit 1
server > 78.41.233.209.60025: ID 1 len 1 1 Fields
        ID 2 len 39 Field: ..@@version_comment <type var string (509) size 28>
        ID 3 len 5 End <warnings 0> 
        ID 4 len 29 || Gentoo Linux mysql-5.0.70-r1 ||
        ID 5 len 5 End <warnings 0>

mysqlsniffer listening for MySQL on interface eth0 port 3306
server > 78.41.233.209.60302: ID 0 len 52 Handshake <proto 10 ver 5.0.70 thd 21> 
78.41.233.209.60302 > server: ID 1 len 32 Handshake (new auth) <user  db (null) max pkt 16777216> 
78.41.233.209.60302 > server: ::FRAGMENT END::
server > 78.41.233.209.60302: 
        ::FRAGMENT START::
        ::FRAGMENT END::
78.41.233.209.60302 > server: 
        ::FRAGMENT START::
        ::FRAGMENT END::
server > 78.41.233.209.60302: 
        ::FRAGMENT START::
        ::FRAGMENT END::
78.41.233.209.60302 > server: 
        ::FRAGMENT START::
        ::FRAGMENT END::
server > 78.41.233.209.60302: 
        ::FRAGMENT START::
        ::FRAGMENT END::
78.41.233.209.60302 > server: 
        ::FRAGMENT START::
        ::FRAGMENT END::
server > 78.41.233.209.60302: 
        ::FRAGMENT START::
        ::FRAGMENT END::

Il est à noter que cette option active juste le cryptage, on teste avec un fichier pris au hasard sur le système

blog ~ # mysql -umohamed -pssl --ssl-ca=/root/LISEZMOI.TXT -hsrv94
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 103
Server version: 5.0.70 Gentoo Linux mysql-5.0.70-r1
 
Type 'help;' or '\h' for help. Type '\c' to clear the buffer.
 
mysql>

C'est bien beau de chiffré mais si n'importe quelle fichier peut faire office de CA ça limite l'intérêt. Nous allons donc forcer l'utilisation d'un certificat valide, donc signé

REVOKE ALL PRIVILEGES ON `mohamed`.* FROM 'mohamed'@'%'; GRANT SELECT, INSERT, UPDATE, DELETE, CREATE, DROP, INDEX, ALTER, CREATE TEMPORARY TABLES, LOCK TABLES, CREATE VIEW, SHOW VIEW, CREATE ROUTINE, ALTER ROUTINE, EXECUTE ON `mohamed`.* TO 'mohamed'@'%' REQUIRE X509;

On test de nouveau

blog ~ # mysql -umohamed -pssl  -hsrv94                                  
ERROR 1045 (28000): Access denied for user 'mohamed'@'localhost' (using password: YES)
blog ~ # mysql -umohamed -pssl --ssl-ca=/root/LISEZMOI.TXT -hsrv94
ERROR 1045 (28000): Access denied for user 'mohamed'@'localhost' (using password: YES)
blog ~ # mysql -umohamed -pssl --ssl-ca=/etc/ssl/mysql/ca-cert.pem -hsrv94
ERROR 1045 (28000): Access denied for user 'mohamed'@'localhost' (using password: YES)

C'est parfait, on test à présent avec le certificat signé par la CA

blog ~ # mysql -umohamed -pssl --ssl-ca=/etc/ssl/mysql/ca-cert.pem --ssl-cert=/etc/ssl/mysql/client-cert.pem --ssl-key=/etc/ssl/mysql/client-key.pem -hsrv94
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 109
Server version: 5.0.70 Gentoo Linux mysql-5.0.70-r1
 
Type 'help;' or '\h' for help. Type '\c' to clear the buffer.
 
mysql>

Et voila ca fonctionne, le seul bémol est que pour le moment il n'est pas possible de définir un certificat pour un utilisateur précis.

Il est à noter que nous pouvons ajouter d'autres options afin d'accroître la sécurité :

REQUIRE ISSUER "issuer" restreint les tentatives de connexion : le client doit se présenter avec un certificat X509 valide, émis par l' autorité de certification "issuer". Utiliser un certificat X509 implique obligatoirement des chiffrements, donc l'option SSL est sous entendue.

REQUIRE SUBJECT "subject" impose au client d'avoir un certificat X509 valide, avec le sujet "subject". Si le client présente un certificat valide, mais que le "subject" est différent, la connexion est refusée.

REQUIRE CIPHER "cipher" est utilisé pour s'assurer que les chiffrements sont suffisamment robuste, et que la bonne longueur de clé est utilisée. SSL lui même peut être faible si des algorithmes sont utilisés avec des clés courtes. En utilisant cette option, il est possible d'imposer la méthode de chiffrement avec la connexion.

Les options SUBJECT, ISSUER et CIPHER peuvent être combinées avec la clause REQUIRE.

Lien : Mysql secure connections

28oct. 2008

Erreur lors d'un dump Mysql "File './nav_almo7tar1381/nuke_video_stream_settings.MYD' not found (Errcode: 24) "

mysql_logo.gif
Une erreur assez récurrente a lieu sur certains de nos serveurs Mysql assez chargés , lors du dump journalier. Voici un exemple de cette erreur :

nav_allkille260 - dumping : mysqldump: Got error: 1105: File './nav_allkille260/xoops1_image.MYD' NOT found (Errcode: 24) when USING LOCK TABLES
nav_almo7tar1300 - dumping : mysqldump: Got error: 1017: Ne peut trouver le fichier: './nav_almo7tar1300/nuke_webcams_cat.frm' (Errcode: 24) when USING LOCK TABLES
nav_almo7tar1381 - dumping : mysqldump: Got error: 1105: File './nav_almo7tar1381/nuke_video_stream_settings.MYD' NOT found (Errcode: 24) when USING LOCK TABLES
nav_bak931417 - dumping : mysqldump: Got error: 1016: Ne peut ouvrir le fichier: 'forum_baksearch_wordlist.MYI'. (Errcode: 145) when USING LOCK TABLES
nav_toutsurl - dumping : mysqldump: Got error: 1105: File './nav_toutsurl/phpbb_themes.MYD' NOT found (Errcode: 24) when USING LOCK TABLES

Avec le temps on s'aperçoit que les tables indiquée dans l'erreur ne sont pas toujours les même, on peut donc exclure une table corrompue. Le problème est en réalité très simple, le nombre de fichiers ouverts par MySQL dépasse la limite maximale définie par open_files_limit. En théorie cela peut également poser problème lors de l'utilisation du serveur, néanmoins ces serveurs hébergeant la partie Mysql pour des petits sites internet aucun problème n'est à déplorer hormis durant les backups.

Une fois cette option modifié dans le fichier de configuration Mysql, le problème est résolue.

  • /etc/mysql/my.cf
set-variable    = open_files_limit=3000