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.