Stephan: MySQL wwwrun Zugriff auf Datenbank

Hallo,

ich habe eine MySQL-Datenbank zusammengebaut und will auf diese nun nicht nur als root zugreifen, sondern halt als wwwrun ...
Meine frage ist nun, wie schaffe ich es, dass MySQL wwwrun Zugang zu dieser Datenbank erteilt?

Gruß und Dank

Stephan

  1. hi stephan,

    mysql hat eine interne userverwaltung (hat nix mit unix-passwd zu tun!) die userdaten werden in den grant-tables gespeichert.

    use mysql;
    show tables;

    in der tabelle user befinden sich alle user, die auf die datenbank zugreifen dürfen (ausgangsstadium meistens nur root).

    um einen neuen user hinzuzufügen brauchst du nur nen neuen datensatz erstellen:

    insert into user.....

    die anderen spalten (priv....) bilden das privilege-system von mysql. in ihnen wird definiert, welcher user, welche befehle ausführen darf

    achja: das passwort muß mit dem mysql-crypt verschlüsselt werden:

    also:

    insert into user (host,user,password) values(localhost,wwwrun,password(deinpasswort));

    cu
    pete

    1. Hallo,

      achja: das passwort muß mit dem mysql-crypt verschlüsselt werden:

      und wie krieg ich das PW so verschlüsselt?

      Gruß
      Stephan

      1. hi stephan,

        insert into user (host,user,password) values(localhost,wwwrun,password(deinpasswort));

        ich hab dich wohl ein bißchen verwirrt?!
        das password(deinpasswort) erledigt schon alles.
        also einfach dein passwort mit "deinpasswort" ersetzen und schon klappt alles wunderbar!

        bevor du aber online gehst solltest du dich aber über das rechtesystem mal informieren, damit du nicht jedem user vollen zugriff gibst

        cu pete

        1. Hallo nochmal,

          insert into user (host,user,password) values(localhost,wwwrun,password(deinpasswort));

          ich hab dich wohl ein bißchen verwirrt?!

          allerdings *g*

          das password(deinpasswort) erledigt schon alles.
          also einfach dein passwort mit "deinpasswort" ersetzen und schon klappt alles wunderbar!

          ich hab jetzt folgendes zusammengebastelt:

          <html>
          <head>
          <title> - MySQL and PHP3 - </title>
          </head>
          <body>
          <basefont face="Verdana" size="2">
          <script language="php">
          $verbindung = mysql_connect("localhost","root","ferengi");
          if (!$verbindung)
          {
          echo "Es ist keine Verbindung möglich!\n";
          exit;
          }

          $datenbank = mysql_select_db("mysql");
          if (!$datenbank)
          {
          echo "Kann Datenbank nicht öffnen!\n";
          exit;
          }

          $insert = mysql_query("insert into user (host,user,password) values(localhost,wwwrun,password(wwwrun))");
          print "Datensatz erstellt";
          echo mysql_error();
          mysql_close($verbindung);
          </script>
          </body>
          </html>

          Und wenn ich das dann ausführe kriege ich:

          Datensatz erstelltUnknown column 'localhost' in 'field list'

          Was hab ich falsch gemacht?

          bevor du aber online gehst solltest du dich aber über das rechtesystem mal informieren, damit du nicht jedem user vollen zugriff gibst

          eigentlich will ich damit im Intranet bleiben ... trotzdem danke für den tip

          Gruß
          Stephan

          1. hi stephan,

            Und wenn ich das dann ausführe kriege ich:

            Datensatz erstelltUnknown column 'localhost' in 'field list'

            Was hab ich falsch gemacht?

            mysql weiß nicht, in welche datenbank du etwas einfügen möchtest. unter php gibts dafür den befehl mysql_select:

            mysql_select_db("mysql",$datenbank);

            mysql steht für die grant-tables. ne andere datenbank heißt beispielsweise stephan oder blubb oder was weiß ich...

            ich wollte damit eigentlich nur sagen, daß die datenbank mysql nichts mit dem produkt, der datenbank mysql auf sich hat:

            mysql_select_db("stephan",$datenbank);

            ach - alles unheimlich kompliziert :-)
            ich hoffe, daß das dir jetzt zu deinem durchbruch verhilft...

            cu pete

            1. Hallo,

              nachdem ich nun ein paar Stunden drüber geschlafen und mir die Datei nochmal auf dem Bildschirm gerufen hab, kam mir ein Geistesblitz ;)

              $insert = mysql_query("insert into user (Host, User, Password) values ('localhost', 'wwwrun', password('wwwrun'))");

              und es hat funktioniert

              vielen Dank für deine Hilfe!

              Stephan

              1. Hallo,

                und es hat funktioniert

                So dachte ich zumindest ... wenn ich mit phpMyAdmin die user-Tabelle anschaue, ist da jetzt ein user "wwwrun" mit einem verschlüsselten Passwort.
                Wenn ich aber versuche mich damit am Linux Promt (heißt das so? *g*) bei MySQL anzumelden gibts das :

                ERROR 1045: Access denied for user: 'wwwrun@localhost' (Using password: YES)

                (die selbe Meldung auch, wenn ich per PHP3 auf eine DB zugreifen möchte)

                Stephan

                1. Wenn ich aber versuche mich damit am Linux Promt (heißt das so? *g*) bei MySQL anzumelden gibts das :

                  ERROR 1045: Access denied for user: 'wwwrun@localhost' (Using password: YES)

                  (die selbe Meldung auch, wenn ich per PHP3 auf eine DB zugreifen möchte)

                  Stephan

                  Hallo,
                  Klar, du mußt ja MySql erst sagen das es einen neuen eintrag gibt. In phpMyAdmin hast du die möglichkeit den server neu zustarten. wenn du das gemacht hast sollte er eigentlich auch den user kennen.

                  lg
                  Ludwig

                2. hi stephan,
                  ja, eine sache fehlte noch :-)

                  ERROR 1045: Access denied for user: 'wwwrun@localhost' (Using password: YES)

                  du mußt nach einer änderung in den grant-tables einen reload durchführen. beim php-admin gehst du dafür ins hauptmenü. da ist ein link "mysql reload" oder so.

                  dann müßte nun wirklich alles funken!
                  cu pete

                  1. du mußt nach einer änderung in den grant-tables einen reload durchführen. beim php-admin gehst du dafür ins hauptmenü. da ist ein link "mysql reload" oder so.

                    das wollte er immer nicht ... hab ich also per telnet erledigt ;)

                    Jetzt läuft es ... Vielen Dank an beide Helfer!

                    Stephan