Informationen zum "mysql" Schema gesucht

Informationen zum "mysql" Schema gesucht

am 07.03.2007 16:03:33 von Phil Meier

Hi NG

Bin auf der Suche nach Dokumentation zum "mysql" Schema. Die Doku zum
"information_schema" Schema habe ich
(http://dev.mysql.com/doc/refman/5.1/de/information-schema.h tml), aber
etwas entsprechendes zum "mysql" Schema habe ich bisher leider nicht
gefunden?

Hat mir jemand von Euch einen Link?

Phil

Re: Informationen zum "mysql" Schema gesucht

am 07.03.2007 16:12:17 von Christian Kirsch

Am 07.03.2007 16:03 schrieb Phil:

Wer?

> Bin auf der Suche nach Dokumentation zum "mysql" Schema. Die Doku zum
> "information_schema" Schema habe ich
> (http://dev.mysql.com/doc/refman/5.1/de/information-schema.h tml), aber
> etwas entsprechendes zum "mysql" Schema habe ich bisher leider nicht
> gefunden?
>

AFAIK handelt es sich beim mysql um eine DB, die lediglich interne
Daten verwaltet. Alles, was Du darüber wissen kannst, verraten Dir
geeignete Abfragen an information_schema. *Tun* solltest Du mit dem
Inhalt von mysql gar nix, denke ich.

> Hat mir jemand von Euch einen Link?

In älteren MySQL-Versionen (vor 4) gab's m.W. im Zusammenhang mit
Benutzerrechten eine kurze Beschreibung von mysql.user, mysql.host und
mysql.db. Trotzdem: Finger weg.

Re: Informationen zum "mysql" Schema gesucht

am 07.03.2007 17:24:32 von Phil Meier

Christian Kirsch schrieb:
>> Bin auf der Suche nach Dokumentation zum "mysql" Schema. Die Doku zum
>> "information_schema" Schema habe ich
>> (http://dev.mysql.com/doc/refman/5.1/de/information-schema.h tml), aber
>> etwas entsprechendes zum "mysql" Schema habe ich bisher leider nicht
>> gefunden?
>>
>
> AFAIK handelt es sich beim mysql um eine DB, die lediglich interne
> Daten verwaltet. Alles, was Du darüber wissen kannst, verraten Dir
> geeignete Abfragen an information_schema. *Tun* solltest Du mit dem
> Inhalt von mysql gar nix, denke ich.
>
Danke für Deine Meinung.

Habe gerade per googling eine andere Meinung gefunden:
http://www-user.tu-chemnitz.de/~dgr/mysql-einf/teil32.html

>> Hat mir jemand von Euch einen Link?
>
> In älteren MySQL-Versionen (vor 4) gab's m.W. im Zusammenhang mit
> Benutzerrechten eine kurze Beschreibung von mysql.user, mysql.host und
> mysql.db. Trotzdem: Finger weg.

Wie komme ich z.B. an die Information, welche MySQL User definiert sind
wenn nicht per Zugriff auf die mysql-DB?

SELECT * FROM mysql.user;

Der Hintergrund meiner Frage ist, dass ich in einer Applikation
DBA-Funktionalität implementieren muss wie:
* User anlegen und löschen.
* Abfrage ob eine bestimmte Tabelle/Spalte existiert oder nicht.
* etc.

Deshalb interessiert mich die Information, ob ich die mysql-System-DB
für manche Funktionen verwenden soll oder besser nicht.

Re: Informationen zum "mysql" Schema gesucht

am 07.03.2007 17:43:15 von Axel Schwenke

Phil wrote:
> Christian Kirsch schrieb:

>> AFAIK handelt es sich beim mysql um eine DB, die lediglich interne
>> Daten verwaltet.
....
>> In älteren MySQL-Versionen (vor 4) gab's m.W. im Zusammenhang mit
>> Benutzerrechten eine kurze Beschreibung von mysql.user, mysql.host und
>> mysql.db. Trotzdem: Finger weg.
>
> Wie komme ich z.B. an die Information, welche MySQL User definiert sind
> wenn nicht per Zugriff auf die mysql-DB?
>
> SELECT * FROM mysql.user;

Ja, das ist so ziemlich das einzig sinnvolle, was du an Abfrage an
Tabellen in der `mysql` Datenbank tun kannst. Schon wenn du die
vergebenen Rechte erfahren willst, ist SHOW GRANTS besser als SELECT.

> Der Hintergrund meiner Frage ist, dass ich in einer Applikation
> DBA-Funktionalität implementieren muss wie:
> * User anlegen und löschen.
> * Abfrage ob eine bestimmte Tabelle/Spalte existiert oder nicht.
> * etc.
>
> Deshalb interessiert mich die Information, ob ich die mysql-System-DB
> für manche Funktionen verwenden soll oder besser nicht.

Wenn du als MySQL-Superuser unterwegs bist, kannst du die Tabellen
aus `mysql` abfragen und auch modifizieren. Entsprechende Hinweise
gibt das Handbuch. Allerdings gibt es gerade für das Modifizieren
i.d.R. geeignetere Sprachmittel. Also statt UPDATE auf mysql.user
besser GRANT/REVOKE etc. Eigene Tabellen anlegen oder vorhandene
Tabellen zu erweitern, solltest du dir allerdings verkneifen.


XL