Traccar cz. 5.1.1 – zmiana bazy danych z H2 na MySQL

Zobacz jak zmienić konfigurację, aby Traccar korzystał z bazy danych MySQL zamiast H2

Traccar domyślnie korzysta z bazy danych H2. Jest ona zawarta w pakiecie instalacyjnym i konfiguruje się automatycznie w procesie instalacji. Twórcy Traccar nie zalecają jednak używanie bazy danych H2 do celów produkcyjnych. Do małych prywatnych projektów możesz zostawić bazę danych H2 i przejść do następnego wpisu. Jeśli jednak decydujesz się na migracji do bazy danych MySQL przejdź do poniższej instrukcji.

Informacje jak przeprowadzić migrację do bazy danych MySQL dostępne są zarówno na oficjalnej stronie Traccar jak i na forach internetowych. Instrukcję krok po kroku jak zainstalować bazę danych MySQL i zmianę konfiguracji serwera Traccar zamieszczam poniżej. Dla zachowania przejrzystości najpierw będą polecenia, a pod nimi zrzuty ekranu.

Otwórz terminal, zaktualizuj pakiety i w razie potrzeby dokonaj aktualizacji poleceniami:

sudo apt update

sudo apt upgrade

Zainstaluj serwer bazy danych MySQL MariaDB Server:

sudo apt install mariadb-server

Zabezpiecz serwer MariaDB:

sudo mysql_secure_installation

Po tej komendzie serwer zapyta o:

  1. Utworzenie hasła konta root dla serwera MySQL, wprowadź hasło i naciśnij enter.
  2. Switch to unix_socket autentification? – zabezpieczyłeś serwer hasłem dla konta root, więc wprowadź n jak no (nie) i naciśnij enter.
  3. Change the root password? – już masz zabezpieczone konto root, więc n i enter.
  4. Remove anonymous users? – usuń anonimowych użytkowników, więc wprowadź y jak yes (tak) i enter.
  5. Disallow root login remotely? – zabroń na zdalne logowanie root, więc y i enter.
  6. Remove test database…? – usuń testową bazę danych, więc y i enter.
  7. Reload privilege…? – przeładuj przywileje (reguły w bazie danych), więc y i enter.

Serwer bazy danych MariaDB został zainstalowany i zabezpieczony.

Zaloguj się do serwera bazy danych MySQL kontem root i wpisz hasło, które utworzyłeś w powyższych krokach; polecenia potwierdzaj naciskając klawisz Enter:

sudo mysql -u root -p

Dla celów instruktażowych moja baza danych to db1, użytkownik bazy danych to user1, hasło to password1. Użyj swoich danych (w miejscach db1, user1, password1) i pamiętaj żeby podmienić je w następnych krokach. Pamiętaj o kropkach, średnikach, apostrofach, itp. Gdy wprowadzisz poprawną komendę otrzymasz komunikat „Query OK,…”. Gdy pomylisz się zobaczysz „ERROR…”.

Utwórz bazę danych:

create database db1;

Zobacz czy baza danych została utworzona:

show databases;

Utwórz użytkownika bazy danych i hasło:

create user 'user1'@localhost identified by 'password1';

Zobacz czy użytkownik został utworzony:

select user from mysql.user;

Nadaj przywileje dla użytkownika:

grant all privileges on *.* to 'user1'@localhost identified by 'password1';

Nadaj przywileje dla bazy danych:

grant all privileges on db1.* to 'user1'@localhost;

Przeładuj przywileje:

flush privileges;

Zobacz przywileje nadane użytkownikowi:

show grants for user1@localhost;

Wyjdź z serwera bazy danych:

exit

Dobra robota, serwer bazy danych został zainstalowany i skonfigurowany.

Dane konfiguracyjne serwera Traccar zapisane są w pliku traccar.xml Jeśli instalowałeś Traccar według moich poleceń, plik konfiguracyjny powinien znajdować się w tych samym katalogu.

Poleceniem „nano” przejdź do edycji pliku traccar.xml:

sudo nano /opt/traccar/conf/traccar.xml

Zobaczysz zawartość pliku. Między znacznikami początkowymi <entry…> i końcowymi </entry> zobaczysz dane bazy danych H2. Musisz je skasować i wpisać nowe tak żeby wskazywały na bazę danych MySQL. Zobacz poniżej jak mają wyglądać nowe wiersze. Możesz je skopiować i wkleić lub przepisać. W długich wierszach nie używaj entera. Pamiętaj żeby podmienić db1, user1 i password1.

<entry key='database.driver'>com.mysql.cj.jdbc.Driver</entry>
<entry key='database.url'>jdbc:mysql://localhost:3306/db1?serverTimezone=UTC&amp;useSSL=false&amp;allowMultiQueries=true&amp;autoReconnect=true&amp;useUnicode=yes&amp;characterEncoding=UTF-8&amp;sessionVariables=sql_mode=''</entry>
<entry key='database.user'>user1</entry>
<entry key='database.password'>password1</entry>

