$ mysql -u mysql -p mysql Enter password: Reading table information for completion of table and column names You can turn off this feature to get a quicker startup with -A Welcome to the MySQL monitor. Commands end with ; or \g. Your MySQL connection id is 28 Server version: 5.5.11-log PLD/Linux Distribution MySQL RPM Copyright (c) 2000, 2010, Oracle and/or its affiliates. All rights reserved. Oracle is a registered trademark of Oracle Corporation and/or its affiliates. Other names may be trademarks of their respective owners. Type 'help;' or '\h' for help. Type '\c' to clear the current input statement. mysql>
W PLD administrator MySQL’a nazywa się mysql, w innych dystrybucjach może on się nazywać inaczej np: w Debianie będzie to root
CREATE USER 'username'@'localhost' IDENTIFIED BY 'tajne_password';
Zmiana hasła dla użytkownika:
UPDATE mysql.user SET Password=PASSWORD('nowe_tajne_password') WHERE User='username';
DROP USER 'username'@'localhost';
CREATE DATABASE dbname;
GRANT ALL PRIVILEGES ON dbname.* TO username@'localhost';
Tu mała uwaga: w MySQL’u użytkownik identyfikowany jest za pomocą nazwa@host, gdzie nazwa@’%’ nie jest równa nazwa@localhost, więc gdy nasz użytkownik będzie logował się z zewnątrz (z poza localhost) to musimy nadać jemu do tego uprawnienia:
GRANT ALL PRIVILEGES ON dbname.* TO username@'%';
Gdy pierwszy raz nadawaliśmy użytkownikowi nazwa@’%’ uprawnienia to MySQL tak naprawdę stworzył tego użytkownika i trzeba jemu nadać też hasło:
UPDATE mysql.user SET Password=PASSWORD('tajne_password') WHERE User='username';
To samo tyczy się usuwania, jeśli istnieje użytkownik name@localhost i name@’%’ podczas usuwania name@localhost użytkownik name@’%’ zostanie na bazie danych! Jeśli nie chcemy tego to też musimy go usunąć:
DROP USER 'username'@'%';
DROP DATABASE dbname;
FLUSH PRIVILEGES;
mysql> select host, user from mysql.user; +-----------+-----------------+ | host | user | +-----------+-----------------+ | % | ocs | | 127.0.0.1 | mysql | | 127.0.0.1 | mysql_sysadmin | | localhost | | | localhost | mysql | | localhost | mysql_sysadmin | | localhost | ocs | | localhost | pong | +-----------+-----------------+ 8 rows in set (0.01 sec) mysql>
mysql> show databases; +--------------------+ | Database | +--------------------+ | information_schema | | mysql | | ocsweb | | pong | +--------------------+ 4 rows in set (0.00 sec) mysql>
GRANT SELECT, LOCK TABLES ON baza.* TO backup_user@localhost IDENTIFIED BY 'xyz'; FLUSH PRIVILEGES;
$ data=`date +%Y_%m_%d` mysqldump -u dbuser --password=tajnepass dbname > /backup/dbname_$data.sql
Jeśli baza danych posiada funkcję to nalezy też dumpować – służy do tego opcja -R:
mysqldump -u dbuser --password=tajnepass -R dbname > /backup/dbname_$data.sql
mysqldump -u dbuser --password=tajnepass dbname | bzip2 > /backup/dbname_$data.bz2
mysqldump -u dbuser --password=tajnepass --no-data dbname > /backup/dbname_$data.sql
mysqldump -u dbuser --password=tajnepass --skip-triggers --compact --no-create-info dbname > /backup/dbname_$data.sql
mysqldump -u mysql --password=tajnepass --all-databases > /backup/dump_$data.sql
mysql -u dbuser --password=tajnepass dbname < /backup/dump.sql
mysql> show tables; +-------------------------+ | Tables_in_ocsweb | +-------------------------+ | accesslog | | accountinfo | | bios | | blacklist_macaddresses | | blacklist_serials | . . . | slots | | softwares | | softwares_name_cache | | sounds | | storages | | subnet | | tags | | videos | | virtualmachines | +-------------------------+ 54 rows in set (0.00 sec) mysql>
mysql> desc files; +---------+--------------+------+-----+---------+-------+ | Field | Type | Null | Key | Default | Extra | +---------+--------------+------+-----+---------+-------+ | NAME | varchar(150) | NO | PRI | NULL | | | VERSION | varchar(100) | NO | PRI | NULL | | | OS | varchar(80) | NO | PRI | NULL | | | CONTENT | longblob | NO | | NULL | | +---------+--------------+------+-----+---------+-------+ 4 rows in set (0.02 sec) mysql>