Hat man mehrere VPS, möchte aber nicht auf jedem extra MySQL / MariaDB / SQLite / … installieren oder möchte alle Datenbanken auf einem zentralen Server – für diejenigen ist dieses Tutorial. Wer lieber MySQL statt MariaDB nutzt, braucht nur den apt-get Befehl anpassen. Ich empfehle jedoch die Nutzung von MariaDB da es u.A. sicherer durch schnellere Updates ist. Dieser Guide wurde für Debian / Ubuntu geschrieben, bei auf RHEL basierenden Systemen können Befehle also abweichen.
1. MariaDB installieren und konfigurieren
apt-get update
apt-get upgrade
apt-get install nano
Für Debian 7:
apt-get install python-software-properties
apt-key adv –recv-keys –keyserver keyserver.ubuntu.com 0xcbcb082a1bb943db
add-apt-repository ‚deb http://ftp.hosteurope.de/mirror/mariadb.org/repo/10.0/debian wheezy main‘
Für Ubuntu 14.04:
apt-get install software-properties-common
apt-key adv –recv-keys –keyserver hkp://keyserver.ubuntu.com:80 0xcbcb082a1bb943db
add-apt-repository ‚deb http://mirror2.hs-esslingen.de/mariadb/repo/10.0/ubuntu trusty main‘
Die Befehle für weitere Distributionen und Versionen finden sich [HIER].
Fortsetzung:
apt-get update
apt-get install mariadb-server
[MariaDB Root Passwort festlegen und bestätigen]
mysql_secure_installation
[1. Root Passwort eingeben, 2. n, alle weiteren Prompts einfach mit Enter bestätigen]
2. MariaDB für Remote Zugriff konfigurieren
nano /etc/mysql/my.cnf
Hier nach
bind-address = 127.0.0.1
suchen und eine Raute (#) davor setzen (kommentieren):
#bind-address = 127.0.0.1
Anschließend MariaDB neustarten:
service mysql restart
oder
/etc/init.d/mysql restart
3. Datenbank übertragen
Zuerst die Datenbank auf dem vorigen Host dumpen:
mysqldump -u root -p[MySQL Root Passwort] [Name der Datenbank] > [Name für .sql Datei].sql
Dieser SQL Dump kann nun übertragen werden, indem man sich mit dem neuen Datenbank Server verbindet und den Dump anschließend per SCP überträgt:
scp root@[Name des alten Host]:/[Pfad zur .sql] ./
4. Datenbank einrichten
mysql -u root -p[MySQL Root Passwort]
create database [Name für Datenbank];
exit
mysql -u root -p[MySQL Root Passwort] [Name der Datenbank in die der Dump soll] < [Name / Pfad der / zur SQL Datei]
grant all privileges on [Name der Datenbank].* to [Irgend ein Nutzername]@[IP oder Domain des Servers, der auf die Datenbank zugreifen dürfen sollen darf] identified by ‚[Passwort für diesen Nutzer]‘;
flush privileges;
5. Remote Datenbank nutzen
Da nun eine Remote Datenbank genutzt werden soll, muss die Konfiguration des Programms / CMS / … angepasst werden. Der Host ist die IP oder Domain des Datenbank Servers, der Nutzername (Username) dieser, den man bei „grant all privileges on…“ vergeben hat und das Passwort ist ebenso dieses, welches man in dieser Zeile festgelegt hat.
Optional: MySQL Port ändern
Für zusätzliche Sicherheit lässt sich noch der Port sehr einfach ändern, auf den der Remote SQL Server hört bzw auf den der Client Server zugreift. Auf dem Datenbank Server hierfür:
nano /etc/mysql/my.cnf
Und hier unter [mysqld] nach „port =“ aus der „3306“ eine andere Zahl machen. Anschließend die MariaDB neustarten:
service mysql restart
Um zu schauen, auf welchen Port die MariaDB nun hört:
netstat -plant
Die Konfiguration des Clients muss nun natürlich ebenso angepasst werden. In den meisten Fällen lässt sich ein anderer SQL Port direkt nach der IP / Domain des Datenbank Servers definieren. Beispiel:
define(‚DB_HOST‘, ‚123.45.67.89:12345‘);
(So könnte es in der wp-config.php von WordPress aussehen)
Schon hat man einen MariaDB Remote SQL Server!