«

»

Lip 04

MySQL – instalacja i konfiguracja – HOWTO na szybko – Debian 6

Instalacja serwera MySQL.

sudo apt-get install mysql-server mysql-client libmysqlclient-dev mysql-common php5-mysql



W czasie instalacji serwera MySQL powinniśmy być zapytani o podanie hasła do konta administratora (root’a):

New password for the MySQL "root" user: <= "hasło roota"
Repeat password for the MySQL "root" user: <= "hasło roota"

 

Jeśli instalator serwera MySQL pominie konfigurację tego etapu lub z jakiegoś powodu nie pojawi się na ekranie w czasie instalacji, powinniśmy zaraz po zakończaniu instalacji stworzyć ręcznie hasło administratora.

sudo mysqladmin -u root -h localhost -p(hasło)

lub

sudo mysqladmin -u root -h (nazwa_hosta) -p(hasło)

lub

sudo mysql -u root -p

Konfiguracja serwera MySQL.

Jeżeli w naszej sieci posiadamy więcej niż jeden serwer, a serwer na którym instalujemy aplikację MySQL ma być tylko serwerem baz danych, należy edytować plik konfiguracyjny /etc/mysql/my.cnf odszukać i wstawić hash przy bind-address.
W ten sposób serwer będzie nasłuchiwał na wszystkich adresach IP.

sudo nano /etc/mysql/my.cnf

#bind-address = 127.0.0.1

 

Restart serwera MySQL.

sudo /etc/init.d/mysql restart

 

Test nasłuchiwania serwera MySQL.

sudo netstat -tap | grep mysql

tcp      0     0    *:mysql         *:*               LISTEN      1216/mysqld

 

MySQL z pod konsoli (na szybko).

Tworzenie nowej bazy danych.

sudo mysqladmin create nazwa_bazy_danych -u root -p
Enter password: hasło_root

Archiwizacja i przywracanie baz danych (z lini komend).

Przykład archiwizacji bazy danych „BAZA_DANYCH” z uzyciem użytkownika root bez hasła:

sudo mysqldump -u root -p BAZA_DANYCH > BAZA_DANYCH.sql

 

Przykład archiwizacji określonych tabel bazy danych „JAKAS_BAZA_DANYCH”:
tabele np:

  • php_cms
  • aps_cms
sudo mysqldump -u root -p BAZA_DANYCH php_cms aps_cms > tabele_BAZA_DANYCH.sql


Każda nazwa tabeli musi być odzielona spacją.

 

Przykład archiwizacji więcej niż jedna baza danych na raz.
W tym przypadku można użyć opcji –database.
baza danych np:

  • Tutorials
  • Articles
  • Comments
sudo mysqldump -u root -p --databases Tutorials Articles Comments > KILKA_BAZA_DANYCH.sql


Każda nazwa tabeli musi być odzielona spacją.

 

Przykład archiwizacji wszystkich baz danych w tym samym czasie.

Należy użyć opcję –all-database.

sudo mysqldump -u root -p --all-databases > WSZYSTKIE_BAZY_DANYCH.sql

 

Polecenie mysqldump ma także kilka innych przydatnych opcji:

  • –add-drop-table: funkcja ta informuje MySQL, aby dodać do zrzutu instrukcjię DROP TABLE przed każdym CREATE TABLE.
  • –no-data: Zrzucenie tylko struktury bazy danych, a nie zawartości.
  • –add-locks: Dodaje oświadczenia LOCK TABLES i UNLOCK TABLES.

 

Przykład archiwizacji bazy danych – plik wyjściowy skompresowany.

Archiwizacja i kompresja bazy danych pliku do „gzip”.

sudo mysqldump -u root -p BAZA_DANYCH | gzip -9 > BAZA_DANYCH.sql.gz

 

Wyodrębnianie spakowanego pliku gz:

sudo gunzip BAZA_DANYCH.sql.gz

 

Przywracanie zarchiwizoanych baz danych MySQL.

Przywracanie bazy danych JAKAS_BAZA_DANYCH.sql.
Aby móc przywrócić bazę danych musimy upewnić się że:

  • Nazwa bazy danych „JAKAS_BAZA_DANYCH” jest założona,
  • Załadować plik za pomocą polecenia mysql:

sudo mysql -u root -p BAZA_DANYCH < BAZA_DANYCH.sql.gz

Przywracanie zarchiwizoanych tabeli bazy danych np: tabele_JAKAS_BAZA_DANYCH do bazy danych JAKAS_BAZA_DANYCH.

sudo mysql -u root -p BAZA_DANYCH < tabele_BAZA_DANYCH.sql

 

Przywracanie zarchiwizoanej skompresowanej bazy danych.

sudo gunzip < BAZA_DANYCH.sql.gz | mysql -u root -p BAZA_DANYCH

 