Po wprowadzeniu nowych danych zapisz zmiany naciskając CTRL+o i potwierdź enterem. Wyjdź z edytora naciskając CTRL+x.

Uruchom ponownie Raspberry Pi, aby zastosować nową konfigurację. Wejdź na stronę serwera Traccar. Jeśli wszystkie zmiany zostały poprawnie wprowadzone zobaczysz rejestrację nowego użytkownika jak przy pierwszym uruchomieniu. Poprzednio Traccar korzystał z bazy danych H2, a teraz z MySQL, więc musisz na nowo utworzyć użytkownika.

Zrzuty ekranu z wykonanych czynności:

sudo apt install mariadb-server
sudo apt install mariadb-server
sudo apt install mariadb-server
sudo apt install mariadb-server
sudo apt install mariadb-server
sudo apt install mariadb-server
sudo mysql_secure_installation
sudo mysql_secure_installation
Utworzenie hasła konta root dla serwera MySQL, wprowadź hasło i naciśnij enter.
Utworzenie hasła konta root dla serwera MySQL, wprowadź hasło i naciśnij enter.
Switch to unix_socket autentification? – zabezpieczyłeś serwer hasłem dla konta root, więc wprowadź n jak no (nie) i naciśnij enter.
Switch to unix_socket autentification? – zabezpieczyłeś serwer hasłem dla konta root, więc wprowadź n jak no (nie) i naciśnij enter.
Change the root password? – już masz zabezpieczone konto root, więc n i enter.
Change the root password? – już masz zabezpieczone konto root, więc n i enter.
Remove anonymous users? – usuń anonimowych użytkowników, więc wprowadź y jak yes (tak) i enter.
Remove anonymous users? – usuń anonimowych użytkowników, więc wprowadź y jak yes (tak) i enter.
Disallow root login remotely? – zabroń na zdalne logowanie root, więc y i enter.
Disallow root login remotely? – zabroń na zdalne logowanie root, więc y i enter.
Remove test database…? – usuń testową bazę danych, więc y i enter.
Remove test database…? – usuń testową bazę danych, więc y i enter.
Reload privilege…? – przeładuj przywileje (reguły w bazie danych), więc y i enter.
Reload privilege…? – przeładuj przywileje (reguły w bazie danych), więc y i enter.
Serwer bazy danych MariaDB został zainstalowany i zabezpieczony.
Serwer bazy danych MariaDB został zainstalowany i zabezpieczony.
sudo mysql -u root -p
sudo mysql -u root -p
Wprowadź hasło root, MariaDB Server
Wprowadź hasło root, MariaDB Server
MariaDB Server, serwer bazy danych MySQL
MariaDB Server, serwer bazy danych MySQL
create database db1;
create database db1;
create database db1;
create database db1;
show databases;
show databases;
show databases;
show databases;
Literówka userr zamiast user
Literówka userr zamiast user
Error z powodu literówki
Error z powodu literówki
create user 'user1'@localhost identified by 'password1';
create user 'user1’@localhost identified by 'password1′;
create user 'user1'@localhost identified by 'password1';
create user 'user1’@localhost identified by 'password1′;
select user from mysql.user;
select user from mysql.user;
select user from mysql.user;
select user from mysql.user;
grant all privileges on *.* to 'user1'@localhost identified by 'password1';
grant all privileges on *.* to 'user1’@localhost identified by 'password1′;
grant all privileges on *.* to 'user1'@localhost identified by 'password1';
grant all privileges on *.* to 'user1’@localhost identified by 'password1′;
grant all privileges on db1.* to 'user1'@localhost;
grant all privileges on db1.* to 'user1’@localhost;
grant all privileges on db1.* to 'user1'@localhost;
grant all privileges on db1.* to 'user1’@localhost;
flush privileges;
flush privileges;
flush privileges;
flush privileges;
show grants for user1@localhost;
show grants for user1@localhost;
show grants for user1@localhost;
show grants for user1@localhost;
exit, wyjście z MariaDB Server
exit, wyjście z MariaDB Server
exit, wyjście z MariaDB Server
exit, wyjście z MariaDB Server
Poleceniem „nano” przejdź do edycji pliku traccar.xml:

sudo nano /opt/traccar/conf/traccar.xml
Poleceniem „nano” przejdź do edycji pliku traccar.xml: sudo nano /opt/traccar/conf/traccar.xml
Plik konfiguracyjny traccar.xml z bazą danych H2
Plik konfiguracyjny traccar.xml z bazą danych H2
Plik konfiguracyjny traccar.xml z bazą danych MySQL
Plik konfiguracyjny traccar.xml z bazą danych MySQL
Zapisz zmiany w traccar.xml CTRL+o
Zapisz zmiany w traccar.xml CTRL+o
Wyjdź z edycji pliku traccar.xml CTRL+x
Wyjdź z edycji pliku traccar.xml CTRL+x
Restart Raspberry Pi przez polecenie reboot
Restart Raspberry Pi przez polecenie reboot
Traccar z bazą danych MySQL
Traccar z bazą danych MySQL