se mettre dans le path du bin mysql puis
./mysqldump -u[login] -p[passwordCOLLEau-P] [db_name] > /tmp/[some-file-for-saving-the-datas] [enter password at the prompt]
à mettre dans un crontab si on veut bien faire les choses pour récupérer des données UTF8 en latin1 (p.ex. si on fait du 4.1 → 4.0)
mysqldump Database table --default-character-set=latin1 > insertRechDoc1.sql
mysqldump -u[login] -p[password] --all-databases --add-drop-table #quotes vars /usr/local/mysql/bin/mysqldump -u root -p --add-drop-table --quote-names DBNAME > DBNAME.sql
mysqldump permet pas d'exclure des bases de données!!!
astuce trouvée sur http://lists.nyphp.org/pipermail/talk/2004-October/012361.html, à tester
> mysqldump -A will export all of the databases. But, what if I want to
> exclude a particular database? Is it possible? How, please?
>
> I looked at the documentation and the --help output. I'm hoping
> there's an undocumented option. :)
Come to think of it, you could do this:
ls -al $mysql_dir | grep ^d | egrep -v '\.[\.]?' | grep -v $test | awk '{
mysqldump $9 }' | sh
where $mysql_dir is the directory wherein your mysql databases reside
and $test is the directory/database you don't want.
marche très bien, voici mon adaptation; voici un autre script plus riche qui fait la même chose
Adapté dans ce script local: mysqldumplocal.sh
mysqldump -u[login] -p[password] database table --add-drop-table --default-character-set=latin1 > database.table.sql
· --no-data, -d
Do not write any table row information (that is, do not dump table contents). This is very useful if you want
to dump only the CREATE TABLE statement for the table.
#!/bin/bash
#backup bases de donnée mysql limesurvey
chemin="/www/limesurvey/backups"
cd $chemin
file="$chemin/$(date +'%Y%m%d_%Hh%M')_crus.sql"
touch $file
/usr/local/mysql/bin/mysqldump limesurvey > $file
gzip $file
find $chemin -mtime +10 -name "*.gz" -type f -exec rm {} \;
et le crontab
crontab -l # min (0-59) hours (0-23) day (1-31) month (1-12) day of week (0-6, 0=Sunday) 00 * * * * /www/limesurvey/backups/_backups.sh
SQL n'est pas le seul format de sortie dans lequel vous pouvez sauvegarder vos bases de données MySQL. Le programme mysqldump vous permet de sauvegarder des enregistrements dans divers formats, dont CSV ou tout autre format avec vos propres délimiteurs. Il vous suffit d'ajouter l'argument –fields-terminated-by à la ligne de commande mysqldump:
$ mysqldump -u root -p secret --no-create-info --tab=/tmp --fields-terminated-by=',' stocksdb
mysqldump générera alors dans le répertorie /tmp un fichier qui contiendra les enregistrements issus de la table stocksdb, les champs étant séparés par une virgule. Si vous voulez que chaque ligne se termine par un séparateur particulier, vous pouvez aussi utiliser l'argument –lines-terminated-by pour marquer chaque ligne par un délimiteur donné.
Tout comme vous pouvez exporter des données dans différents formats, vous pouvez aussi les importer dans différents formats. Par exemple, si vous aviez un fichier séparé par des tabulations qui contient des enregistrements de table, comme suit:
1 DHDU 2589 77.56 2 YHOO 3200 45.65 3 WMT 100 53.29
vous pourriez utiliser l'outil mysqlimport pour lire les données dans une base de données MySQL, de la façon suivante:
$ mysqlimport -u root -p secret --fields-terminated-by='\t' test /tmp/portfolio.txt
Pour récupérer:
mysql db_name < backup-file.sql
Backup avec PHP p. ex. sur serveur distant n'autorisant pas la connection ssh:
(nécessite droits root):
SET PASSWORD FOR user@host = password( 'new_password' )
possible avec mysql4 http://www.nexen.net/docs/mysql/annotee/fulltext-boolean.php http://www.phpindex.com/articles/articles_lire.php3?element=234
exemple: soit le string $chercherR="+texteObligatoire1 +texteObligatoire1 -texteAsauter"
à trouver dans un champ intitulé "libelle" dans n'importe quel ordre
$all = "
SELECT structures_url.id,structures_libelle.id,url,id_url,libelle
FROM `structures_url`, `structures_libelle`
WHERE ((structures_url.id=structures_libelle.id_url)
OR (id_url=0))
AND MATCH (libelle) AGAINST ('$chercherR' IN BOOLEAN MODE) ";
http://dev.mysql.com/doc/mysql/fr/upgrading-from-4-0.html
http://dev.mysql.com/doc/mysql/fr/upgrading-grant-tables.html
http://dev.mysql.com/doc/mysql/fr/charset-conversion.html
http://dev.mysql.com/doc/mysql/fr/server-options.html
installer mysql4, copier bases, lancer démon puis
/usr/local/mysql/bin/ ./mysql_fix_privilege_tables –password=ROOTPASSWORD
http://dev.mysql.com/doc/mysql/fr/upgrading-from-3-23.html http://dev.mysql.com/doc/mysql/en/mysqldump.html
pour récupérer des données UTF8 en latin1 mysqldump Database table –default-character-set=latin1 > insertRechDoc1.sql