Przywracanie bazy danych MySQL i nadpisanie istniejącej.

sudo mysqlimport -u root -p BAZA_DANYCH BAZA_DANYCH.sql

 

Tworzenie nowego użytkownika.

Używanie konta administratora root do zarządzania bazą danych jest dość niebezpieczne.
Zalecane jest tworzenie kont użytkowników z uprawnieniami tylko do jednej konkretnej bazy danych.

sudo mysql -u root -p
Enter password: hasło_root

 

Serwer MySQL posiada własną bazę danych o nazwie mysql, w której zawartę są informacje na temat:
baz danych, uprawnień, użytkowników…

Tworzenie nowego konta.

User = nazwa_uzytkownia,
Host = localhost,
Password=PASSWORD = hasło_użytkownika,

mysql> USE mysql;
Database changedmysql> INSERT INTO user set Host='localhost', User='nazwa_uzytkownia', Password=PASSWORD('hasło_użytkownika');
Query OK, 1 row affected, 3 warnings (0.04 sec)

 

Przeładowanie uprawnień.

mysql> FLUSH PRIVILEGES;
Query OK, 0 rows affected (0.02 sec)

 

Nadanie uprawnień użytkownikowi do bazy danych.

mysql> GRANT Select,Insert,Update,Delete,Create,Drop ON nazwa_bazy_danych.* TO nazwa_użytkownika@localhost;
Query OK, 0 rows affected (0.03 sec)

Ponowne przeładowanie uprawnień.

mysql> FLUSH PRIVILEGES;
Query OK, 0 rows affected (0.00 sec)

 

Logowanie się bezpośrednio do konkretnej bazy danych:

mysql -u root -p NAZWA_BAZY_DANYCH

 

Usuwanie bazy danych:

mysql> drop database NAZWA_BAZY_DANYCH;

 

Naprawa bazy danych:
Przykład bazy danych – wordpress.
Tabela bazy danych – wordpress.wp_posts

sudo mysql -u root -p wordpress

mysql> show databases;
mysql> use wordpress;
mysql> show databases;

 

Sprawdzanie bazy danych.

mysql> check table wordpress.wp_posts;

 

Naprawa Bazy danych.

mysql> repair table wordpress.wp_posts;

Ponowne sprawdzanie bazy danych.

mysql> check table wordpress.wp_posts;

lub

Przykład bazy danych – wordpress.
Sprawdzanie bazy danych:

mysqlcheck -u nazwa_uzytkownia -p wordpress
wordpress.wp_ak_twitter                     OK
wordpress.wp_commentmeta                    OK
wordpress.wp_comments                       OK
wordpress.wp_links                          OK
wordpress.wp_options                        OK
wordpress.wp_postmeta                       OK
wordpress.wp_posts
warning : Table is marked as crashed error : Size of datafile is: 745472 Should be: 745692 error : Corrupt
wordpress.wp_term_relationships             OK
wordpress.wp_term_taxonomy                  OK
wordpress.wp_terms                          OK
wordpress.wp_usermeta                       OK
wordpress.wp_users                          OK

 

Usuwanie usterek, naprawa bazy danych:

mysqlcheck -u nazwa_uzytkownia -p --auto-repair

wordpress.wp_ak_twitter                      OK
wordpress.wp_commentmeta                     OK
wordpress.wp_comments                        OK
wordpress.wp_links                           OK
wordpress.wp_options                         OK
wordpress.wp_postmeta                        OK
wordpress.wp_posts  warning : Table is marked as crashed  error : Size of datafile is: 745472 Should be: 745692  error : Corrupt
wordpress.wp_term_relationships              OK
wordpress.wp_term_taxonomy                   OK
wordpress.wp_terms                           OK
wordpress.wp_usermeta                        OK
wordpress.wp_users                           OK

Repairing tables wordpress.wp_posts info : Found block that points outside data file at 742932 status : OK 

 

Wyjście z konsoli MySQL.

mysql> quit
Bye

 

 

6 pings

  1. Instalacja i Konfiguracja Roundcube Ubuntu/Debian » pl.terminal28.com

    […] Serwer baz danych – MySQL – (tutorial), […]

  2. WebUi – Adiscon LogAnalyzer – WebUi do analizy logów – Linux. » pl.terminal28.com

    […] Serwer baz dabych – MySQL – ustawienia domyślne, […]

  3. Udostępnianie multimediów w sieci na urządzenia RTV – MediaTomb – Debian. » pl.terminal28.com

    […] ver. 7.0.1, MediaTomb – ver. 0.12.1, Tuner satelitarny: Humax HDR-1000s freesat+ with . MySQL – ver. 5 5.5.31, Interfejs sieciowy – wewnętrzny: eth1 […]

Dodaj komentarz

Twój adres email nie zostanie opublikowany. Pola, których wypełnienie jest wymagane, są oznaczone symbolem *