MySQL din linie de comanda

13
Administrarea MySQL din linie de comanda Mihail Croitor

Transcript of MySQL din linie de comanda

Page 1: MySQL din linie de comanda

Administrarea MySQL din linie de comanda

Mihail Croitor

Page 2: MySQL din linie de comanda

Cuprins• Necesitatea lucrului cu MySQL din linie de comandă• Aplicații MySQL• mysqld• mysql• mysqladmin• mysqlcheck / myisamchk• mysqldump• mysqlimport

• Scenarii utile

Page 3: MySQL din linie de comanda

Necesitatea lucrului cu MySQL din linie de comandă• În caz, dacă nu este instalat un sistem visual de gestionare a BD

(phpmyadmin sau altul);• Operații de SuperUser, operații ce necesită resurse extreme (mult

timp sau memorie);• Crearea copiilor de rezervă;• Restabilirea / repararea bazelor de date;• Alte…

Page 4: MySQL din linie de comanda

Aplicații MySQL• mysqld – serverul (daemon) MySQL. Se execută concomitent.• mysql – un simplu înveliș SQL ce suportă cât regim interactiv atât și regim

neinteractiv.• mysqladmin – aplicație ce se utilizează pentru operațiuni administrative

(crearea BD, gestionarea utilizatorilor și permisiunilor).• mysqlcheck / myisamchk – aplicații pentru verificare și restabilire BD.

mysqlcheck se utilizează cu server pornit, myisamchk – cu server oprit.• mysqldump – aplicație pentru afișarea BD în format SQL.• mysqlimport – aplicație pentru import datelor din fișiere textuale în tabele

respective.

Page 5: MySQL din linie de comanda

Aplicații MySQL: mysql• Mod de utilizare:

mysql [OPTIONS] [database]

• Opțiuni posibile:• --default-character-set=name• -?, --help• -h, --host=name• -p, --password[=name]• -t, --table• --ssl• -u, --user=name

Page 6: MySQL din linie de comanda

Aplicații MySQL: mysqladmin• Mod de utilizare:

mysqladmin [OPTIONS] command command ...

• Opțiuni posibile:• --default-character-set=name• -?, --help• -h, --host=name• -p, --password[=name]• --ssl• -u, --user=name

Page 7: MySQL din linie de comanda

Aplicații MySQL: mysqlcheck• Mod de utilizare:

mysqlcheck [OPTIONS] database [tables]SAU mysqlcheck [OPTIONS] --databases DB1 [DB2 DB3...]SAU mysqlcheck [OPTIONS] --all-databases

• Opțiuni posibile:• -A, --all-databases• -a, --analyze• --auto-repair• -c, --check• -o, --optimize• -r, --repair• -h, --host=name• -p, --password[=name]• -u, --user=name

Page 8: MySQL din linie de comanda

Aplicații MySQL: myisamchk• Mod de utilizare:

myisamchk [OPTIONS] tables[.MYI]

• Opțiuni posibile:• -c, --check• -e, --extend-check• -f, --force• -B, --backup• -r, --recover• -a, --analyze• -d, --description

Page 9: MySQL din linie de comanda

Aplicații MySQL: mysqldump• Mod de utilizare:

mysqldump [OPTIONS] database [tables]OR mysqldump [OPTIONS] --databases [OPTIONS] DB1 [DB2 DB3...]OR mysqldump [OPTIONS] --all-databases [OPTIONS]

• Opțiuni posibile:• -h, --host=name• -p, --password[=name]• -u, --user=name• --add-drop-database• --add-drop-table• -c, --complete-insert

Page 10: MySQL din linie de comanda

Aplicații MySQL: mysqlimport• Mod de utilizare:

mysqlimport [OPTIONS] database textfile...

• Opțiuni posibile:• -h, --host=name• -p, --password[=name]• -u, --user=name• -d, --delete• -r, --replace

Page 11: MySQL din linie de comanda

Scenarii utile• Crearea copiei de rezervă:

• mysqldump -u <user> -p <database> > dump.sql

• Crearea structurei BD:• mysqldump --no-data -u <user> -p <database> > dump.sql

• Crearea BD:• mysqladmin -u <user> -p create <database_name>

• Restabilirea copiei de rezervă:• mysql -u <user> -p <database> < dump.sql

• Sau din regim interactiv mysql:• mysql> use database;

mysql> source database.sql

Page 12: MySQL din linie de comanda

Scenarii utile• Lista utilizatorilor MySQL:

• mysql> SELECT User,Host FROM mysql.user;

• Privilegii utilizatorului root:• mysql> SHOW GRANTS FOR root@localhost;

• Setarea parolei la utilizator root:• mysqladmin -uroot password <password>

• Afișarea tuturor bazelor de date:• mysql> SHOW DATABASES;

• Verificarea BD la greșeli• mysqlcheck -p dbname

• Restabilirea și optimizarea tuturor BD:• mysqlcheck -Aor -p

Page 13: MySQL din linie de comanda

Restabilirea parolei administratorului:#service mysqld stop#mysqld_safe --skip-grant-tables &#mysql

#mysql> UPDATE mysql.user SET Password=PASSWORD('secret') WHERE User='root';#mysql> FLUSH PRIVILEGES;#mysql> \q

#service mysqld restart