Caractères

Fonctions de conversion

  • LCASE/LOWER
  • UCASE/UPPER
  • DECODE
  • CONVERT(string USING utf8)

Problème avec SET NAMES UTF8

si on fait un WHERE CONCAT(field1, ' ', field2) parfois la condition échoue car ' ' n'est pas en UTF-8. Il faut écrire: WHERE CONCAT(field1, CONVERT(' ' USING utf8), field2)

Mot de passe caché dans un fichier

exemple pour mysqldump:

1. créer un fichier
/root/.my.password.cnf

2. dans le fichier
[mysqldump]
user="test"
password=test

3. à la ligne de commande
mysqldump --defaults-file="/root/.my.password.cnf" database > database.sql

Note: il est très important d'écrire --defaults-file comme premier argument. La commande ne fonctionne pas après les paramètres -h ou -u. Cette option n'est pas dans le manuel (man) de mysql ou mysqldump.

Pour la commande mysql, la section dans le fichier est [client].

mysqldump

Depuis la version 5.1, il faut ajouter --events --ignore-table=mysql.event pour enlever l'avertissement suivant:

-- Warning: Skipping the data of table mysql.event. Specify the --events option explicitly.

Source: MySQL and warnings - Yet another compatibility break

Problème suivant:

$ mysql -u root -p mysql
mysql> show events;
ERROR 1577 (HY000): Cannot proceed because system tables used by Event Scheduler were found damaged at server start

MySQL Bugs: #70975 - http://bugs.mysql.com/bug.php?id=70975

Solution: arrêter et redémarrer le serveur (fonctionne)

# service mysql stop
# service mysql start

# mysql -u root -p mysql
mysql> show events;
Empty set (0.01 sec)