Mes liens MySQL http://www.akademia.ch/links/search.php?hp=1&disc=mysql attention, ces liens ne sont plus à jour depuis 2008! préferer mon blog ou mon twitter
Ma page php
vous avez une terrible erreur du genre
ERROR 1016 (HY000): Can't open file: 'mempo_users_sessions.MYI' (errno: 145)
et vous n'arrivez même pas à accéder à la table, p.ex.
REPAIR TABLE Syntax
REPAIR [LOCAL | NO_WRITE_TO_BINLOG] TABLE
tbl_name [, tbl_name] ... [QUICK] [EXTENDED] [USE_FRM]
REPAIR TABLE repairs a possibly corrupted table.
By default, it has the same effect as myisamchk --recover tbl_name.
ATTENTION: à manier avec précaution, lire avant http://dev.mysql.com/doc/refman/5.0/en/repair-table.html
Il est toujours possible de faire cette délicate opération après-coup de la manière suivante:
ALTER TABLE `tableName` ADD `id` INT( 12 ) NOT NULL ; ALTER TABLE `tableName` ADD PRIMARY KEY ( `id` ) ; ALTER TABLE `tableName` CHANGE `id` `id` INT( 12 ) NOT NULL AUTO_INCREMENT ;
ALTER TABLE `batiments` ADD `rem01` TEXT NOT NULL , ADD `rem02` TEXT NOT NULL , ADD `rem03` TEXT NOT NULL , ADD `rem04` TEXT NOT NULL , ADD `rem05` TEXT NOT NULL , ADD `rem06` TEXT NOT NULL , ADD `rem07` TEXT NOT NULL , ADD `rem08` TEXT NOT NULL , ADD `rem09` TEXT NOT NULL , ADD `rem10` TEXT NOT NULL ;
netstat -n | grep mys netstat -n | grep 3306
access2MySQL.sh convert Microsoft access db (maybe also other formats) to standard MySQL
concaténation plusieurs bases MySQL: précautions à prendre et solutions, ou pourquoi mysql est parfois benêt!
http://dev.mysql.com/doc/refman/5.0/fr/adding-users.html Ajouter de nouveaux utilisateurs à MySQL
créer un nouvel utilisateur et lui donner tous les droits sur la base db:
GRANT ALL PRIVILEGES ON db.* TO 'monty'@'localhost' WITH GRANT OPTION; SET PASSWORD FOR monty@host = password( 'new_password' );
Exemples
shell> mysql --user=root mysql
Vous pouvez ajouter de nouveaux utilisateurs en utilisant des commandes GRANT :
mysql> GRANT ALL PRIVILEGES ON *.* TO 'monty'@'localhost'
-> IDENTIFIED BY 'un_mot_de_passe' WITH GRANT OPTION;
mysql> GRANT ALL PRIVILEGES ON *.* TO 'monty'@'%'
-> IDENTIFIED BY 'un_mot_de_passe' WITH GRANT OPTION;
mysql> GRANT RELOAD,PROCESS ON *.* TO 'admin'@'localhost';
mysql> GRANT USAGE ON *.* TO 'dummy'@'localhost';
en deux coups de cuillère à pot, créer une base et un user:
mysql create database lenom GRANT ALL PRIVILEGES ON lenom.* TO 'monty'@'localhost' WITH GRANT OPTION; SET PASSWORD FOR monty@host = password( 'new_password' );
lister les champs dans rem puis
cat rem | while read i do echo "ALTER TABLE '$i' DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci;" done
ALTER DATABASE
connect.inc.php global file to connect to MySQL with php
Pour générer automatiquement des fichiers php pour afficher et administrer une base de données MySQL
pour avoir un id numérique auto-incrémental
ALTER TABLE latable ADD id MEDIUMINT NOT NULL AUTO_INCREMENT KEY
suite à un INSERT, on veut récupérer le nouvel id pour continuer p.ex. ds un formulaire:
<?php
$link = mysql_connect('localhost', 'mysql_user', 'mysql_password');
if (!$link) {
die('Impossible de se connecter : ' . mysql_error());
}
mysql_select_db('mydb');
mysql_query("INSERT INTO mytable (product) values ('kossu')");
printf("Le dernier ID inséré dans est le id %d\n", mysql_insert_id());
?>
exemples du bouquin O'Reilly base de données film http://www.akademia.ch/info/mysql/film/
http://www.totallyphp.co.uk/scripts/optimize-all-tables-in-a-mysql-database.htm
<?php
dbConnect()
$alltables = mysql_query("SHOW TABLES");
while ($table = mysql_fetch_assoc($alltables))
{
foreach ($table as $db => $tablename)
{
mysql_query("OPTIMIZE TABLE '".$tablename."'")
or die(mysql_error());
}
}
?>
pratique pour ouvrir mysql sans login+password,
mettre dans son $HOME un fichier .my.cnf contenant:
[client] user = userName password = userPassword [mysql] database = userDB
puis chmod 700 .my.cnf
ensuite quand on fait mysql c'est comme
mysql -u userName -puserPassword userDB
(attention à bien coller le mot de passe au -p)
mysql -u root -p
use mysql;
update user set password=PASSWORD("NEWPASSWORD") where User='lambda';
vous avez perdu le password root et vous ne voulez pas réinstaller mysql en faisant un backup des tables? rien de plus simple
source: http://www.cyberciti.biz/tips/recover-mysql-root-password.html
Step # 1 : Stop mysql service
# /etc/init.d/mysql stop
Output:
Stopping MySQL database server: mysqld.
Step # 2: Start to MySQL server w/o password:
# mysqld_safe --skip-grant-tables &
Output:
[1] 5988
Starting mysqld daemon with databases from /var/lib/mysql
mysqld_safe[6025]: started
Step # 3: Connect to mysql server using mysql client:
# mysql -u root
Output:
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 1 to server version: 4.1.15-Debian_1-log
Type 'help;' or '\h' for help. Type '\c' to clear the buffer.
mysql>
Step # 4: Setup new MySQL root user password
mysql> use mysql;
mysql> update user set password=PASSWORD("NEW-ROOT-PASSWORD") where User='root';
mysql> flush privileges;
mysql> quit
SELECT * FROM cours WHERE id_cours NOT IN (SELECT id_cours FROM cours_dates)
SELECT * FROM testit WHERE TO_DAYS( NOW( ) ) - TO_DAYS( timestamp ) <=30 LIMIT 0 , 100;
UPDATE `DJTDemiJour` SET DJTDate =ADDDATE(DJTDate, INTERVAL 611 DAY) UPDATE `jos_reservations` SET date = ADDDATE( date, INTERVAL 70 DAY )
et soustraire:
mysql> SELECT SUBDATE('2008-01-02', INTERVAL 31 DAY);
update sr_data set email='@bcu.unil.ch' where email='FR'
# update signets set category='Geneve_et le_monde' where category='Genève_et le_monde' ou syntaxe replace:
$replace = mysql_query("replace into recet (id, prov, titre, temps, ingr, pers, typ, prep, date) VALUES ('$id', '$prov', '$titre', '$temps', '$ingr', '$pers', '$typ', '$prep', '$date')");
UPDATE xoops_bb_posts_textSET post_text=(REPLACE (post_text,'morphix.sourceforge.net','www.morphix.org')); marche pas (infra)
UPDATE recet SET ingr = REPLACE ( ingr, 'calmar', 'calamar' ) WHERE ingr LIKE '%calmar%'
CA CA MARCHE: update `tableName` set `Field`=replace('string','old','new')
Example 1
SELECT name FROM cia WHERE population > (SELECT population FROM cia WHERE name='United States')
Example 2
SELECT name FROM cia WHERE region = (SELECT region FROM cia WHERE name = 'Brazil')
“SELECT t1.cod_uni, t1.TEL_IMP_UNI, t1.comm, t1.dateu FROM testunite t1 WHERE t1.cod_uni NOT IN (SELECT t2.cod_uni FROM testunite2 t2) ORDER BY t1cod_uni”;
[+/-]
13.1.7.1. Syntaxe de JOIN 13.1.7.2. Syntaxe de UNION
SELECT [STRAIGHT_JOIN]
[SQL_SMALL_RESULT] [SQL_BIG_RESULT] [SQL_BUFFER_RESULT]
[SQL_CACHE | SQL_NO_CACHE] [SQL_CALC_FOUND_ROWS] [HIGH_PRIORITY]
[DISTINCT | DISTINCTROW | ALL]
select_expression,...
[INTO {OUTFILE | DUMPFILE} 'nom_fichier' export_options]
[FROM table_references
[WHERE where_definition]
[GROUP BY {unsigned_integer | nom_de_colonne | formula} [ASC | DESC], ...
[HAVING where_definition]
[ORDER BY {unsigned_integer | nom_de_colonne | formula} [ASC | DESC] ,...]
[LIMIT [offset,] lignes]
[PROCEDURE procedure_name(argument_list)]
[FOR UPDATE | LOCK IN SHARE MODE]]
$sql5b="SELECT * FROM voc WHERE libelle REGEXP '^$ereg$q5b$ereg$' ORDER BY libelle";
load data local infile '/home/radeff/public_html/emails/emails.txt' into table fred_email; load data local infile '/home/radeff/public_html/secret/dereda/file.txt' into table frdereda fields terminated by ";"; # load data local infile '/export/data/htdocs/radeff/signets.txt' into table signets fields terminated by ";";
http://video.google.com/videoplay?docid=2742157386318372444 Tutoriel vidéo pour faire un backup avec phpMyAdmin
pour extraire les log binaires d'une base:
mysqlbinlog –database=nameOfYourDB mysql_bin.* | grep -v '^# at' > result
mysql2xml script php pour convertir en xml une base mysql kw: mysqltoxml mysql xml php mysql php xml mysql
mysqldump2xml utiliser mysqldump pour générer du xml à partir d'une base MySQL; défaut: c'est pas du xml standard
phpCgiMysql2xml utiliser un cgi php appellé depuis php+apache, marche nickel
whereis mysql mysql: /usr/bin/mysql /etc/mysql /usr/share/mysql /usr/share/man/man1/mysql.1.gz
Where are the Mysql data files located? They're all in /var/lib/mysql
The log files: /var/log/mysql