|
|
Wszystkie artykuły
|
Gry na Linuksie - Cedega i Mandriva Poland Amazis.net |
|
|
|
17.03.2006.
|
Firma Amazis.net, posiadająca status Mandriva Poland, i firma TransGaming, producent znanego programu Cedega, podpisały umowę o współpracy, na mocy której Amazis.net uzyskał status wyłącznego przedstawiciela i dystrybutora TransGaming w Polsce.
"To dobra wiadomość dla polskich użytkowników Linuksa. Cedega umożliwia uruchamianie pod Linuksem setek gier napisanych z myślą o systemie Windows. Od dziś polscy linuksowi gracze będą mogli łatwiej i szybciej instalować i cieszyć się grami również pod swoim ulubionym systemem" powiedział Marcin Zalicki, Prezes Amazis.net.PowerPack 2006 i Cedega
W dniu dzisiejszym zostaje wprowadzona do sprzedaży edycja PowerPack 2006 GOLD wyposażona w pełną wersję programu Cedega. Nowy PowerPack obala mit mówiący o braku możliwości uruchamiania wielu popularnych gier na platformie Linux. Tym samym Mandriva Linux staje się kompleksowym rozwiązaniem dla użytkownika domowego, dzięki któremu będzie miał możliwość korzystania z multimediów, internetu i gier.
"Ilość gier obsługiwanych przez Cedegę jest imponująca. Listę gier można znaleźć na stronie Transgaming.org. Niejeden użytkownik będzie szczęśliwy z faktu, że będzie mógł pograć w swoją ulubioną grę pod Linuksem. Od jakiegoś czasu prowadzimy serwis poświęcony tematyce gier - gry.mandriva.pl. Będziemy tam publikować wyniki testów gier oraz instrukcje ich instalacji.Gry obsługiwane przez Cedegę będzie można również zakupić w naszym sklepie internetowym." powiedział Piotr Zdanowicz, opiekun serwisu gry.mandriva.pl.
O oprogramowaniu Cedega
Cedega jest flagowym produktem firmy TransGaming przeznaczonym dla systemu Linux, który pozwala uruchamiać setki gier zaprojektowanych pod system Windows w sposób łatwy i intuicyjny, prosto po wyjęciu ich z pudełka. Dzięki programowi Cedega zainstalowanemu w systemie Linux, użytkownicy będą mogli włożyć swoją ulubioną płytę z grą, zainstalować ją i cieszyć się graniem tak samo jak w systemie Windows. Cedega umożliwia uruchomienie setek najnowszych tytułów, a między innymi Civilization 4, BattleField 2, World of WarCraft, FIFA 06, Half Life 2, City of Villains, WarCraft III, czy Star Wars Galaxies.
O firmie TransGaming
TransGaming jest liderem w tworzeniu przenośnego oprogramowania, które pozwala producentom i wydawcom tworzyć gry dla jednego systemu operacyjnego i przenosić ją na inne platformy, włącznie z systemem Linux i konsolami - szybciej, taniej i lepiej.
Przenośne technologie firmy TransGaming zostały zastosowane w niektórych najnowszych produktach i rozwiązaniach włączając to TRON 2.0R firmy Buena Vista Interactive, James Bond 007: Nightfire oraz The Sims firmy Electronic Arts, Law & Order firmy Legacy Interactive, Indiana Jones i The Emperor's Tomb firmy Lucas Arts.
Firma TransGaming usytuowana w Toronto w Kanadzie posiada także centrum badawczo rozwojowe w Ottawie. Więcej informacji na temat firmy można znaleźć na stronie www.transgaming.com.
O firmie Amazis.net
Amazis.net sp. z o.o. jest przedstawicielem firmy Mandriva w Polsce. Od roku 2003 prowadzi sprzedaż i rozwija produkty znajdujące się w ofercie Mandrivy. W ostatnim roku główny nacisk położono na zwiększenie dostępności Linuksa dla polskich użytkowników. Przetłumaczona została dokumentacja systemu Mandriva Linux oraz dokumentacja programów środowiska KDE. Tłumaczenia KDE zostały przekazane społeczności.
Podpisanie umowy z TransGaming jest kontynuacją procesu zwiększania dostępności Linuksa dla szerokiej grupy użytkowników. Wiadomość nadesłał Tomasz Bednarski Polish translations coordinator Mandriva Poland Amazis.net sp. z o.o.
Liczba komentarzy (0) - Dodaj swój komentarz do tego artykułu... |
|
16.03.2006.
|
Zanim zaczniesz czytać o dhcp powinieneś zadbać, by Twój Linux posiadał skonfigurowane i aktywne interfejsy. W Linuksie Mandrake temat jest załatwiony już podczas instalacji, gdy karta sieciowa (eth0) oraz modem (ppp0) zostaną automatycznie wykryte i wstępnie skonfigurowane. Po instalacji poprawki wykonasz za pomocą zlecenia drakgw, drakconnet ewentualnie drakfirewall. Więcej na temat konfiguracji interfejsów sieciowych znajdziesz tutaj. Nie będę powyższego wyjaśniał, gdyż tutaj zajmuję się dhcp. Sygnalizuję jedynie, że kluczowe jest zlecenie ifconfig oraz plik /etc/sysconfig/network-scripts/ifcfg-eth0. Pamiętaj także o firewallu, który odpowiada za masq. Serwer DHCP, z angielskiego Dynamic Host Configuration Protocol (czyli protokół do dynamicznego konfigurowania klientów), jest narzędziem które pozwala zapanować nad klientami w domowej sieci. Serwer dhcp narzuca klientom adres IP i umożliwia w ten sposób pracę w sieci na protokole TCP/IP. Adres IP może być nadawany "na sztywno" lub może być zmieniany po każdym restarcie klienta. Mamy wówczas do czynienia z adresem stałym (przydzielonym przez dhcpd) lub dynamicznym. Jak za pomocą tego samego demona dhcpd narzucić klientom stały lub dynamiczny adres IP, pokażę na przykładzie linuksowego pliku konfiguracyjnego /etc/dhcpd.conf . Pewną dodatkową opcją jest powiązanie adresów IP z adresami kart sieciowych i wymuszenie w ten sposób porządku w sieci. Jest to jednak zadanie troszeczkę trudniejsze i nie polecam tego na początek nauki ;) Większość dystrybucji Linuksa umieszcza instalkę demona dhcpd na płytkach instalacyjnych. Stosuje się różne nazwy i różne ilości paczek do instalowania. Wynika to z indywidualnego podejścia informatyków opiekujących się poszczególnymi dystrybucjami Linuksa. Jedni załączają wyłącznie instalkę oryginalną (ze strony domowej projektu dhcp), inni (np. w Mandrake) zaprojektowali narzędzie drakgw, które instaluje dhcp łącznie z dodatkowymi usługami: udostępnianiem internetu dla domowej sieci (czyli konfiguracją iptables za pomocą skryptów shorewall), instalacją serwera DNS. Więcej na ten temat znajdziesz na sąsiednich stronach: Mandrake 8.1, 9.0, Mandrake 9.1, Mandrake 9.2, Mandrake 10.0. Serwerowy komplet paczek instalacyjnych w Mandraku to: dhcp-server, dhcp-common, iptables, bind, bind-utils, caching-nameserver, choć oczywiście można zainstalować ręcznie tylko pakiety w kolorze brązowym i dhcp też będzie działać (iptables instalowane jest bez pytania o zgodę). Na komputerze-kliencie w lokalnej sieci zainstaluj (pod Mandrakiem) dwa pliki dhcp-common oraz dhcp-client (każdy plik na innej płytce CD). Wszystkie instalki demona dhcpd mają swój pierwowzór w pliku, który można pobrać ze strony http://www.isc.org/products/DHCP/ (w czerwcu 2003 był to plik dhcp-3.0pl2.tar.gz). Jeżeli jesteś nowicjuszem linuksowym, to pobierz plik w formacie *rpm. Instaluje się go bardzo prosto (pod rootem) zleceniem: rpm -i nazwapaczki.rpm .
Jeżeli po instalacji (na serwerze) pakietu dhcpd nie pojawi się plik /etc/dhcpd.conf , to utwórz go pod rootem za pomocą zlecenia touch /etc/dhcpd.conf i nadaj mu prawa root.root 644 zleceniami: chown root.root /etc/dhcpd.conf oraz chmod 644 /etc/dhcpd.conf .
Jeżeli masz wpięte dwie karty sieciowe do dwóch osobnych domowych podsieci, to wystarczy w tym samym pliku dhcpd.conf powielić pod spodem wpis pierwszej podsieci i pozmieniać takie dane jak: subnet, option-routers, range dynamic-bootp.
Plik /etc/ dhcpd.conf odpowiada za przydzielanie adresów IP w domowej sieci przez demona dhcpd. Na początku proponuję jak najprostszą konstrukcję, czyli sieć domową 192.168.0.0/255.255.255.0 . Więcej o teori tworzenia sieci tutaj. W takiej sieci plik będzie wyglądał następująco. Zwróć uwagę na średniki [ ;], nawiasy klamrowe {} oraz znak hasz [ #]. ddns-update-style none; subnet 192.168.0.0 netmask 255.255.255.0 { # default gateway option routers 192.168.0.1; option subnet-mask 255.255.255.0; option domain-name "pd132.wroclaw.sdi.tpnet.pl"; option domain-name-servers 194.204.159.1; range dynamic-bootp 192.168.0.2 192.168.0.254; default-lease-time 21600; max-lease-time 43200; } Co można odczytać z powyższego przykładu? Sieć domowa o numerze IP 192.168.0.0, pracująca na masce 255.255.255.0. Posiada 256 sztuk nr IP, z tego do użycia na stacje 253 sztuk (256 minus maska sieci, minus boroadcast, minus serwer). Czyli możemy wpiąć maksymalnie 253 komputerów klienckich. Zakres numerów do użycia przez komputery-klienty w domowej sieci jest określony poprzez range dynamic-bootp (w naszym przypadku pokrywa się z maksymalną ilością dla sieci o masce 255.255.255.0). Serwer ma wewnętrzny adres IP 192.168.0.1, a zewnętrzny 217.96.171.101 (w naszym pliku konfiguracyjnym nie ma tego wpisu, gdyż IP zewnętrzne jest reprezentowane przez adres domenowy pd132.wroclaw.sdi.tpnet.pl) . Nie ma powiązania nr IP z MAC. Jeżeli tego nie rozumiesz, to MUSISZ przejść przez wspomniany powyżej, przyspieszony kurs teori sieci. Zauważyłeś na pewno, że z netem łączymy się za pomocą SDI, stąd DNS jest pobierany od TPSA, a domenę mamy narzuconą wg wzorca numer.miasto.sdi.tpnet.pl :)
Oczywiście można narzucić sieć o mniejszej liczbie numerów IP: ddns-update-style none; subnet 192.168.0.0 netmask 255.255.255.248 { # default gateway option routers 192.168.0.1; option subnet-mask 255.255.255.248; option domain-name "pd132.wroclaw.sdi.tpnet.pl"; option domain-name-servers 194.204.159.1; range dynamic-bootp 192.168.0.2 192.168.0.6; default-lease-time 21600; max-lease-time 43200; } Mamy tutaj sieć opartą na 8 sztukach nr IP (z tego na klienckie komputery przeznaczymy 5 szt. nr IP). Jeżeli jesteś leniwy i nie chce Ci się przepisywać zawartości pliku dhcpd.conf (powyższy przykład), to skopiuj go sobie z mojego archiwum. Można teraz powiązać numery IP klientów z numerami kart sieciowych MAC. Pojawiły się (w porównaniu do wersji prostszej-domyślnej) nowe wiersze definiujące numer MAC karty sieciowej przyporządkowanej klientowi. Serwer ma wewnętrzny adres IP 192.168.0.1, a zewnętrzny 217.96.171.101. Domena otrzymana od TPSA wraz z usługą SDI: pd132.wroclaw.sdi.tpnet.pl . Przypominam zasady: planujemy sieć o adresie 192.168.0.0/255.255.255.248, zbudowaną z 8 nr IP (czyli przewidującą obsługę 5 szt. komputerów-klientów). Przy masce 255.255.255.248 broadcast-address wyniesie 192.168.0.7 , natomiast przy masce 255.255.255.0 broadcast-address wyniesie 192.168.0.255. Komentarz (wiersz ze znaczkiem # na początku) możesz go usunąć ze swojego pliku. ddns-update-style none; subnet 192.168.0.0 netmask 255.255.255.248 { #default gateway option routers 192.168.0.1; option subnet-mask 255.255.255.248; option domain-name "pd132.wroclaw.sdi.tpnet.pl"; option domain-name-servers 194.204.159.1; #option nis-domain "domain.org"; option broadcast-address 192.168.0.7;
#Przy masce 255.255.255.248 mamy mozliwosc uzyskania #5 szt. klientow, z tego 2 szt. juz zagospodarowalismy #nadajac im (ponizej) stale nr IP (maska 248 daje #8 szt. nr IP, z tego 2 IP są krańcowe, jeden IP zajmuje #serwer, 5 szt. IP zostaje dla klientow). #Zbedna nadwyzke 3 szt. IP możemy latwo zablokowac #zmieniajac pierwotny wiersz range o takim wygladzie: #range dynamic-bootp 192.168.0.2 192.168.0.6; #na taki: #range dynamic-bootp 192.168.0.2 192.168.0.3; #co zrówna numery nadane statycznie z range. #Jak rozpisac siec, maski, broadcast opisalem tutaj range dynamic-bootp 192.168.0.2 192.168.0.3; default-lease-time 53200; max-lease-time 86500; # we want the nameserver to appear at a fixed address # czyli definiujemy komputer ze stalym IP # powiazanym z nr MAC karty sieciowej host kuba { next-server kuba.pd132.wroclaw.sdi.tpnet.pl; hardware ethernet 02:05:5E:A3:AD:C8; fixed-address 192.168.0.2; #option domain-name-servers 192.168.0.1; #option routers 192.168.0.1; #option broadcast-address 192.168.0.248; } host koza { next-server koza.pd132.wroclaw.sdi.tpnet.pl; hardware ethernet 2A:04:52:A3:AD:C3; fixed-address 192.168.0.3; #option domain-name-servers 192.168.0.1; #option routers 192.168.0.1; #option broadcast-address 192.168.0.248; } # host rezerwa_1 { # next-server rezerwa_1.pd132.wroclaw.sdi.tpnet.pl; # hardware ethernet 00:00:00:00:00:01; # fixed-address 192.168.0.4; # } # host rezerwa_2 { # next-server rezerwa_2.pd132.wroclaw.sdi.tpnet.pl; # hardware ethernet 00:00:00:00:00:02; # fixed-address 192.168.0.5; # } # host rezerwa_3 { # next-server rezerwa_3.pd132.wroclaw.sdi.tpnet.pl; # hardware ethernet 00:00:00:00:00:03; # fixed-address 192.168.0.6; # } } Zapis host_rezerwa jest przydatny, gdyż w przypadku dokupienia komputerów i powiększenia sieci domowej łatwo i szybko nadasz nowemu klientowi adres IP (oczywiście poprawisz także wówczas wpis range dynamic-bootp). Niestety, powyższe związanie nr IP z MAC jest mało skuteczne i należy czekać na nowszą wersję demona dhcpd, który nauczy się RYGORYSTYCZNIE łączyć IP z MAC (czyli w przypadku niezgodności danych będzie wywalał komputer z domowej sieci). Na dzień dzisiejszy problem powiązania IP z MAC załatwia dodatkowy skrypt. Więcej informacji znajdziesz tutaj (opisałem konfigurację na przykładzie Mandraka 8.1 lub 9.0). Ten sam problem w Mandraku 9.1 opisałem tutaj.
Połączenie IP z MAC kart sieciowych klientów.
Rozwiązanie to jest dziełem autora nieistniejącej już strony http://przedszkole.tcz.wroclaw.pl/plawinski/?dhcp z moimi niewielkimi zmianami (związanymi z indywidualnym podejściem do dystrybucji Mandrake). Polega ono na utworzeniu skryptu ip_arp porównujacego dane (IP oraz MAC) z plików /etc/hosts.arp oraz /etc/hosts . Osobnym problemem jest takie skonfigurowanie pliku /etc/dhcpd.conf by nadawało WYŁĄCZNIE statyczne numery IP w ilości odpowiadającej ilości klientów w sieci. Czemu? Gdyż jakiś cwaniaczek może zauważyć, że wywala go z sieci gdy przejmuje nr IP sąsiada, ale... nie wywala go gdy NIC nie wpisze w polu adresu IP swojego kompa i... pobierze IP z puli adresów nadawanych dynamicznie. Dodatkowym zabezpieczeniem jest takie ustawienie firewalla, by udostępnianie internetu było możliwe wyłącznie dla konkretnych numerów IP Przyjmuję, że po zainstalowaniu Linuksa i serwera dhcpd nadawanie adresów dla Twojej domowej sieci działa. Co prawda na razie w wersji najbardziej prymitywnej, ale działa. Więcej informacji o instalowaniu i wstępnym konfigurowaniu znajdziesz tutaj (opisałem konfigurację na przykładzie Mandraka 8.1 lub 9.0). Ten sam problem w Mandraku 9.1 opisałem tutaj.
Wykonaj: - Uzupełnij wpisy w pliku /etc/hosts (o prawach root.root rw-r--r--)
Stanąłeś przed dylematem: jak nazwać komputery, które podłączysz do swojej sieci. Oczywiście musisz też wiedzieć ile ich będzie. Przyjałem 2 klientów (o nazwie kuba, koza), ze stałym adresem IP zdefiniowanym tutaj czyli w pliku /etc/hosts (oraz w pliku /etc/dhcpd.conf, ale o tym za chwilę). Dopisz więc w pliku /etc/hosts nowe wiersze wg wzoru: (adres IP po kolei od 192.168.0.2, .0.3 itd., kilka spacji, domena, kilka spacji, nazwa hosta). 127.0.0.1 localhost.localdomain localhost 192.168.0.1 misiek.pd132.wroclaw.sdi.tpnet.pl misiek 192.168.0.2 kuba.pd132.wroclaw.sdi.tpnet.pl kuba 192.168.0.3 koza.pd132.wroclaw.sdi.tpnet.pl koza Masz już listę komputerów-klientów w pliku /etc/hosts . Czas utworzyć listę komputerów-klientów z adresami IP oraz MAC. Wyniki umieść w pliku /etc/hosts.arp o wyglądzie zbliżonym do poniższego: 192.168.0.2 02:05:5E:A3:AD:C8 192.168.0.3 2A:04:52:A3:AD:C3 Kilka słów wyjaśnień: musisz w pierwszej kolejności utworzyć pusty (na razie) plik hosts.arp w katalogu /etc poleceniem touch /etc/hosts.arp . Następnie wyedytuj go np. poleceniem mcedit hosts.arp i doprowadź do podobnej postaci: adres IP, kilka spacji, adres MAC. Jak poznać MAC kart sieciowych? W Windows komendą winipcfg , w Linuksie ifconfig lub arp co zresztą da nam od razu listę wszystkich aktywnych aktualnie kart sieciowych (rozumiesz teraz, dlaczego przed rozpoczęciem prac należało uruchomić SDI oraz komputery-klienty?). Dla pewności sprawdź rzetelność danych poleceniem ping 192.168.0.2 lub .0.3 itd. (jest to ważne, gdyz czasami z niezrozumiałych powodów klienty przyjmują samodzielnie inne niż należy numery IP, ale to temat na osobną opowieść). Jak zauważyłeś serwer ma adres IP 192.168.0.1 i nie zajmujemy się (w tym pliku) jego konfiguracją. W /etc/hosts.arp podajemy jedynie dane klientów (od IP 192.168.0.2, .0.3 itd.). Końcowe prawa pliku (w Mandraku) /etc/hosts.arp to: root.daemon rw-r--r-- - Uzupełnij dane w pliku /etc/dhcpd.conf
Pojawiły się (w porównaniu do wersji domyślnej) nowe wiersze definiujące nr IP i nazwę hosta oraz numer MAC karty sieciowej przyporządkowanej klientowi. Serwer ma wewnętrzny adres IP 192.168.0.1, a zewnętrzny 217.96.171.101. Domena otrzymana od TPSA wraz z usługą SDI: pd132.wroclaw.sdi.tpnet.pl (w przypadku SDI - DNS wpisz 194.204.159.1). Przypominam zasady: planujemy sieć o adresie 192.168.0.0/255.255.255.248, zbudowaną z 8 nr IP (czyli przewidującą obsługę 5 szt. komputerów-klientów). Przy masce 255.255.255.248 broadcast-address wyniesie 192.168.0.7 , natomiast przy masce 255.255.255.0 broadcast-address wyniesie 192.168.0.255 (teoria tworzenia sieci jest opisana tutaj). Zwróć uwagę, że podczas instalacji i pierwszej automatycznej konfiguracji sieci (i udostępnienia internetu dla domowej sieci) maska wynosiła 255.255.255.0, czyli przewidywała 253 szt. klientów. Uwaga: na dobrą sprawę możesz wpisać 255.255.255.0 , gdyż maskę 255.255.255.248 wprowadziłem w celach szkoleniowych, by pokazać jak konfigurować mniejszą sieć. Zwróć uwagę na nawiasy klamrowe {}, średniki ; na końcu wiersza, # znak hasz czyli komentarz (który możesz usunąć w swoim pliku). W wierszu hardware ethernet 02:05:5E:A3:AD:C8; podałem przykładowy(!) numer MAC. Ostateczna propozycja pliku /etc/dhcpd.conf
ddns-update-style none; subnet 192.168.0.0 netmask 255.255.255.248 { #default gateway option routers 192.168.0.1; option subnet-mask 255.255.255.248; option domain-name "pd132.wroclaw.sdi.tpnet.pl"; option domain-name-servers 194.204.159.1; #option nis-domain "domain.org"; option broadcast-address 192.168.0.7;
#Przy masce 255.255.255.248 mamy mozliwość uzyskania #5 szt. klientow, z tego 2 szt. juz zagospodarowalismy #nadajac im (ponizej) stale nr IP (maska 248 daje #8 szt. nr IP, z tego 2 IP są krańcowe, jeden IP zajmuje #serwer, 5 szt. IP zostaje dla klientow). #Zbedna nadwyzke 3 szt. IP możemy latwo zablokowac #zmieniajac pierwotny wiersz range o takim wygladzie: #range dynamic-bootp 192.168.0.2 192.168.0.6; #na taki: #range dynamic-bootp 192.168.0.2 192.168.0.3; #co zrówna numery nadane statycznie z range. #Jak rozpisac siec, maski, broadcast opisalem tutaj range dynamic-bootp 192.168.0.2 192.168.0.3; default-lease-time 53200; max-lease-time 86500; # we want the nameserver to appear at a fixed address # czyli definiujemy komputer ze stalym IP # powiazanym z nr MAC karty sieciowej host kuba { next-server kuba.pd132.wroclaw.sdi.tpnet.pl; hardware ethernet 02:05:5E:A3:AD:C8; fixed-address 192.168.0.2; #option domain-name-servers 192.168.0.1; #option routers 192.168.0.1; #option broadcast-address 192.168.0.248; } host koza { next-server koza.pd132.wroclaw.sdi.tpnet.pl; hardware ethernet 2A:04:52:A3:AD:C3; fixed-address 192.168.0.3; #option domain-name-servers 192.168.0.1; #option routers 192.168.0.1; #option broadcast-address 192.168.0.248; } # host rezerwa_1 { # next-server rezerwa_1.pd132.wroclaw.sdi.tpnet.pl; # hardware ethernet 00:00:00:00:00:01; # fixed-address 192.168.0.4; # } # host rezerwa_2 { # next-server rezerwa_2.pd132.wroclaw.sdi.tpnet.pl; # hardware ethernet 00:00:00:00:00:02; # fixed-address 192.168.0.5; } # host rezerwa_3 { # next-server rezerwa_3.pd132.wroclaw.sdi.tpnet.pl; # hardware ethernet 00:00:00:00:00:03; # fixed-address 192.168.0.6; } }
- Sprawdź zawartość plików /etc/hosts.denny i /etc/hosts.allow . Pierwszy definiuje komputery z zabronionym dostępem, drugi dopuszczonych. Więcej na ten temat tutaj. Uwaga: ponieważ spotkałem się z niewiedzą u internautów informuję, że pliki te NIE BLOKUJĄ PRZYDZIELANIA adresów IP dla klientów z wewnętrznej sieci poprzez dhcpd. Inaczej mówiąc - nie wywalisz gościa z domowej sieci, jeżeli zablokujesz go na linuksowym serwerze w pliku /etc/hosts.deny
Restartuj komputer. Jeżeli sieć (nadal) chodzi, to znaczy że ręczne poprawki wykonałeś prawidłowo.
Skopiuj plik ip_arp i umieć go w katalogu /sbin/ip_arp Oryginalny plik ip_arp (niestety strona www jest już nieaktualna) różni się jedynie w budowie skryptu: adresowaniu do pliku arp (zmiany spowodowane zostały koniecznością dostosowania do dystrybucji Mandrake). Nadaj plikowi prawa: root.root rwxr----- Skopiuj plik rc.arp i umieść go w katalogu /etc/rc.d/rc.arp Możesz też przepisać jego zawartość (zwróć uwagę na wszystko, nawet na spacje): if [ -x /sbin/ip_arp ]; then echo "Starting IP_MAC... " /sbin/ip_arp start fi Nadaj plikowi rc.arp prawo root.root rwxr----- - Wyedytuj plik /etc/rc.d/rc.local i dopisz (na samym końcu) polecenie uruchomienia pliku /etc/rc.d/rc.arp podczas startu systemu. Poniżej przedstawiam przykładowy wygląd poczatkowej części pliku /etc/rc.d/rc.local . Zauważ, że już tu byłeś i umieściłeś polecenie startu modemu SDI-HIS...
#!/bin/sh # # This script will be executed *after* all the other init scripts. # You can put your own initialization stuff in here if you don't # want to do the full Sys V style init stuff (...) # (...) # (...) if [ -x /etc/rc.d/rc.arp ]; then /etc/rc.d/rc.arp fi if [ -x /etc/rc.d/rc.his ]; then /etc/rc.d/rc.his fi ... lub jeżeli nie zadziała, bo np. jesteś nieuważny i źle wpisałeś tekst zaznaczony na niebiesko, to dopisz na końcu prostszą wersję:
/etc/rc.d/rc.arp Restartuj komputer. - Ustaw komputery-klienty w wersji AUTOMATYCZNIE POBIERZ ADRES IP.
Pamiętaj, że aby skrypt łączący MAC oraz IP zadziałał pewnie i bez niespodzianek, należy firewall tak ustawić, by masq i udostępnianie netu działało tylko wobec ściśle wskazanych nr IP wewnętrznej (domowej) sieci. W Linuksach opartych na Kernelu 2.2.x firewalla konfigurujemy ipchains (patrz przykład_1 oraz przykład_2 dla Mandrake 8.1). W Linuksach pracujących na Kernelu 2.4.x oraz 2.6.x mamy iptables. W Mandrake 9.x iptables nadzoruje narzędzie shorewall - zapraszam tutaj (zwróć uwagę na plik masq). |
Po wykonaniu modyfikacji pliku /etc/ dhcpd.conf musisz restartować demona dhcpd zleceniem /etc/rc.d/init.d/dhcpd restart (lub start , stop) . Ewentualnie możesz restartować komputer. Liczba komentarzy (0) - Dodaj swój komentarz do tego artykułu... |
|
13.03.2006.
|
Spis treści:
1. WSTĘP 2. URUCHOMIENIE SERWERA MySQL ORAZ KLIENTA MySQL 3. LOGOWANIE 4. TWORZENIE BAZ DANYCH 5. TABELE 6. TWORZENIE UŻYTKOWNIKA MySQL 7. WYPEŁNIANIE TABEL DANYMI
Baza danych plus PHP to narzędzia umożliwiające zbieranie i przetwarzanie wielu danych. Na tej witrynie jest do wglądu przykład praktycznego wykorzystania MySQL+PHP jako licznika odwiedzin, dostępnego na stronie http://gorzow-wlkp.pl/licznik/index.php . Można uzyskać informacje o tym, która strona jest najczęściej odwiedzana, na jakim systemie i jaką przeglądarką internetową. Polecam. Niniejszy artykuł pisałem opierając się na Linuksie Mandrake 10.1, co nie powinno mieć większego znaczenia, gdyż MySQL można instalować na każdym systemie operacyjnym: Win, Linux, Unix. Przyjąłem, że dane wpisujemy i odczytujemy pracując na kliencie MySQL (wydając odpowiednie polecenia w powłoce tekstowej). Klient i serwer są na tym samym komputerze (to ważne), czyli logujemy się na klienta MySQL klepiąc po klawiaturze podłączonej do serwera (ew. łączymy się tunelem ssh). Odradzam jednoczesną naukę PHP i MySQL. Polecam w pierwszej kolejności zaznajomić się z teorią baz danych (tu MySQL). Uwaga: user root używany do obsługi serwera MySQL nie ma nic wspólnego z systemowym userem root poznanym podczas prac na Linuksie - ma inne hasło i inne zadania. Zbieżność nazw (moim zdaniem niezbyt udana) jest związana z określeniem usera o najwyższych prawach dostępu. Na niniejszej stronie mamy więc do czynienia z systemowym userem root oraz z userem root od MySQL. Zwróć uwagę na plik z historią poleceń .mysql_history , który jest umieszczony w katalogu domowym usera czyli np. /home/antek lub /root . Może tam znaleźć się hasło jako pozostałość po niewłaściwym (ale teoretycznie możliwym) logowaniu. Przykład logowania niewłaściwego: mysql -u root -p haslo; oraz właściwego: mysql -u root -p (ENTER, haslo). Problem rozwinę poniżej. Średnik ; kończący wpis oznacza (w MySQL) koniec polecenia i jest bardzo ważnym elementem! Bez niego zlecenie nie zadziała. Uwaga na znaczek ' (na klawiszu ze znakiem cudzysłowia). W Linuksie Mandrake/Mandriva serwer MySQL uruchamiamy odwołując się do skryptu startowego: /etc/rc.d/init.d/mysqld (z parametrami np. start, stop, restart). Klienta uruchamiamy poprzez plik /etc/rc.d/init.d/mysql (dodając parametry np. -u -p -h). Do tematu powrócę poniżej. Uruchomienie serwera MySQLPodczas instalacji Linuksa Mandrake wybierz serwer MySQL (zostaną automatycznie dodane inne pakiety np. klient mysql). Nie instaluj (na razie modułów PHP, CGI, itp). Po instalacji zaloguj się w systemie jako systemowy user root i uruchom serwer MySQL zleceniem: /etc/rc.d/init.d/mysqld start (lub stop, restart) (wciśnij klawisz ENTER) Uwaga: serwer MySQL można automatycznie włączać podczas startu systemu zaznaczając właściwą opcję po wydaniu zlecenia: drakxservices. Więcej o autostarcie tutaj. Uruchomienie klienta MySQL (na tym samym komputerze co zainstalowano serwer MySQL) Jako systemowy zwykły user (nie root!) np. antek wykonaj zlecenie: mysql (wciśnij klawisz ENTER) lub jeżeli nie wyjdzie, to: cd /etc/rc.d/init.d/ (wciśnij klawisz ENTER) mysql (wciśnij klawisz ENTER) Powyższe uruchomienie klienta MySQL uda się wyłącznie, gdy user root MySQL nie ma jeszcze ustawionego hasła, a tak jest np. tuż po zakończeniu instalacji systemu. Zdołałeś zalogować się do serwera MySQL. Wylistuj dostępne bazy danych (powinno być ich kilka) zleceniem: mysql>show databases; (wciśnij klawisz ENTER) Zwróć uwagę na średnik na końcu zlecenia! Jeżeli zobaczyłeś prostą tabelkę, to znaczy, że możesz zacząć naukę baz danych MySQL. Pracę klienta MySQL zakończysz zleceniem exit. Jeżeli zalogujesz się do serwera MySQL, to przez cały czas prac z lewej strony będzie widoczny napis mysql - stąd na niniejszej stronie umieściłem przed każdym zleceniem wpis mysql> LOGOWANIE Przyjmuję, że serwer MySQL automatycznie włącza się po starcie systemu. Działasz na jednym komputerze jako systemowy user np. antek. Ze względów bezpieczeństwa w pierwszej kolejności ustaw userowi root (tego od MySQL) jakieś hasło. Wykonaj: cd /etc/rc.d/init.d/ ENTER mysql ENTER Jesteś zalogowany jako root (ten od MySQL). Ustaw hasło rootowi (temu od MySQL) zleceniem: mysql>set password = password('jakieshaselko'); ENTER Uwaga na średnik ; na końcu zlecenia. Ważne jest położenie (lub brak) spacji w zleceniu. Znaczek ' znajdziesz na klawiszu ze znakiem cudzysłowia. Wyloguj się zleceniem exit ENTER Zaloguj się na nowo, ale tym razem rozbudowanym zleceniem: mysql -u root -p (ENTER i podaj hasło roota od MySQL)
Nie wolno wpisywać hasła bezpośrednio w polecenie!!! np. mysql -u root -p hasło; , gdyż zostanie odnotowane w pliku ~/mysql_history i będzie można je wykraść. Gdy znasz nazwę dazy danych nad którą będziesz pracować, to możesz od razu zalogować się i wskazać domyślną bazę danych: mysql -u root -p nazwabazydanych (ENTER i podaj hasło roota) Zwróć uwagę, że na końcu zlecenia nie ma średnika ; Uwaga: jeżeli podczas logowania nie podasz domyślnej bazy danych, to zrób to po zalogowaniu zleceniem: mysql>use nazwabazydanych; ENTER Uwaga na średnik ; na końcu zlecenia. W zależności od konfiguracji serwera MySQL czasami będziesz musiał podczas logowania podać adres hosta (komputera). Jeżeli serwer i klient MySQL są na tej samej maszynie, to wypróbuj poniższe zlecenia. Ponieważ na razie masz tylko usera root (od MySQL), to oczywistym jest, że nie możesz logować się na zwykłego usera (od MySQL) - w naszym przykładzie jest to kaziu. Zwróć uwagę, że na końcu zlecenia nie ma średnika. mysql -u kaziu -p -h localhost ENTER lub mysql -u kaziu -p -h 192.168.1.1 ENTER lub adres IP i nr portu (tu 3306): mysql -u kaziu -p -h 217.96.171.100:3306 ENTER W ostateczności wypróbuj zlecenie: mysql kaziu@localhost -p ENTER
Parametr -u oznacza, że po spacji podamy nazwę usera (np. root), parametr -p oznacza, że user ma hasło, -h oznacza, że po spacji podamy adres (lub nazwę) hosta. Wylogujesz się zleceniem exit
Stosuj zasadę, że uruchamiasz klienta mysql z komputera na którym działa serwer mysqld. Jeżeli musisz to zrobić z odległego komputera, to uruchom szyfrowany tunel ssh i po przejęciu shella zwykłego usera odpal na linuksowym serwerze klienta mysql. Osobiście próbowałem zdjąć zabezpieczenia w moim Mandrake i logować się na serwer MySQL z klienta w domowej sieci. Dotarłem do odpowiednich opcji w konfigu MySQL, udostępniłem na firewallu. Straciłem kilka dni i nic. Po prostu Mandrake ma szereg dodatkowych zabezpieczeń (co jest dobre na wypadek włamu), których nie publikuje w darmowych poradach. Z drugiej strony może i dobrze, że są zabezpieczenia. Przecież MySQL to jedynie silnik bazodanowy. Do wprowadzania danych lub wyprowadzania kwerend należy używać narzędzi typu php. TWORZENIE BAZ DANYCH Baza danych zbudowana jest z nazwy oraz tabelek, stąd w pierwszej kolejności utworzymy nazwę dla naszej bazy danych, a dopiero potem tabelki podporządkowane tylko tej bazie danych. Pamiętaj, by w nazwach baz danych (i tabelkach) nie wprowadzać polskich liter typu śćźżąóń oraz spacji (zamiast niej można dać dolną kreskę _ ). Zwróć uwagę na średnik ; na końcu zlecenia. Jesteś zalogowany jako root (ten od MySQL). Wylistuj bazy danych (ich nazwy) zleceniem: mysql>show databases; ENTER Dodaj nową nazwę bazy danych (utwórz nową bazę danych) zleceniem: mysql>create database nazwabazydanych; ENTER Wylistuj ponownie bazy danych, a następnie usuń bazę danych zleceniem: mysql>drop database nazwabazydanych; ENTER
Uwaga: bazy danych oraz tabelki wykonuj pod rootem (tym od MySQL). Dopiero na koniec prac utwórz zwykłego usera (tego od MySQL), nadaj mu hasło, odpowiednie prawa (np. do zapisu, odczytu itd.) - opis tworzenia usera jest poniżej. Od tego momentu (czyli wprowadzania danych i zwykłej pracy w bazie danych) nie należy używać roota (tego od MySQL), działając wyłącznie pod zwykłym userem (tym od MySQL). TWORZENIE TABEL Będąc zalogowanym jako zwykły systemowy user np. antek zaloguj się jako jako root (ten od MySQL) do serwera MySQL - opis powyżej. Następnie wykonaj zlecenia (zwróć uwagę na średnik ; na końcu zleceń): mysql>create database klienci; ENTER mysql>use klienci; ENTER Utwórz tabelkę nazwiska w bazie danych klienci jednym zleceniem: mysql>create table nazwiska ( ENTER mysql>id int not null auto_increment, ENTER mysql>opis text, ENTER mysql>name varchar(25), ENTER mysql>primary key(id)); ENTER Zwróć uwagę na ustawienie nawiasów (), przecinków , oraz położenie spacji. Została utworzona w bazie danych klienci tabela nazwiska, a w niej trzy kolumny: numeracja id rekordów (z opcjami: int - o tym za chwilę, not null czyli "nigdy puste", auto_increment czyli utomatycznie nadawana numeracja +1), opis (z ustawionym typem danych text), name (z ustawionym typem danych varchar 25 znaków). Klucz ustawiono na kolumnę id. Zobacz, czy tabelka istnieje zleceniem: mysql> show tables; ENTER Wyświetl strukturę (czyli kolumny) tabeli nazwiska: mysql>describe nazwiska; ENTER Zlecenie select wyświetla dane. Na razie mamy nową, pustą tabelę, więc nie ma w niej danych. Usuń tabelkę nazwiska zleceniem: mysql>drop table nazwiska; ENTER Trochę teorii o bazach danych i tabelkach Tabelki możemy teoretycznie budować w sposób dowolny, zaznaczając jedynie, by wpisy były widziane jako literki-cyferki (do tekstu) lub liczby (do późniejszych działań matematycznych). Oczywiście zawsze musi być kolumna z numeracją rekordów czyli id (nie mylić z numerem kolejnym, ale o tym później). Ten bardzo prosty schemat ma jedną poważną wadę: mała informacja zajmie dużo miejsca. Dlaczego? Ano każda komórka w danym rekordzie ma zaplanowaną przestrzeń (maksymalną ilość możliwych do wpisania liter-cyfr). Jeżeli wielkość maksymalna wynosi np. 65538 znaków, to prosty wpis np. Alicja zamiast 6 znaków zajmie 65538 znaków. Jeżeli natomiast zaplanujemy komórkę o typie danych np. 30 znaków, to marnotrawstwo będzie znikome. Minusem ograniczania ilości znaków jest odmowa wpisu danych przekraczających wielkość zaplanowaną, stąd koniecznym będzie zaznajomienie się z poniższymi tabelkami typów danych. Nie polecam kucia na pamięć, ale wpis do notatnika lub wydruk by się przydał. LICZBY CAŁKOWITE LICZBY ZMIENNOPRZECINKOWE DATA I CZAS TEKST
OPCJE DOTYCZĄCE W/W TYPÓW DANYCH TYP | ZAKRES WARTOŚCI | | auto_increment | Autonumeracja +1 | | binary | Parametr binary wskazuje, że wpisy są traktowane jako wartości binarne i uwzględniona zostanie wielkość znaków (w innych typach wielkość znaków w polach tekstowych jest domyślnie ignorowana). | | default wartosc | Określa wartość domyślną narzuconą przez programistę. Przykładem ustandaryzowanej wartości domyślnej jest np. opcja not null czyli "nigdy puste". | | not null | Określa czy baza danych ma zaakceptować brak wpisu. W przypadku nie podania wartości not null, MySQL automatycznie zaakceptuje wpis o wartości null (nic). | | primary key | Bardzo ważny parametr określający kolumnę, która ma zawierać unikalny klucz (w praktyce najczęściej jest to nr id) | | zerofill | Parametr zmuszający bazę danych do automatycznego uzupełniania pola liczbowego zerami do (określonej w innym parametrze) długości tego pola np. 0000021 |
Modyfikacje struktury tabel
Będąc zalogowanym jako root (ten od MySQL) ustaw domyślną bazę danych np. klienci zleceniem: use klienci; ENTER Wylistuj tabelki zleceniem: show tables; ENTER Następnie wyświetl strukturę (czyli kolumny) tabelki o nazwie np. nazwiska zleceniem: describe nazwiska; ENTER Zmień nazwę tabelki nazwiska na nazw zleceniem: mysql>alter table nazwiska rename nazw; ENTER Sprawdź wyniki prac zleceniem: show tables; ENTER
Będąc zalogowanym jako root (ten od MySQL) ustaw domyślną bazę danych np. klienci zleceniem: use klienci; ENTER Wylistuj tabelki zleceniem: show tables; ENTER Następnie wylistuj tabelkę o nazwie np. nazw zleceniem: describe nazw; ENTER Będąc zalogowanym jako root (ten od MySQL) i mając ustawioną domyślną bazę danych np. klienci dodaj w tabeli nazw nową kolumnę panienskienazwisko tak, by było położone po kolumnie opis zleceniem: mysql>alter table nazw add panienskienazwisko varchar(30) after opis; ENTER Jeżeli nowa kolumna ma być pierwsza, to zamiast parametru after nazwakolumny daj parametr first Sprawdź wyniki prac zleceniem: show tables; ENTER
Zmień (w tabeli nazw) nazwę istniejącej kolumny panienskienazwisko na nową nazwę: pan_nazw zleceniem: mysql>alter table nazw change panienskienazwisko pan_nazw; ENTER
ZMIANA TYPU DANYCH KOLUMNY Zmień (w tabeli nazw) typ danych varchar(25) istniejącej kolumny pan_nazw , na varchar(60) zleceniem: mysql>alter table nazw modify pan_nazw varchar(60); ENTER TWORZENIE UŻYTKOWNIKA Masz utworzoną pod rootem (tym od MySQL) bazę danych oraz tabelki wraz z ustalonymi typami danych (opis powyżej). Teraz trzeba utworzyć pod rootem (tym od MySQL) zwykłego użytkownika (tego od MySQL), by za jego pomocą wypełnianiać tabele w bazach danych. Jest to związane z pierwszą zasadą bezpieczeństwa: NIGDY NIE NALEŻY UŻYWAĆ KONTA ROOTA (TEGO OD MYSQL) DO WYPEŁNIANIA TABEL DANYMI! Tworzenie użytkownika/usera odbywa się po zalogowaniu pod roota (tego od MySQL) omówionym już powyżej zleceniem: cd /etc/rc.d/init.d/ oraz mysql -u root -p (ewentualnie mysql -u root -p nazwabazydanych). Każdy użytkownik może mieć nadane różne prawa. Oto lista najczęściej nadawanych praw zwykłym userom MySQL. Praktycznie nie ma potrzeby, by nadawać więcej praw do zwykłej pracy nad bazą danych, a prawo np. do kasowania tabeli lub np. tworzenia nowej kolumny lepiej zostawić tylko rootowi (od MySQL). - select czyli prawo do odczytu, sortowania danych
- insert czyli prawo do wstawiania danych
- update czyli prawo do poprawiania danych
- delete czyli prawo do kasowania danych
Tworzymy usera MySQL kaziu z hasłem ofarts3ai. Przypominam, że każde polecenie trzeba kończyć średnikiem ; . Znaczek ' jest na klawiszu ze znakiem cudzysłowia. Tworzenie użytkownika kaziu z hałsem ofarts3ai. Posiada on nadane (grant) wszystkie (all) uprawnienia na wszystkie (*) tabele we wskazanej bazie 'baza1' mysql>grant all on baza1.* to kaziu identified by 'ofarts3ai'; a jeżeli będą problemy dopisz @localhost do nazwy usera: mysql>grant all on baza1.* to kaziu @localhost identified by 'ofarts3ai'; Tworzenie użytkownika kaziu z hasłem ofarts3ai. Posiada on nadane wszystkie uprawnienia na wszystkich bazach i tabelach . mysql>grant all on * to kaziu identified by 'ofarts3ai'; Tworzenie użytkownika kaziu z hałsem ofarts3ai. Posiada on nadane wszystkie uprawnienia na tabelę 'tabela1' w bazie 'baza1' mysql>grant all on baza1.tabela1 to kaziu identified by 'ofarts3ai'; Można też zamiast all (wszystkie) dać tylko wybrane uprawnienia np: mysql>grant select, insert, delete, create on * to kaziu identified by 'ofarts3ai'; By dodać istniejącemu użytkownikowi kaziu uprawnienia delete, update: mysql>grant delete, update on * to kaziu; By usunąć uprawnienia delete, update: mysql>revoke delete, update on * from kaziu; Przydatnym jest, by do każdej bazy był skonfigurowany użytkownik z ograniczonymi prawami (np. tylko select). Ze względów bezpieczeństwa należy do jednej bazy danych utworzyć jednego usera z większymi uprawnieniami (select, insert, update, delete) i jednego z uprawnieniami ograniczonymi (select). Można też stworzyć uniwersalnego usera zosia z hasłem czytajx, który będzie miał tylko prawo select (pobieranie, sortowanie danych) we wszystkich bazach: mysql>grant select on * to zosia identified by 'czytajx'; Przykładowe zlecenie tworzące zwykłego usera azat (działającym na tym samym komputerze co zainstalowano serwer MySQL - stąd parametr @ localhost), z uprawnieniami do czytania, wprowadzania, korygowania i kasowania danych w bazie danych o nazwie klienci, w tabeli nazwiska. Hasło usera: qworpa. Zlecenie powinno być wpisane w jednej linii. mysql>grant select, insert, update, delete on klienci.nazwiska to azat@localhost identified by 'qworpa'; Druga zasada bezpieczeństwa: NIE NADAWAJ ZWYKŁEMU UŻYTKOWNIKOWI (OD MySQL) PRAW ALL (WSZYSTKICH) BEZ WYRAŹNEJ POTRZEBY, GDYŻ PRZEJĘCIE GO PRZEZ WŁAMYWACZA DA MU PEŁNIĘ PRAW NAD MySQL (BAZY DANYCH, TABELE, UŻYTKOWNICY, ROOT). Trzecia zasada bezpieczeństwa: ZAWSZE TWÓRZ MINIMUM DWÓCH USERÓW (OD MySQL) Z RÓŻNYM STOPNIEM UPRZYWILEJOWANIA. W PRZYSZŁOŚCI SKRYPTY PHP OBSŁUGUJ USEREM O OGRANICZONYCH PRAWACH, TAK BY PRZEJĘCIE GO PRZEZ INTRUZA NIE UMOŻLIWIŁO ZNISZCZENIE BAZY. W wielu moich skryptach formularze PHP umożliwiające kasowanie zawartości baz danych są usunięte z konta www i wkładane jedynie na czas prac administracyjnych. Utrudnia to nieprawne przejęcie uprzywilejowanego usera (od MySQL). Jak sprawdzić nazwy użytkowników w MySQL oraz jak sprawdzić prawa pojedynczego użytkownika? W Linuksie Mandrake jako zwykły systemowy user np. antek zaloguj się pod roota (od MySQL) zleceniem: cd /etc/rc.d/init.d/ ENTER mysql -u root -p ENTER i podaj hasło roota od MySQL Teraz jako root (od MySQL) wylistuj dostępne bazy danych (powinno być ich kilka) zleceniem: mysql>show databases; Jest tam baza danych mysql. Wejdź do bazy danych mysql zleceniem: mysql>use mysql; Wylistuj tabele w bazie danych mysql mysql>show tables; ENTER Mamy kilka tabel (ilość może być różna zależnie od wersji serwera MySQL): - column_priv czyli uprawnienia do kolumn
- db czyli uprawnienia do baz danych
- tables_priv czyli uprawnienia do tabel
- host czyli uprawnienia hostów do baz danych
- user czyli opis userów (użytkowników MySQL)
Jesteśmy zainteresowani tabelką opisującą użytkowników. Tabelka ma nazwę user. Wyświetl strukturę (czyli listę kolumn) tej tabeli zleceniem: mysql>describe user; Pojawią się wszystkie kolumny zawierające parametry userów: przynależność do hosta, nazwa usera, hasło, przywileje (priv czyli prawa). Nieszczęśliwie nazwa tabeli user ma taką samą nazwę jak jedna z jej kolumn: user. Dodatkową komplikacją jest to, że KOLUMNY mają tutaj położenie w POZIOMIE. Przy okazji warto zapamiętać listę przywilejów: select, insert, update, delete, create, drop, reload, shutdown, process, file, grant, references, index, alter. Parametr TYPE przy user, password informuje nas, że nazwa usera oraz hasło usera może mieć maksymalnie 16 znaków (a przynajmniej tak jest na moim komputerze). Aby wylistować wszystkich userów MySQL i ich wybrane prawa należy w tabeli user wyedytować kolumnę user oraz po kolei kolumny, które w nazwie mają " _priv" (można też sprawdzić parametr host) za pomocą zlecenia: mysql> select user, host, select_priv, insert_priv, delete_priv, grant_priv from user; Aby sprawdzić, czy dany user MySQL: kaziu oraz zosia ma wybrane prawa: mysql> select user, select_priv, insert_priv from user where user = kaziu and user = zosia; Oczywiście w powyższym przykładzie wpisałem zapytanie dotyczące kilku praw, ale można wpisać wszystkie. W odpowiedzi uzyskasz ładny wykaz praw (literka Y-yes, literka N-no) Aby wybrać tylko nazwy userów z tabeli user wpisz jako root (od MySQL): mysql> select user from user; Jeżeli w przyszłości nie będziesz mógł się zalogować klientem MySQL, to pamiętaj, że po korekcie w bazie danych mysql i modyfikacji tabeli np. user należy zleceniem flush privileges odświeżyć bufor serwera MySQL. Jeżeli zapomnimy hasło użytkownikaJeżeli zapomnimy hasło użytkownika (tego od MySQL) np. kaziu, to jako root (od MySQL) możemy nadać je na nowo (przyjmujemy, że użytkownik MySQL kaziu jest już utworzony): logujemy się z pozycji zwykłego, systemowego użytkownika jako root (od MySQL) zleceniem: cd /etc/rc.d/init.d/ ENTER oraz mysql -u root -p licznik ENTER następnie wykonujemy zlecenie: mysql>grant all on licznik.* to kaziu identified by 'nowe_haslo'; Uwaga: grant all czyli WSZYSTKIE PRAWA, można zastąpić wybranymi np. grant select, insert, delete, create Nazwa bazy danych: licznik, tabelki WSZYSTKIE (*), użytkownik kaziu, nowe hasło: nowe_haslo
WYPEŁNIANIE TABEL DANYMI Powyżej pokazałem jak utworzyć bazę danych MySQL (wraz z tabelkami) oraz jak utworzyć użytkowników MySQL. Czas wypełnić tabelki treścią za pomocą zwykłego użytkownika (tego od MySQL). Powinienem w tym miejscu zaprezentować PHP, czyli narzędzie idealnie nadające się do wprowadzania i odczytu danych. Niestety, pośpiech jest niewskazany i na razie trzeba poznać składnię poleceń MySQL, choćby dlatego, że PHP właśnie tych poleceń używa do pracy. Przyjmuję, że pracujesz pod Linuksem w powłoce tekstowej. Na tym samym komputerze masz serwer MySQL i klienta MySQL. Na Linuksie jest systemowy (linuksowy) użytkownik antek oraz użytkownik MySQL o nazwie licznik3. Zaloguj się jako antek, a następnie wpisz zlecenie: cd /etc/rc.d/init.d/ (ENTER) mysql -u licznik3 -p (wciśnij klawisz ENTER i podaj hasło usera licznik3) uruchomisz użytkownika licznik3 (tego od MySQL). W katalogu /var/lib/ mysql są podkatalogi o nazwach identycznych jak istniejące bazy danych. Przed reinstalacją systemu lub zapobiegawczo np. raz w tygodniu warto kopiować do np. katalogu /archiwum cały katalog /var/lib/ mysql, by w przyszłości odtworzyć bazę danych (z userami, hasłami, przywilejami itd.) po np. reinstalacji systemu. Archiwizację można wykonać poprzez crona, który będzie odpalał skrypt o przykładowej treści (wyjaśnienia znajdziesz w artykule o archiwizowaniu): #!/bin/sh tar -zcf /archiwum/mysql_`date +%Y.%m.%d`.tar.gz /var/lib/mysql Na koniec wskazówka związana z MySQL. Może się zdażyć, że pozornie bez powodu baza danych padnie. Jedna z potencjalnych przyczyn to... przepełnienie partycji zawierającej katalog /var/lib/ mysql przez logi systemowe (o ile zawartość katalogu /var jest montowana na jednej partycji). Co robić? - Wylistować partycje zleceniem: mount lub wyedytować plik /etc/fstab
- Wyświetlić listę partycji wraz z ich wielkością, zajętością itd. zleceniem df -h. Pokaże się tabelka z informacjami: ROZMIAR PARTYCJI, UŻYWANE (zajęte), DOSTĘPNE, PROCENT ZAJĘTOŚCI.
AUTOR: Kamil Twarogal Liczba komentarzy (1) - Dodaj swój komentarz do tego artykułu... |
|
08.02.2006.
|
Po miesiącach pracy Zespół Kexi dostarczył najnowszą wersję (beta) aplikacji do zarządzania danymi i projektowania baz danych. Obecnie nacisk jest coraz bardziej kładziony na funkcje użyteczne w firmach, organizacjach i edukacji. Dowodem, że to słuszna droga jest duże zainteresowanie tych środowisk.
Liczba komentarzy (0) - Dodaj swój komentarz do tego artykułu... |
|
Czytaj całość…
|
|
06.02.2006.
|
Mandriva, wydawca popularnego systemu operacyjnego Mandriva Linux, ogłosiła dzisiaj wsparcie działań firmy IBM w zakresie udostępnienia przemysłowi i społeczności Open Source nowej wersji bazy danych do zastosowań korporacyjnych DB2. Zdaniem Mandrivy IBM jest jednym z kluczowych twórców oprogramowania stosujących otwarty model rozwoju i dystrybucji oprogramowania. Mandriva będzie rozpowszechniać bezpłatną wersję bazy DB2 - Universal Database Express-C (DB2 Express-C) - aby umożliwić firmom tworzenie aplikacji opartych na renomowanej technologii bazodanowej.
Liczba komentarzy (0) - Dodaj swój komentarz do tego artykułu... |
|
Czytaj całość…
|
|
| | «« start « poprz. 1 2 3 4 5 6 7 8 9 10 nast. » koniec »»
| | Pozycje :: 73 - 81 z 172 |
|