Datenbanken

Postgresql - Tipps


Postgresql Datenbankserver erstmalig Passwort setzen unter Ubuntu

Wird der Postgres-Server unter Ubuntu direkt mit APT installiert, kann sich noch niemand daran anmelden, da der Systembenutzer noch nicht eingerichtet wurde. So wird der Benutzer „postgres“ mit dem Passwort „geheim“ in einem Terminal angelegt:

sudo -u postgres psql postgres

Danach ist man in der Postgres-Konsole und vergibt das Passwort:

postgres=# \password postgres

Neues Passwort eingeben: geheim

Geben Sie es noch einmal ein: geheim

postgres=#

Der \ muss auch eingegeben werden, da hiermit in der Postgres-Konsole ein Befehl eingeleitet wird. Es folgt sofort die zweimalige Eingabe des Passwortes.

Abmelden aus der Postgres-Konsole mit

postgres=# \q

Nun kann z.B. mit pgadmin3 und den eben eingegebenen Zugangsdaten komfortabel der Datenbankserver verwaltet werden.


MySQL - Tipps


MySQL User anlegen

MySQL öffnen:

mysql -u root -p

User für localhost anlegen:

mysql> GRANT ALL PRIVILEGES ON *.* TO 'user'@'localhost' IDENTIFIED BY 'pass' WITH GRANT OPTION;

User für Zugriff via Netzwerk anlegen:

mysql> GRANT ALL PRIVILEGES ON *.* TO 'user'@'%' IDENTIFIED BY 'pass' WITH GRANT OPTION;

Zum Prüfen:

mysql> use mysql;

mysql> select host,user,password from user;


MySQL Server via Netzwerk freigeben

edit /etc/mysql/my.cnf

     Zeile mit: bind-address = 127.0.0.1

     ersetzten: bind-address = 0.0.0.0

     dann mysql neustarten


Das MySQL Root-Passwort vergessen

/etc/init.d/mysql stop

mysqld --user=mysql --skip-networking --skip-grant-tables --datadir=/var/lib/mysql &

su - mysql -c 'mysqladmin --user root password NEUESPASSWORT'

/etc/init.d/mysql stop

/etc/init.d/mysql start

Damit wird MySql unter Umgehung des Netzwerkes und der Berechtigungen gestartet und der Prozess in den Hintergrund verbannt. Danach kann der mysql-User das root Passwort neu setzen. Am Schluß MySql wieder normal starten.

Auf diese Art können auch andere Aktionen durchgeführt werden. z.B. einen User anlegen, wenn man den MySql root ganz gelöscht hat:

mysql -c 'mysql GRANT ALL PRIVILEGES ON *.* TO root@localhost IDENTIFIED BY Ein_Passwort WITH GRANT OPTION'

Alternativ kann nach

mysqld --user=mysql --skip-networking --skip-grant-tables --datadir=/var/lib/mysql &

auch ein Login ohne Passwort als mysql erfolgen:

mysql --user mysql

Dann z.B. dem User root ein neues Passwort gegeben werden:

mysql > update user set password=password('neues_passwort') where user='root';

Bei „verhunzten“ Rechten erfolgt ein Update der Privileges:

mysql > UPDATE user SET Select_priv=Y, Insert_priv=Y, Update_priv=Y, Delete_priv=Y,Create_priv=Y,Drop_priv=Y,Reload_priv=Y,Shutdown_priv=Y,Process_priv=Y,File_priv=Y WHERE user='root';

Wichtig:

Vor der ganzen Aktion am besten den Netzwerkstecker ziehen oder dafür sorgen, dass niemand anderes via Netz auf den Port 3306 zugreifen kann. Der Mysql-Server ist in der Zwischenzeit ungeschützt.