Księgowość internetowa wFirma 80% taniej dla czytelników WebInsider.pl

Wczoraj znajomy poprosił mnie o pomoc – chodziło o wykonanie operacji na bazie MySQL z poziomy skryptu (bash) w Linuxie.

Pomocy oczywiście udzieliłem – akurat wiedziałem jak, i jak to często bywa – przy tej okazji pojawił się pomysł na krótki wpis. A, że temat świeży, to zamiast trafić na obszerną (stety/niestety ;-)) listę „zagadnień/tematów do opisania” leci bezpośrednio do Was, czyli na nasze łamy…

Polecenia MySQL w skryptach Linux/BASH

Metod na wykonanie kodu/zapytania SQL z poziomu skryptu jest pewnie kilka, ja skoncentruje się na moim zdaniem najprostszej, a przynajmniej takiej, która u mnie zawsze działa.

Na potrzeby tego poradnika wykorzystam polecenie/zapytanie które kiedyś demonstrowałem przy okazji poradnika dotyczącego hurtowego kasowania komentarzy (w tym SPAMu) z WordPressa:

DELETE FROM  NAZWA_BAZY_DANYCH.wp_comments WHERE comment_approved = "spam";

Nasze polecenie musimy teraz ubrać w kod, który sprawi, że będzie możliwe wykonanie tego polecenia w skrypcie:

#!/bin/bash

mysql -u UŻYTKOWNIK -pHASŁO <<EOF
   [...]
EOF

Co daje nam taki kod:

#!/bin/bash

mysql -u UŻYTKOWNIK -pHASŁO <<EOF
    DELETE FROM  NAZWA_BAZY_DANYCH.wp_comments WHERE comment_approved = "spam";
EOF

Mam nadzieję, że oczywiste jest, że:

  • Zamiast „UŻYTKOWNIK” podajemy nazwę użytkownika MySQL z odpowiednimi uprawnieniami
  • Zamiast „HASŁO” podajemy hasło dla wybranego użytkownika MySQL
  • Zamiast „NAZWA_BAZY_DANYCH” podajemy nazwę bazy danych, na której chcemy wykonać operacje

Powyższy skrypt po uruchomieniu (i wcześniejszym podaniu nazwy użytkownika, hasła i nazwy bazy danych) spowoduje skasowanie wszystkich komentarzy oznaczonych jako SPAM w naszej stronie opartej o WordPressa.

Gdy nie wiesz jaki skonstruować polecenie – phpMyAdmin Ci pomoże

A teraz coś, o czym nawet bardziej doświadczeni wyjadacze zapominają – za pomocą phpMyAdmin możemy sobie wygenerować zapytanie/polecenie MySQL do późniejszego wykorzystania, co przydaje się zwłaszcza w przypadku bardziej skomplikowanych operacji, i często pozwala zaoszczędzić sporo czasu.

Po wykonaniu dowolnej operacji na bazie z poziomu phpMyAdmin oprócz informacji o wyniku tej operacji, otrzymamy też podgląd wykonanej operacji w formie kodu/zapytania MySQL:

phpmyadmin_sql_update_post-title

UPDATE `NAZWA_BAZY_DANYCH`.`wp_posts` SET `post_title` = 'Art. 213 KK TEST' WHERE `wp_posts`.`ID` =8;

Na powyższym przykładzie była to zmiana nazwy posta o ID=8 na „Art. 213 KK TEST” w bazie danych „NAZWA_BAZY_DANYCH” i tabeli „wp_posts”.

Zmiana kodu MySQL na Linux/BASH

Przed wstawieniem powyższego kodu do naszego skryptu musimy go trochę „zmodyfikować”, co tak naprawdę (w większości przypadków, przynajmniej tych mniej skomplikowanych) sprowadza się do usunięcia „grawisów” (akcent, backticks backquotes) z kodu:

UPDATE NAZWA_BAZY_DANYCH.wp_posts SET post_title = 'Art. 213 KK' WHERE wp_posts.ID=8;

W rezultacie czego otrzymujemy taki skrypt:

#!/bin/bash

mysql -u UŻYTKOWNIK -pHASŁO <<EOF
    UPDATE NAZWA_BAZY_DANYCH.wp_posts SET post_title = 'Art. 213 KK' WHERE wp_posts.ID=8;
EOFF

I to właściwie tyle, pamiętajcie tylko, by przed eksperymentami zrobić kopie zapasową bazy danych – nawet, gdy wydaje się Wam, że wiecie co robicie… :-)

(!) Zgłoś błąd na stronie
Potrzebujesz profesjonalnej pomocy? Skontaktuj się z nami!
Spodobał Ci się artykuł? Zapisz się do naszego Newslettera - ZERO SPAMu, same konkrety, oraz dostęp do dodatkowych materiałów przeznaczonych dla subskrybentów!
Na podany adres e-mail otrzymasz od nas wiadomość e-mail, w której znajdziesz link do potwierdzenia subskrypcji naszego Newslettera. Dzięki temu mamy pewność, że nikt nie dodał Twojego adresu przez przypadek. Jeśli wiadomość nie przyjdzie w ciągu najbliższej godziny (zazwyczaj jest to maksymalnie kilka minut) sprawdź folder SPAM.
Monika ćwiczy przed kongresem ko..., ale jej też należy się zniżka 80% na skięgowość wFirma dla oglądających WebInsider.pl
WebInsider poleca księgowość wFirma
WebInsider korzysta z VPSa w HitMe.pl
WebInsider poleca VPSy DigitalOcean
WebInsider poleca serwis Vindicat
Napisz komentarz
wipl_napisz-komentarz_01Jeśli informacje zawarte na tej stronie okazały się pomocne, możesz nam podziękować zostawiając poniżej swój komentarz.

W tej formie możesz również zadać dodatkowe pytania dotyczące wpisu, na które – w miarę możliwości – spróbujemy Ci odpowiedzieć.
Linki partnerskie
Niektóre z linków na tej stronie to tzw. „linki partnerskie”, co oznacza, że jeśli klikniesz na link i dokonasz wymaganej akcji (np. zakup/rejestracja) możemy otrzymać za to prowizję. Pamiętaj, że polecamy tylko te produkty i usługi, z których sami korzystamy, i uważamy, że są tego na prawdę warte… :-)
Znaki towarowe i nazwy marek
W niektórych wpisach (oraz innych miejscach na stronie) mogą być przedstawione/użyte znaki towarowe i/lub nazwy marek, które stanowią własność intelektualną tych podmiotów, a zostały użyte wyłącznie w celach informacyjnych.
Spodobał Ci się artykuł? Zapisz się do naszego Newslettera!