Zakładanie bazy danych MySQL/PostgreSQL dla Moodle
Poprawne założenie bazy danych dla Moodle pozwoli w przyszłości uniknąć wielu problemów np. z polskimi znakami. Bazę możesz założyć na 2 sposoby: w trybie linii komend oraz za pomocą aplikacji graficznej phpMyAdmin/phpPgAdmin. W tej części artykułu pokażę w jaki sposób założyć bazę w trybie linii komend na własnym serwerze linuxowym. Na koncie hostingowym będziesz mógł założyć bazę przy pomocy panelu graficznego.
Klient MySQL
Założymy bazę w trybie tekstowym z poziomu linii komend:
1. Uruchom program MySQL:
#mysql -u root -p Enter password: Welcome to the MySQL monitor. Commands end with ; or \g. Your MySQL connection id is 2 to server version: 5.0.22-log Type 'help;' or '\h' for help. Type '\c' to clear the buffer. mysql>
Znak zachęty „mysql>” informuje Cię, że poruszasz się w programie bazy danych MySQL. W tym trybie każde polecenie należy zakończyć znakiem średnika – jeżeli nie podasz średnika i naciśniesz Enter wtedy pojawi Ci się znak kontynuacji polecenia „->”.
2. W kolejnym kroku sprawdź czy istnieje baza o nazwie „moodle”:
mysql> SHOW DATABASES; +-------------------------+ | Database | +-------------------------+ | information_schema | | mysql | | test | +-------------------------+ 3 rows in set (0.03 sec)
3. Utwórz bazę danych, w których będą znajdować się tabele platformy Moodle. Możesz jej nadać nazwę „moodle” (jeżeli nie ma takiej bazy już założonej) lub dowolnie inną według uznania.
mysql> CREATE DATABASE moodle; Query OK, 1 row affected (0.00 sec)
4. Zmień domyślne kodowanie i metodę porównywania znaków bazy moodle na UTF8 (chyba, że instalujesz Moodle w wersji 1.5 i wcześniejszej – wtedy nic nie zmieniasz).
mysql> ALTER DATABASE moodle DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci; Query OK, 1 row affected (0.00 sec)
5. Utwórz użytkownika z uprawnieniami dostępu do bazy „moodle”. Użytkownika nazwiemy „moodleuser” natomiast hasło w podanym niżej przykładzie ustawimy na „yourpassword”. Zapamiętaj własną nazwę użytkownika i jego hasło gdyż przyda Ci się w trakcie instalacji systemu Moodle.
mysql> GRANT SELECT,INSERT,UPDATE,DELETE,CREATE,CREATE TEMPORARY TABLES, -> DROP,INDEX,ALTER ON moodle.* -> TO moodleuser@localhost IDENTIFIED BY 'yourpassword'; Query OK, 0 rows affected (0.01 sec)
- Security Warnings: Pamiętaj, aby ułożyć hasło trudne do złamania, np. kombinacja cyfr oraz małych i dużych liter. Nadaj wszystkie uprawnienia użytkownikowi bazy moodlee.
6. Możesz opuścić tryb linii komend MySQL:
mysql> QUIT Bye #
7. W starszych wersjach MySQLa pewnie będziesz musiał przeładować uprawnienia do bazy z wykorzystaniem następującego polecenia:
#mysqladmin -u root -p reload Enter password: #
Jeżeli nie chcesz wydawać wszystkich powyższych poleceń skopiuj poniższą linijkę i w trybie linii komend MySQL naciśnij Enter – pamiętaj, aby ustawić własne hasło!
create database moodle default character set utf8; grant all privileges on moodle.* to 'moodleuser'@'localhost' identified by 'yourpassword'; flush privileges; quit
PostgreSQL
Jeżeli planujesz wykorzystywać silnik bazy danych PostgreSQL, wykonaj poniższe polecenia:
# su - postgres
> psql -c "create user moodleuser createdb;" template1
> psql -c "alter user moodleuser with encrypted password 'yourpassword';" template1
> psql -c "create database moodle with encoding 'unicode';" -U moodleuser template1
> psql -c "alter user moodleuser nocreatedb;" template1
> su - root
# /etc/init.d/postgresql reload
Jeżeli wykonanie powyższego polecenia (>psql -c „create database moodle…”) wyrzuci Ci błąd, możesz spróbować następująco:
psql -c "create database moodle with template=template1 encoding = 'unicode' owner = moodleuser location = '/var/mydata';"
Jeżeli zostaniesz poproszony o podanie hasła, wklej wcześniej linijkę zawierającą hasło.
Dodatkowe informacje możesz uzyskać na stronie Moodle Docs.