Il y a 389 articles et 19 utilisateurs inscrits (ce bandeau est défini dans MediaWiki:Sitenotice)

« MySQL » : différence entre les versions

De AJLSM
Aller à la navigation Aller à la recherche
Ligne 54 : Ligne 54 :
L'encodage par défaut de MySQL est *ISO Latin1*. Ainsi, plusieurs caractères accentués ne sont pas gérés. Les problèmes apparaissent souvent au niveau de la partie gauche de la fenêtre EAD (car les données correspondantes sont dans la base de données).
L'encodage par défaut de MySQL est *ISO Latin1*. Ainsi, plusieurs caractères accentués ne sont pas gérés. Les problèmes apparaissent souvent au niveau de la partie gauche de la fenêtre EAD (car les données correspondantes sont dans la base de données).


Pour corriger ce problème, il faut changer par défaut l'encodage de MySQL en *utf8*. Il faut ajouter les deux lignes suivantes dans les sections client et mysqld du fichier my.cnf.
Pour corriger ce problème, il faut changer par défaut l'encodage de MySQL en *utf8*.  
 
Il y a deux manières de régler le problème.
 
A) Il faut ajouter les deux lignes suivantes dans les sections client et mysqld du fichier my.cnf.
   
   
<syntaxhighlight lang="bash">
<syntaxhighlight lang="bash">
Ligne 62 : Ligne 66 :
[mysqld]
[mysqld]
character-set-server = utf8
character-set-server = utf8
</syntaxhighlight>
*** OU ***
B) Ajouter le paramètrage suivant à la connexion jdbc dans tomcat/conf/context.xml:
?useEncoding=true&amp;characterEncoding=UTF-8
Exemple:
<syntaxhighlight lang="xml">
<Resource name="jdbc/pleade3" auth="Container" type="javax.sql.DataSource" maxActive="100" maxIdle="30" maxWait="10000"
url="jdbc:mysql://localhost/pleade310?useEncoding=true&amp;characterEncoding=UTF-8" driverClassName="com.mysql.jdbc.Driver" username="sdxapp" password="sdxapp-pwd"/>
</syntaxhighlight>
</syntaxhighlight>



Version du 27 mai 2015 à 14:45

Commandes utiles

  • Pour voir les dates créée et modifiée des tableaux:
select table_schema, table_name, create_time, update_time from information_schema.tables where table_schema='bmorleans_prod_pleade' order by create_time;
  • Pour voir la progression pendant un import d'un gros fichier dans MySQL:
sudo apt-get install pv
pv /data/client/bm-orleans/bmorleans_prod_pleade.sql | mysql -u bmorleans_pleade -p6DvP8ana bmorleans_prod_pleade

Configuration de MySQL pour Pleade par défaut

  • Pour voir le max_allowed_packet pour MySQL :
show variables like 'max_allowed_packet';
  • Il faut modifier le fichier /etc/mysql/my.cnf
  • Changer tous les "max_allowed_packet" à 100M
  • Il faut changer max_allowed_packet=100M pour ajouter des gros fichiers EAD dans la base de données de Pleade :
sudo mysqld --max_allowed_packet=100M
sudo service mysql restart

ou

mysql -u root -p
set global max_allowed_packet=1024 * 1024 * 100;

Pour faire un mysqldump avec max_allowed_packet=100M :

mysqldump --max_allowed_packet=100M -u pleade -p  pleade_preprod > /home/ajlsm/backup/update-PREPROD-ad84-2014-11-05-backup.sql
  • Si non, vous pouvez avoir une erreur comme :

ERROR (2014-06-20) 11:45.54:450 [sdx.framework] (/pleade-mets/edit/ead-publish.xml) http-20380-66/LoggingUtils: Impossible d'ajouter un document avec l'identifiant « FRAD084_paroissiaux » dans l'entrepôt « ead-docs » : « Impossible d'exécuter la requête « INSERT INTO module_eadeac_ead_docs (id,data) VALUES (?, ?) » : impossible de lire l'index de recherche de «  » : « Packet for query is too large (26462104 > 16777216). You can change this value on the server by setting the max_allowed_packet' variable. » »

mysqlreport

mysqlreport est installer normalement avec mysql sur linux. Il donne des informations sur la performance de mysql utiles. Voir cette page pour davantage d'info : http://hackmysql.com/nontech

show processlist

Après avoir connecté à mysql terminal, on peut faire

show processlist;

Pour voir les requêtes à cette instant.


Encodage des caratéres

L'encodage par défaut de MySQL est *ISO Latin1*. Ainsi, plusieurs caractères accentués ne sont pas gérés. Les problèmes apparaissent souvent au niveau de la partie gauche de la fenêtre EAD (car les données correspondantes sont dans la base de données).

Pour corriger ce problème, il faut changer par défaut l'encodage de MySQL en *utf8*.

Il y a deux manières de régler le problème.

A) Il faut ajouter les deux lignes suivantes dans les sections client et mysqld du fichier my.cnf.

[client]
default-character-set = utf8

[mysqld]
character-set-server = utf8
      • OU ***

B) Ajouter le paramètrage suivant à la connexion jdbc dans tomcat/conf/context.xml:

?useEncoding=true&characterEncoding=UTF-8

Exemple:

<Resource name="jdbc/pleade3" auth="Container" type="javax.sql.DataSource" maxActive="100" maxIdle="30" maxWait="10000" 
		url="jdbc:mysql://localhost/pleade310?useEncoding=true&amp;characterEncoding=UTF-8" driverClassName="com.mysql.jdbc.Driver" username="sdxapp" password="sdxapp-pwd"/>

Commandes utiles MAC OS X

  • Démarrer mysql:
sudo port load mysql56-server
  • Arrêter mysql:
sudo port unload mysql56-server