Benutzer-Werkzeuge

Webseiten-Werkzeuge


database_server

Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

Beide Seiten der vorigen Revision Vorhergehende Überarbeitung
Nächste Überarbeitung
Vorhergehende Überarbeitung
database_server [2018/02/13 14:40]
admin
database_server [2018/02/16 00:32] (aktuell)
admin
Zeile 1: Zeile 1:
 ====== Datenbank-Server ====== ====== Datenbank-Server ======
-Initialisieren des Datenbankservers (root und weitere User sowie Parameter) einrichten+===== Installation ===== 
-<​code>​+<​code|user@host:~#> 
 +apt-get install mysql-server 
 +</code
 +===== Konfiguration ===== 
 +Um den MySQL-Server zu konfigurieren wird ein Tool mitgeliefert,​ welches 
 +direkt nach der Installation ausgeführt werden sollte: 
 +<​code|user@host:​~#​>
 mysql_secure_installation mysql_secure_installation
 +------------------------------------------------------------------
 +
 +NOTE: RUNNING ALL PARTS OF THIS SCRIPT IS RECOMMENDED FOR ALL MariaDB
 +      SERVERS IN PRODUCTION USE!  PLEASE READ EACH STEP CAREFULLY!
 +
 +In order to log into MariaDB to secure it, we'll need the current
 +password for the root user.  If you've just installed MariaDB, and
 +you haven'​t set the root password yet, the password will be blank,
 +so you should just press enter here.
 +
 +Enter current password for root (enter for none):
 +</​code>​
 +Hier wird man direkt nach einem Passwort für den ''​root''​-User gefragt.
 +Achtung, damit ist nicht der ''​root''​-User der Linux-Maschine gemeint,
 +sondern der Datenbank-''​root''​. Da man während der Installation nicht
 +um die Einrichtung eines Passwortes für den ''​root''​ gefragt wurde, lässt
 +man hier das Passwort leer und drückt enter:
 +<​code|user@host:​~#>​
 +OK, successfully used password, moving on...
 +
 +Setting the root password ensures that nobody can log into the MariaDB
 +root user without the proper authorisation.
 +
 +Set root password? [Y/n]
 +</​code>​
 +Da man nun ein Passwort setzen möchte, drückt man auf enter und tippt
 +das neue Passwort ein:
 +<​code|user@host:​~#>​
 +New password:
 +Re-enter new password:
 +Password updated successfully!
 +Reloading privilege tables..
 + ... Success!
 +
 +
 +By default, a MariaDB installation has an anonymous user, allowing anyone
 +to log into MariaDB without having to have a user account created for
 +them.  This is intended only for testing, and to make the installation
 +go a bit smoother. ​ You should remove them before moving into a
 +production environment.
 +
 +Remove anonymous users? [Y/n]
 +</​code>​
 +Die anonymen user entfernen wir mal an dieser Stelle mit enter. Danach
 +wird man gefragt, ob man den Fernzugriff als ''​root''​ deaktivieren möchte.
 +Ja, besser ist es.\\ 
 +<​code|user@host:​~#>​
 + ... Success!
 +
 +Normally, root should only be allowed to connect from '​localhost'​. ​ This
 +ensures that someone cannot guess at the root password from the network.
 +
 +Disallow root login remotely? [Y/n]
 +</​code>​
 +
 +Die Testdatenbank kann ruhig auch entfernt werden:
 +<​code|user@host:​~#>​
 + ... Success!
 +
 +By default, MariaDB comes with a database named '​test'​ that anyone can
 +access. ​ This is also intended only for testing, and should be removed
 +before moving into a production environment.
 +
 +Remove test database and access to it? [Y/n]
 +</​code>​
 +Am Ende lade man die Privilegien neu und dann wars das auch schon:
 +<​code|user@host:​~#>​
 + - Dropping test database...
 + ... Success!
 + - Removing privileges on test database...
 + ... Success!
 +
 +Reloading the privilege tables will ensure that all changes made so far
 +will take effect immediately.
 +
 +Reload privilege tables now? [Y/n]
 + ... Success!
 +
 +Cleaning up...
 +
 +All done!  If you've completed all of the above steps, your MariaDB
 +installation should now be secure.
 +
 +Thanks for using MariaDB!
 +</​code>​
 +
 +===== Test =====
 +Man mann sich nun auf dem Datenbankserver in die MySQL-Konsole als root einloggen.
 +''​-p''​ ohne Passwort bewirkt dabei, dass man nach dem Passwort geprompted wird, statt es der Kommandozeile als Argument zu übergeben. \\ 
 +Wichtig!! Passwörter niemals in Kommandos eintippen!
 +<​code|user@host:​~#>​
 +mysql -u root -p
 +--------------------------------------------------------------------
 +Enter password:
 +Welcome to the MariaDB monitor. ​ Commands end with ; or \g.
 +Your MariaDB connection id is 10
 +Server version: 10.1.26-MariaDB-0+deb9u1 Debian 9.1
 +
 +Copyright (c) 2000, 2017, Oracle, MariaDB Corporation Ab and others.
 +
 +Type '​help;'​ or '​\h'​ for help. Type '​\c'​ to clear the current input statement.
 +
 +MariaDB [(none)]>​
 +</​code>​
 +Hier kann man sich anschauen, welche Datenbanken vorhanden sind:
 +<​code|user@host:​~#>​
 +MariaDB [(none)]>​ show databases;
 +------------------------------------------------------------------
 ++--------------------+
 +| Database ​          |
 ++--------------------+
 +| information_schema |
 +| mysql              |
 +| performance_schema |
 ++--------------------+
 +3 rows in set (0.00 sec)
 +</​code>​
 +Als nächstes kann man sich die Berechtigungen aller User ansehen:
 +<​code|user@host:​~#>​
 +MariaDB [(none)]>​ select * from information_schema.user_privileges;​
 +-------------------------------------------------------------------
 ++--------------------+---------------+-------------------------+--------------+
 +| GRANTEE ​           | TABLE_CATALOG | PRIVILEGE_TYPE ​         | IS_GRANTABLE |
 ++--------------------+---------------+-------------------------+--------------+
 +| '​root'​@'​localhost'​ | def           | SELECT ​                 | YES          |
 +| '​root'​@'​localhost'​ | def           | INSERT ​                 | YES          |
 +| '​root'​@'​localhost'​ | def           | UPDATE ​                 | YES          |
 +| '​root'​@'​localhost'​ | def           | DELETE ​                 | YES          |
 +| '​root'​@'​localhost'​ | def           | CREATE ​                 | YES          |
 +| '​root'​@'​localhost'​ | def           | DROP                    | YES          |
 +| '​root'​@'​localhost'​ | def           | RELOAD ​                 | YES          |
 +| '​root'​@'​localhost'​ | def           | SHUTDOWN ​               | YES          |
 +| '​root'​@'​localhost'​ | def           | PROCESS ​                | YES          |
 +| '​root'​@'​localhost'​ | def           | FILE                    | YES          |
 +| '​root'​@'​localhost'​ | def           | REFERENCES ​             | YES          |
 +| '​root'​@'​localhost'​ | def           | INDEX                   | YES          |
 +| '​root'​@'​localhost'​ | def           | ALTER                   | YES          |
 +| '​root'​@'​localhost'​ | def           | SHOW DATABASES ​         | YES          |
 +| '​root'​@'​localhost'​ | def           | SUPER                   | YES          |
 +| '​root'​@'​localhost'​ | def           | CREATE TEMPORARY TABLES | YES          |
 +| '​root'​@'​localhost'​ | def           | LOCK TABLES ​            | YES          |
 +| '​root'​@'​localhost'​ | def           | EXECUTE ​                | YES          |
 +| '​root'​@'​localhost'​ | def           | REPLICATION SLAVE       | YES          |
 +| '​root'​@'​localhost'​ | def           | REPLICATION CLIENT ​     | YES          |
 +| '​root'​@'​localhost'​ | def           | CREATE VIEW             | YES          |
 +| '​root'​@'​localhost'​ | def           | SHOW VIEW               | YES          |
 +| '​root'​@'​localhost'​ | def           | CREATE ROUTINE ​         | YES          |
 +| '​root'​@'​localhost'​ | def           | ALTER ROUTINE ​          | YES          |
 +| '​root'​@'​localhost'​ | def           | CREATE USER             | YES          |
 +| '​root'​@'​localhost'​ | def           | EVENT                   | YES          |
 +| '​root'​@'​localhost'​ | def           | TRIGGER ​                | YES          |
 +| '​root'​@'​localhost'​ | def           | CREATE TABLESPACE ​      | YES          |
 ++--------------------+---------------+-------------------------+--------------+
 +28 rows in set (0.00 sec)
 +</​code>​
 +Da die Datenbank frisch ist, sollte hier nur der ''​root''​-User stehen und alle
 +Privilegien besitzen. \\
 +Man kann sich auch anschauen auf welchem wege sich ein User gegen die Datenbank authentifiziert,​ mit ''​show grants;''​ für den aktuell eingeloggten User oder mit ''​show grants for heinz;''​ für heinz:
 +<​code|user@host:​~#>​
 +MariaDB [(none)]>​ show grants;
 +------------------------------------------------------------------
 ++------------------------------------------------------------------------------------------------+
 +| Grants for root@localhost ​                                                                     |
 ++------------------------------------------------------------------------------------------------+
 +| GRANT ALL PRIVILEGES ON *.* TO '​root'​@'​localhost'​ IDENTIFIED VIA unix_socket WITH GRANT OPTION |
 +| GRANT PROXY ON ''​@'​%'​ TO '​root'​@'​localhost'​ WITH GRANT OPTION ​                                 |
 ++------------------------------------------------------------------------------------------------+
 +2 rows in set (0.00 sec)
 </​code>​ </​code>​
 +Hier sieht man, dass der ''​root''​ sich über einen
 +[[https://​en.wikipedia.org/​wiki/​Unix_domain_socket|unix socket]]
 +authentifiziert.\\ ​
 +Nun kann man mit der Installation von [[phpmyadmin|phpMyAdmin]] fortfahren um
 +die Datenbanken auf dem Datenbankenserver über eine Weboberfläche zu administrieren.
  
database_server.1518529205.txt.gz · Zuletzt geändert: 2018/02/13 14:40 von admin