ΠΑΝΕΠΙΣΤΗΜΙΟ ΠΕΙΡΑΙΩΣ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ Βάσεις Δεδομένων (4 ο εξάμηνο) Εργαστήριο MySQL #1 Διδάσκων: Γιάννης Θεοδωρίδης Συντάκτης Κειμένου: Βαγγέλης Κατσικάρος Φεβρουάριος 2008
Περιεχόμενα command prompt log in και log out στον server με τον commandline client mysql εξοικείωση με το περιβάλλον του mysql δημιουργία βάσης χρήση του client mysqldump
shell command prompt command prompt ονομάζεται ένα interface στο οποίο τις εντολές τις εισάγουμε μόνο με το πληκτρολόγιο. Το shell command prompt είναι το interface με το λειτουργικό σύστημα. Από αυτό το interface έχουμε πρόσβαση σε λειτουργίες του OS. Πχ στο σύστημα αρχείων, στην εκτέλεση προγραμμάτων κτλ. http://commons.wikimedia.org/wiki/image:bash_screenshot.png http://en.wikipedia.org/wiki/unix_shell http://ftp.gnu.org/old-gnu/manuals/bash-2.05a/html_node/bashref_3.html
shell command prompt Αυτό που θέλουμε είναι να τρέξουμε τον mysql client και να συνδεθούμε στον mysql server, μέσω του shell. Πώς θα ανοίξω ένα shell / Πώς θα ανοίξω ένα terminal ;
Screenshot από ένα Χ terminal shell command prompt
shell command prompt - autocomplete shell> mys Πατώ ΤΑΒ 1 φορά shell> mysql shell> mysql Πατώ ΤΑΒ 1 φορά (beep) Πατώ ΤΑΒ άλλη 1 φορά mysql/ mysql_client_test_embedded mysql_fix_extensions mysql_setpermission mysql_tzinfo_to_sql mysqlaccess mysql_convert_table_format mysql_fix_privilege_tables mysqlshow mysql_upgrade mysqladmin mysqld_multi mysqlhotcopy mysql_tableinfo mysql_upgrade_shell mysql-admin mysqld_safe mysqlimport mysqltest mysql_waitpid mysqlbinlog mysqldump mysql_install_db mysqltest_embedded mysql_zap mysqlbug mysqldumpslow mysql-query-browser mysqltestmanager mysqlcheck mysql_explain_log mysqlreport mysqltestmanagerc mysql_client_test mysql_find_rows mysql_secure_installation mysqltestmanager-pwgen shell> mysql
shell> mysql shell> mysqla Πατώ ΤΑΒ 2 φορές mysqlaccess mysqladmin shell> mysqla shell> mysqlad Πατώ ΤΑΒ shell> mysqladmin shell command prompt - autocomplete
shell> echo hello shell> ls shell> ls -al shell> whoami shell command prompt - history Πατώ UPARROW ή DOWNARROW για να δω τις προηγουμενες εντολές.
shell command prompt --help -? Για να δώ με ποιες επιλογές μπορώ να τρέξω τον client mysql shell> mysql -help Usage: mysql [OPTIONS] [database] -?, --help Display this help and exit. κτλ -I, --help Synonym for -? --auto-rehash Enable automatic rehashing. One doesn't need to use 'rehash' to get table and field completion, but startup and reconnecting may take a longer time. Disable with --disable-auto-rehash. -A, --no-auto-rehash No automatic rehashing. One has to use 'rehash' to get table and field completion. This gives a quicker start of mysql and disables rehashing on reconnect. WARNING: options deprecated; use --disable-auto-rehash instead. -B, --batch Don't use history file. Disable interactive behavior. Ερώτηση: Πώς μπορώ να δω ποιά είναι η έκδοση του client mysql (ποια παράμετρο πρέπει να δώσω) ; http://dev.mysql.com/doc/refman/5.0/en/mysql-command-options.html
shell command prompt Για να δω ποια είναι η έκδοση του client mysql, ποια παράμετρο πρέπει να δώσω; shell> mysql --version mysql Ver 14.12 Distrib 5.0.51a, for debian-linux-gnu (i486) using readline 5.2 shell> mysql -V mysql Ver 14.12 Distrib 5.0.51a, for debian-linux-gnu (i486) using readline 5.2
log in - log out Για να κάνουμε log in στον server χρειαζόμαστε: Στοιχεία του server για να μπορέσει να τον βρεί ο client hostname ή IP port Στοιχεία χρήστη για την αυθεντικοποίηση στον server user name password Τιμές: localhost 3306 (η προεπιλεγμένη θύρα) root (υπερχρήστης, έχει όλα τα δικαιώματα) κενό (για τα pc στα εργαστήρια)
Για να κάνουμε log in στον server με τον client mysql shell> mysql --host=localhost --user=root -p Για κάνουμε log out και να κλείσει ο client mysql> exit log in - log out Η σειρά των ορισμάτων στο shell> δεν παίζει ρόλο Αν ξεχάσουμε ένα όρισμα: βοήθεια http://dev.mysql.com/doc/refman/5.0/en/connecting-disconnecting.html
log in - log out Επίσης: shell> mysql --user=root -p shell> mysql -u root -p shell> mysql -uroot -p http://dev.mysql.com/doc/refman/5.0/en/connecting-disconnecting.html
execute queries Ας εισάγουμε ένα query. Ας υποθέσουμε πως θέλουμε να δούμε τις διαθέσιμες βάσεις δεδομένων που υπάρχουν στο σύστημα. Θα χρησιμοποιήσουμε την εντολή SHOW DATABASES Κάθε εντολή που εισάγεται πρέπει να τελειώνει με semicolon (ελληνικό ερωτηματικό) ; SHOW DATABASES;
execute queries mysql> show databases; +--------------------+ Database +--------------------+ information_schema cms joomla mysql phpbb2 test +--------------------+ 6 rows in set (0.00 sec) mysql> http://dev.mysql.com/doc/refman/5.0/en/entering-queries.html
execute queries capital letters mysql> SHOW DATABASES; mysql> show DaTaBaSeS; multi line mysql> show -> -> databases; http://dev.mysql.com/doc/refman/5.0/en/entering-queries.html
execute queries Άλλα queries mysql> SELECT VERSION(), CURRENT_DATE; mysql> SELECT (4+1), SIN(PI()/4); ακύρωση εντολής mysql> show -> -> databases -> \c http://dev.mysql.com/doc/refman/5.0/en/entering-queries.html
Δημιουργία Βάσης Για την δημιουργία της Βάσης θα χρησιμοποιήσουμε την εντολή CREATE DATABASE Τι λέει το manual για αυτήν την εντολή; Ας πάμε στο manual!...
Δημιουργία Βάσης CREATE {DATABASE SCHEMA} [IF NOT EXISTS] db_name [create_specification...] create_specification: [DEFAULT] CHARACTER SET charset_name [DEFAULT] COLLATE collation_name Τι σημαίνουν: CAPITAL SQL keywords small substituted (for exmple database & table names) [ ] optional words or clauses seperation of alternatives { } necessaraly pick one of the words of set... repetetion or omission small: further analysis
Δημιουργία Βάσης Για την διαγραφή της Βάσης θα χρησιμοποιήσουμε την εντολή DROP DATABASE Τι λέει το manual για αυτήν την εντολή; Ας πάμε στο manual!...
Δημιουργία Βάσης Δημιουργία και διαγραφή Βάσης (Σχήμα) mysql> SHOW DATABASES; mysql> CREATE DATABASE test5; mysql> SHOW DATABASES; mysql> DROP DATABASE test5; mysql> SHOW DATABASES; http://dev.mysql.com/doc/refman/5.0/en/show-databases.html http://dev.mysql.com/doc/refman/5.0/en/create-database.html http://dev.mysql.com/doc/refman/5.0/en/drop-database.html
Για την δημιουργία αντιγράφων ασφαλείας (backup) θα χρησιμοποιήσουμε τον client mysqldump Τι λέει το manual για αυτό το πρόγραμμα; Ας πάμε στο manual! Αντίγραφα ασφαλείας...
Χρήση του client mysqldump. Παράδειγμα Αντίγραφα ασφαλείας mysql> CREATE DATABASE test5; shell> mysqldump -uroot -p test5 Enter password: -- MySQL dump 10.11 -- -- Host: localhost Database: test10 -- ------------------------------------------------------ -- Server version 5.0.51a-3 /*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;... shell> mysqldump -uroot -p test5 > lala Το > ανακατευθύνει το output της οθόνης (standard output) σε ένα αρχείο. Έτσι μπορούμε να σώσουμε σε ένα αρχείο το backup μας. http://dev.mysql.com/doc/refman/5.0/en/mysqldump.html http://www.gnu.org/software/bash/manual/bashref.html#redirections