Zakładanie bazy danych MySQL/PostgreSQL dla Moodle

Zakładanie bazy danych MySQL/PostgreSQL dla MoodlePoprawne 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.

Możesz również polubić…