« Mysql » : différence entre les versions
Page créée avec « mysqldump export mysqldump --host=localhost --user=utilisateur --password=motdepass -C -Q -e --default-character-set=latin1 basededonnee | gzip -c > fichiersql.gz exp... » |
Aucun résumé des modifications |
||
Ligne 1 : | Ligne 1 : | ||
mysqldump | == mysqldump == | ||
export | export | ||
mysqldump --host=localhost --user=utilisateur --password=motdepass -C -Q -e --default-character-set=latin1 basededonnee | gzip -c > fichiersql.gz | mysqldump --host=localhost --user=utilisateur --password=motdepass -C -Q -e --default-character-set=latin1 basededonnee | gzip -c > fichiersql.gz | ||
export all database | export all database | ||
mysqldump --host=localhost --user=root --password=motdepasse -C -Q -e --default-character-set=latin1 --all-databases | tar -zcvf > all_databases.gz | mysqldump --host=localhost --user=root --password=motdepasse -C -Q -e --default-character-set=latin1 --all-databases | tar -zcvf > all_databases.gz | ||
import | == import == | ||
gzip -d < fichiersql.gz | mysql --host=localhost --user= utilisateur --password= motdepass basededonnee | gzip -d < fichiersql.gz | mysql --host=localhost --user= utilisateur --password= motdepass basededonnee | ||
Ligne 14 : | Ligne 13 : | ||
mysql -u root -p --one-database BASE_A_RESTAURER < dumpcomplet.sql | mysql -u root -p --one-database BASE_A_RESTAURER < dumpcomplet.sql | ||
extraire sous forme de fichier SQL, la base qui vous intéresse ? | == extraire sous forme de fichier SQL, la base qui vous intéresse ? == | ||
sed -n '/^-- Current Database: `BASE_A_EXTRAIRE`/,/^-- Current Database: `/p' dumpcomplet.sql > mabase.sql | sed -n '/^-- Current Database: `BASE_A_EXTRAIRE`/,/^-- Current Database: `/p' dumpcomplet.sql > mabase.sql | ||
== mac os X == | |||
mac os X | |||
mysqldump sans mot de passe: | mysqldump sans mot de passe: | ||
générer la config | générer la config | ||
/usr/local/mysql/bin/mysql_config_editor set --login-path=local --host=localhost --user=root --password | /usr/local/mysql/bin/mysql_config_editor set --login-path=local --host=localhost --user=root --password | ||
---- | |||
voir la config | voir la config | ||
/usr/local/mysql/bin/mysql_config_editor print --all | /usr/local/mysql/bin/mysql_config_editor print --all | ||
---- | |||
se connecter: | se connecter: | ||
/usr/local/mysql/bin/mysql --login-path=local | /usr/local/mysql/bin/mysql --login-path=local | ||
---- | |||
dump: | dump: | ||
/usr/local/mysql/bin/mysqldump --login-path=local --host=localhost --user=root -C -Q -e --default-character-set=latin1 base | gzip -c > /users/.../base.gz | /usr/local/mysql/bin/mysqldump --login-path=local --host=localhost --user=root -C -Q -e --default-character-set=latin1 base | gzip -c > /users/.../base.gz | ||
---- | |||
avec homebrew et zsh | avec homebrew et zsh | ||
dans le fichier .zshrc (equivalent -->.bash_profile) | dans le fichier .zshrc (equivalent -->.bash_profile) | ||
export PATH=${PATH}:/usr/local/mysql/bin | export PATH=${PATH}:/usr/local/mysql/bin | ||
---- | |||
import mac os X | import mac os X | ||
gzip -d < unebase.gz | /usr/local/mysql/bin/mysql --host=localhost --user=unuser --password=unpassword unebase | gzip -d < unebase.gz | /usr/local/mysql/bin/mysql --host=localhost --user=unuser --password=unpassword unebase | ||
== export serveur dédié == | |||
mysqldump --host=localhost --user=unuser --password=unpassword -C -Q -e --default-character-set=latin1 unebase | gzip -c > unebase.gz | |||
== Remplacer des caractères ou une chaine == | |||
UPDATE table SET le_champs = replace(le_champs, 'é', 'é') WHERE id > 0; | |||
== Procédures et fonctions sous MySQL: les bases: == | |||
* repérer les doublons: | |||
SELECT champsadoublons, count(*) | |||
FROM table | |||
GROUP BY champsadoublons | |||
) | HAVING count(*) > 1 | ||
* Créer un index FULLTEXT: | |||
CREATE FULLTEXT INDEX fti_matable ON matable( | |||
titre, | |||
contenu | |||
) | |||
Requête de recherche avec INDEX FULL TEXT: | * Requête de recherche avec INDEX FULL TEXT: | ||
par pertinence : | par pertinence : | ||
SELECT *, MATCH (titre,contenu) AGAINST | SELECT *, MATCH (titre,contenu) AGAINST | ||
('mots clefs') AS score | |||
FROM table WHERE MATCH (titre,contenu) AGAINST | |||
('mots clefs'); | |||
par boolean : | * par boolean : | ||
SELECT * FROM table WHERE MATCH (titre,contenu) | SELECT * FROM table WHERE MATCH (titre,contenu) | ||
AGAINST ('+ mots clefs' IN BOOLEAN MODE) order by date desc; | AGAINST ('+ mots clefs' IN BOOLEAN MODE) order by date desc; | ||
SELECT * FROM table WHERE MATCH (titre,contenu) | SELECT * FROM table WHERE MATCH (titre,contenu) | ||
AGAINST ("mots clefs" IN BOOLEAN MODE) order by date desc; | AGAINST ("mots clefs" IN BOOLEAN MODE) order by date desc; | ||
expression | * expression | ||
SELECT * FROM table WHERE MATCH (titre,contenu) | SELECT * FROM table WHERE MATCH (titre,contenu) | ||
AGAINST ('"Grande première"*' IN BOOLEAN MODE) order by date desc; | AGAINST ('"Grande première"*' IN BOOLEAN MODE) order by date desc; | ||
<i>* commençant par ....</i> | |||
* | * Reconstruire l'index: | ||
REPAIR TABLE table | |||
Reconstruire l'index: | |||
REPAIR TABLE table | |||
source:http://www.siteduzero.com/tutoriel-3-482339-index.html#ss_part_4 | source:http://www.siteduzero.com/tutoriel-3-482339-index.html#ss_part_4 | ||
== Étendre la recherche aux mots de 3 lettres == | |||
Étendre la recherche aux mots de 3 lettres | |||
Par défaut MySQL FULLTEXT indexe les mots de quatre lettres ou plus. Pour étendre la recherche aux mots de 3 lettres ou plus, il faut modifier la config du serveur (/etc/mysql/my.cnf sous Debian), et ajouter les deux éléments suivants : | Par défaut MySQL FULLTEXT indexe les mots de quatre lettres ou plus. Pour étendre la recherche aux mots de 3 lettres ou plus, il faut modifier la config du serveur (/etc/mysql/my.cnf sous Debian), et ajouter les deux éléments suivants : | ||
[mysqld] | [mysqld] | ||
ft_min_word_len=3 | ft_min_word_len=3 | ||
[myisamchk] | [myisamchk] | ||
ft_min_word_len=3 | ft_min_word_len=3 | ||
creer un utilisteur full | * creer un utilisteur full | ||
mysql -p | mysql -p | ||
GRANT ALL PRIVILEGES ON *.* TO 'user'@'localhost' IDENTIFIED BY 'pass' WITH GRANT OPTION; | GRANT ALL PRIVILEGES ON *.* TO 'user'@'localhost' IDENTIFIED BY 'pass' WITH GRANT OPTION; | ||
GRANT ALL PRIVILEGES ON *.* TO 'user'@'%' IDENTIFIED BY 'pass' WITH GRANT OPTION; | GRANT ALL PRIVILEGES ON *.* TO 'user'@'%' IDENTIFIED BY 'pass' WITH GRANT OPTION; | ||
flush privileges; | flush privileges; | ||
divers | * divers | ||
mysql -p | mysql -p | ||
GRANT ALL PRIVILEGES ON db.* TO user @'%' IDENTIFIED BY 'pass'; | GRANT ALL PRIVILEGES ON db.* TO user @'%' IDENTIFIED BY 'pass'; | ||
flush privileges; | flush privileges; | ||
DELETE FROM mysql.db WHERE user='user' and host='%'; | DELETE FROM mysql.db WHERE user='user' and host='%'; | ||
archiver une base | * archiver une base | ||
sudo /usr/bin/mysqldump --default-character-set=latin1 --host=localhost --user=compte --password=pass base > /rep/base.sql | sudo /usr/bin/mysqldump --default-character-set=latin1 --host=localhost --user=compte --password=pass base > /rep/base.sql | ||
archiver toutes les bases | * archiver toutes les bases | ||
sudo /usr/bin/mysqldump --default-character-set=latin1 --host=localhost --user=root --password=pass -A > /rep/fichier_dump.SQL | sudo /usr/bin/mysqldump --default-character-set=latin1 --host=localhost --user=root --password=pass -A > /rep/fichier_dump.SQL | ||
acces à distance | * acces à distance | ||
GRANT ALL ON user.* TO base@'ipduposte' IDENTIFIED BY 'password' WITH GRANT OPTION; | GRANT ALL ON user.* TO base@'ipduposte' IDENTIFIED BY 'password' WITH GRANT OPTION; | ||
/usr/local/mysql/bin/mysql -h ipdistante -u user -p --port=3306 | /usr/local/mysql/bin/mysql -h ipdistante -u user -p --port=3306 | ||
dans /etc/mysql/my.cnf | dans /etc/mysql/my.cnf | ||
désactivé | désactivé | ||
#bind-address = 127.0.0.1 | #bind-address = 127.0.0.1 | ||
ouvrir le port 3306 dans le firewall | ouvrir le port 3306 dans le firewall |
Version du 24 juillet 2019 à 12:31
mysqldump
export mysqldump --host=localhost --user=utilisateur --password=motdepass -C -Q -e --default-character-set=latin1 basededonnee | gzip -c > fichiersql.gz
export all database mysqldump --host=localhost --user=root --password=motdepasse -C -Q -e --default-character-set=latin1 --all-databases | tar -zcvf > all_databases.gz
import
gzip -d < fichiersql.gz | mysql --host=localhost --user= utilisateur --password= motdepass basededonnee
Pour importer une seule base à partir d'un dump complet, il faut entrer la commande suivante : mysql -u root -p --one-database BASE_A_RESTAURER < dumpcomplet.sql
extraire sous forme de fichier SQL, la base qui vous intéresse ?
sed -n '/^-- Current Database: `BASE_A_EXTRAIRE`/,/^-- Current Database: `/p' dumpcomplet.sql > mabase.sql
mac os X
mysqldump sans mot de passe: générer la config /usr/local/mysql/bin/mysql_config_editor set --login-path=local --host=localhost --user=root --password
voir la config /usr/local/mysql/bin/mysql_config_editor print --all
se connecter: /usr/local/mysql/bin/mysql --login-path=local
dump: /usr/local/mysql/bin/mysqldump --login-path=local --host=localhost --user=root -C -Q -e --default-character-set=latin1 base | gzip -c > /users/.../base.gz
avec homebrew et zsh dans le fichier .zshrc (equivalent -->.bash_profile) export PATH=${PATH}:/usr/local/mysql/bin
import mac os X gzip -d < unebase.gz | /usr/local/mysql/bin/mysql --host=localhost --user=unuser --password=unpassword unebase
export serveur dédié
mysqldump --host=localhost --user=unuser --password=unpassword -C -Q -e --default-character-set=latin1 unebase | gzip -c > unebase.gz
Remplacer des caractères ou une chaine
UPDATE table SET le_champs = replace(le_champs, 'é', 'é') WHERE id > 0;
Procédures et fonctions sous MySQL: les bases:
- repérer les doublons:
SELECT champsadoublons, count(*) FROM table GROUP BY champsadoublons HAVING count(*) > 1
- Créer un index FULLTEXT:
CREATE FULLTEXT INDEX fti_matable ON matable( titre, contenu )
- Requête de recherche avec INDEX FULL TEXT:
par pertinence :
SELECT *, MATCH (titre,contenu) AGAINST ('mots clefs') AS score FROM table WHERE MATCH (titre,contenu) AGAINST ('mots clefs');
- par boolean :
SELECT * FROM table WHERE MATCH (titre,contenu) AGAINST ('+ mots clefs' IN BOOLEAN MODE) order by date desc;
SELECT * FROM table WHERE MATCH (titre,contenu) AGAINST ("mots clefs" IN BOOLEAN MODE) order by date desc;
- expression
SELECT * FROM table WHERE MATCH (titre,contenu) AGAINST ('"Grande première"*' IN BOOLEAN MODE) order by date desc;
* commençant par ....
- Reconstruire l'index:
REPAIR TABLE table
source:http://www.siteduzero.com/tutoriel-3-482339-index.html#ss_part_4
Étendre la recherche aux mots de 3 lettres
Par défaut MySQL FULLTEXT indexe les mots de quatre lettres ou plus. Pour étendre la recherche aux mots de 3 lettres ou plus, il faut modifier la config du serveur (/etc/mysql/my.cnf sous Debian), et ajouter les deux éléments suivants :
[mysqld] ft_min_word_len=3 [myisamchk] ft_min_word_len=3
- creer un utilisteur full
mysql -p GRANT ALL PRIVILEGES ON *.* TO 'user'@'localhost' IDENTIFIED BY 'pass' WITH GRANT OPTION; GRANT ALL PRIVILEGES ON *.* TO 'user'@'%' IDENTIFIED BY 'pass' WITH GRANT OPTION;
flush privileges;
- divers
mysql -p GRANT ALL PRIVILEGES ON db.* TO user @'%' IDENTIFIED BY 'pass'; flush privileges;
DELETE FROM mysql.db WHERE user='user' and host='%';
- archiver une base
sudo /usr/bin/mysqldump --default-character-set=latin1 --host=localhost --user=compte --password=pass base > /rep/base.sql
- archiver toutes les bases
sudo /usr/bin/mysqldump --default-character-set=latin1 --host=localhost --user=root --password=pass -A > /rep/fichier_dump.SQL
- acces à distance
GRANT ALL ON user.* TO base@'ipduposte' IDENTIFIED BY 'password' WITH GRANT OPTION;
/usr/local/mysql/bin/mysql -h ipdistante -u user -p --port=3306
dans /etc/mysql/my.cnf désactivé #bind-address = 127.0.0.1
ouvrir le port 3306 dans le firewall