Datenbanken werden nicht angelegt

  • So wir kommen der Sache schon näher.


    CF:
    Dieser Code ist Korrekt:

    Code
    1. Q1="CREATE DATABASE IF NOT EXISTS $VAR_C;"
    2. Q2="GRANT ALL PRIVILEGES ON $VAR_C.* TO $VAR_D@'%' IDENTIFIED BY '$VAR_E' WITH GRANT OPTION;"
    3. Q3="FLUSH PRIVILEGES;"
    4. SQL="${Q1}${Q2}${Q3}"


    Ich habe im Kunden WP nachgesehen und das Stimmt mit dem Code überein.


    Nun zu dem Passwortproblem:


    Wie andere schon geschrieben haben, kann sich kein Kunde, wo die DB und der DB User mit dem TB web Script erstellt wurden einloggen.


    Bei den DB's und DB Usern die mit dem aus dem Zitat erstellten Code erstellt wurden, können sich einloggen. Sogar die Berechtigung der DB passt. Nur der Benutzer hat keine, mit dem TB Script aber auch nicht.

    So ein kleiner Erfolg:


    Durch Tante Google bin ich auf den Code gestoßen:



    ....


    <Edit />


    Ok dem Passwortproblem bin ich auf die Schliche gekommen:


    Es können sich keine DB User mit dem Host % via phpMyAdmin einloggen, User mit dem Host localhost aber schon.


    Ein Verbessrungsvorschlat hätte ich CF:


    Wenn der Hoster die DB anlegt, sollte er auch gleich das passwort mitvergeben. Den PW Generator noch hinzufügen und fertig.
    Im Kuden WP dann unter Datenbank auch das PW mit anzeigen lassen. So weiss der Kunde welches es ist und kann es nach bedarf ändern.

    Edited once, last by BdMdesigN ().

  • Jain. Du kannst mehrere DB's pro Kunden anlegen, aber alle DB User haben dann auch andere bezeichnungen.


    Läuft jetzt alles so wie es soll, nur weiss ich immer noch nicht, wie TB die DB Passwörter für die DB User verrgiebt.


    Ist es


    A) Das Webinterface Passwort?
    B) Das FTP User Passwort?
    C) Oder wird ein neues Generiert?
    D) Muss der Kunde gar ein PW selber anlegen?


    Ich bin jetzt allen fehlern auf die Schliche gekommen, habe dafür den ganzen Tag geopfert.
    Habe alles 10x geprüft und getestet. Siehe auch Post 41 oberen Teil.


    Das Script macht nun was es soll, hoffe ich zumindest ^^.
    Bin aber noch nicht fertig, erstmal phpMyAdmin den % Host beibringen, danach mach ich weitere Tests.

  • die passwörter werden random generiert meine ich



    % solltest du eigentlich von allen ip's connecten dürfen ;)


    Sofern dein mysql nicht nur auf localhost lauscht ;)

  • Also TekBASE 7.6.6 übergibt


    ./web dbcreate kd10001 dbname dbuser dbpass


    Q1="CREATE DATABASE IF NOT EXISTS $VAR_C;"
    Q2="GRANT ALL PRIVILEGES ON $VAR_C.* TO $VAR_D@'%' IDENTIFIED BY '$VAR_E' WITH GRANT OPTION;"
    Q3="FLUSH PRIVILEGES;"
    SQL="${Q1}${Q2}${Q3}"



    Passwort ist das aktuelle FTP Passwort. Der User kann das PW im Kundenbereich ändern. Alles so wie es auch in der Skript Datei steht. Ich weiß nicht wieso du das da so tauscht vielleicht steh ich auf dem Schlauch. Da standardmäßig IMMER nach der VAR_A der Username kommt und dann die Werte. Auch kann man mehrere DBs für einen Kunden anlegen da jede DB einen User bekommt beide heißen gleich. DB1001 hat den User DB1001 etc.


    Worüber erstellst du die DB aus dem Adminbereich oder im Kundenbereich? Own Modules? Widget?

    Bitte die Forumsuche und das Handbuch verwenden. Wenn die Suche erfolglos war, bitte ein Thema erstellen und das Problem ausführlich beschreiben. Dieser Ablauf spart Zeit und unnötige Fragen zu immer gleichen Problemen. Sie können aber auch im Kundenbereich ein Support-Ticket erstellen.


    Gefällt Ihnen TekLab? facebook-1.pngtwitter-1.pnglinkedin-1.png

  • @CF du hast dich sicher auf mich bezogen ;)


    Das 1Tekbase User mehrere DB's haben kann weiss ich ;)


    Ich habs bissl falsch ausgedrückt ;)


    1Mysql user kann nur 1DB haben ;) und keine 2 oder mehr

  • Ich meine Bmdesign ;)

    Bitte die Forumsuche und das Handbuch verwenden. Wenn die Suche erfolglos war, bitte ein Thema erstellen und das Problem ausführlich beschreiben. Dieser Ablauf spart Zeit und unnötige Fragen zu immer gleichen Problemen. Sie können aber auch im Kundenbereich ein Support-Ticket erstellen.


    Gefällt Ihnen TekLab? facebook-1.pngtwitter-1.pnglinkedin-1.png


  • Das ist ja auch richtig nach meinen ganzen Tests, ich wollte nur die Fehler finden, warum mit Deinen Script bei mir eben keine DB'S angelegt wurden (mit dem aus dem Netz aber schon) und warum sich die User nicht am DB Server einloggen konnten.


    Obwohl $VAR_B in diesen Fall überflüßig wäre, da die Var für die DB null Relevanz hat. Da ja das PHP Script die fertigen Daten an das Bash Script web übergibt und dieses dann die Daten weiter verarbeitet. Im diesen Fall sagt ja schon das PHP Script für welchen Kunden die Datenbanken sein sollen und weisst die DB's den Kunden zu.


    Somit müssten eigendlich nur die die Werte für dbname, dbuser und dbpasswort übergeben werden. Aber egal Funktioniert ja auch so.



    .....


    Passwort ist das aktuelle FTP Passwort. Der User kann das PW im Kundenbereich ändern. Alles so wie es auch in der Skript Datei steht. Ich weiß nicht wieso du das da so tauscht vielleicht steh ich auf dem Schlauch.
    ...

    Das ist aber für den Kunden nicht ersichtlich, der weiss nicht welches PW das ist, da unter "Datenbanken" nur die Datenbank und der Datenbank User aufgefürt sind (Name, Login, IP), aber nicht das PW. Bei anderen Hostern habe ich auch das PW bei den mySQL Logindaten im Kunden WP.



    ...


    Auch kann man mehrere DBs für einen Kunden anlegen da jede DB einen User bekommt beide heißen gleich. DB1001 hat den User DB1001 etc.
    ...


    Das stimmt so nicht. Leg mal bitte ein Kunden an und dann für diesen Kunden 2 DB's, aber bitte auf einen Rootserver der nicht als Kundenroot/VServer eingetragen ist. Webspace erlauben sollte auf dem Root auch aktiviert sein.


    Dann wirst Du sehen das die erste DB kdn_1234 mit dbuser kdn_98765 und die zweite DB knd_5678 mit dem DBuser kdn_23456 angelegt wird.


    Also DB != DBuser, beide haben unterschiedliche bezeichnungen.



    ...
    Worüber erstellst du die DB aus dem Adminbereich oder im Kundenbereich? Own Modules? Widget?

    Na über den Adminbereich, der Kunde (in diesen Fall ich selber) selbst kann im Kundenbereich keine anlegen, da keiner der Server als Kundenroot oder Kunden VServer läuft.



    ...



    1Mysql user kann nur 1DB haben ;) und keine 2 oder mehr


    Das ist leider nicht richtig.


    Ich kann mysqluser xyz soviele Datenbanken zuweisen wie ich will. Das wird nämlich in den Benutzerrechten geregelt. Der mysqluser xyz kann das aber nicht.
    Aber im Hostingbereich unüblich, da die ganzen Scripte immer für jede anzulegende DB auch ein auch ein neuen DBUser anlegen.

  • Das man bei mysql mit 1user auch mehr DB's haben kann ist mir bewusst nur bei tekbase ist dies nicht so ;)


    Ka was mit deinem script nicht funktioniert? Bei mir funktioniert das script von CF erste sahne?

  • Das man bei mysql mit 1user auch mehr DB's haben kann ist mir bewusst nur bei tekbase ist dies nicht so ;)


    Ka was mit deinem script nicht funktioniert? Bei mir funktioniert das script von CF erste sahne?


    Das funktioniert nicht mit dem Script von CF:

    Code
    1. mysqlpwd=`cat /etc/mysql/settings.ini | grep -i password | awk '{print $2}'`
    2. mysqlusr=`cat /etc/mysql/settings.ini | grep -i login | awk '{print $2}'`


    Das hingegen schon:


    Code
    1. mysqlusr=`cat /etc/mysql/settings.ini | awk '{print $1}'`
    2. mysqlpwd=`cat /etc/mysql/settings.ini | awk '{print $2}'`


    Obwohl


    Code
    1. mysqlpwd=`cat /etc/mysql/settings.ini | grep -i password | awk '{print $2}'`
    2. mysqlusr=`cat /etc/mysql/settings.ini | grep -i login | awk '{print $2}'`


    mit den Test Script aus dem Netz sauber funktioniert, deswegen hatte ich dem Code erstmal keine Beachtung geschenkt.


    Erst als ich die ganzen VARs in ein echo gepackt hatte, hab ich gesehen, das mysqlusr dann immer leer war.
    Einzelnd jedoch immer gefüllt.


    Nun Du hast Debian ich hab opensue, alleine das ist schon der Unterschied.


    Ich bin aber ja nicht alleine mit dem Problem, das keine Datenbanken angelegt werden konnten/können.


    Auch CF's Anweisung


    Code
    1. ./web dbcreate xxx dbnamexy dbuserxy dbpasswdxy

    war für mich als Programmierer nicht ganz klar.


    Eindeutiger wäre das gewesen:


    Code
    1. ./web dbcreate Kunde dbname dbuser dbpass


    Dann hätte ich nich so viel Zeit mit den Variablen verschwendet.


    Aber nun gut, wenn phpMyAdmin nun auch User mit Host % das einloggen erlaubt, werde ich mich um das letzte Problem kümmern.
    Nämlich diesen:


    Code
    1. mysqlusr=`cat /etc/mysql/settings.ini | grep -i login | awk '{print $2}'`
    2. mysqlpwd=`cat /etc/mysql/settings.ini | grep -i password | awk '{print $2}'`


    Mir ist immer noch nicht klar, warum das in CF sein Script nicht geht und im Script aus dem netz schon.



    Aber auch den Fehler komme ich auf die Schliche.


    <Edit />

    Code
    1. mysqlpwd=`cat /etc/mysql/settings.ini | grep -i password | awk '{print $2}'`
    2. mysqlusr=`cat /etc/mysql/settings.ini | grep -i login | awk '{print $2}'`

    Funktioniert nun auch, aber es ist mir ein Rätsel.


    Ok ich habe diesmal mit mc (direkt auf dem server und nicht mit dem ftps Editor) die settings.ini kontrolliert und neu gemacht.
    Mir ist da eine kleine Sache aufgefallen:


    Hinter dem Hauptadmin stand am Zeilenende ein ^M.


    Dem Script aus dem Netz war das Wurscht aber dem Script von CF eben nicht.
    Was dazu führte, das eben die Var $mysqlusr leer blieb, auch in einen Array.


    Das Problem an der Sache ist aber, es wurde keine Fehlermeldung diesbezüglich ausgeworfen. Ich weiss schon warum ich kein Windows mag und lieber alles unter Linux mache.

    Edited 2 times, last by BdMdesigN ().

  • Stimmt DBname und DBuser sind nicht die gleichen da der Datenbankname selbst gewählt werden kann und der DB User aus der Kundennummer generiert wird.

    Bitte die Forumsuche und das Handbuch verwenden. Wenn die Suche erfolglos war, bitte ein Thema erstellen und das Problem ausführlich beschreiben. Dieser Ablauf spart Zeit und unnötige Fragen zu immer gleichen Problemen. Sie können aber auch im Kundenbereich ein Support-Ticket erstellen.


    Gefällt Ihnen TekLab? facebook-1.pngtwitter-1.pnglinkedin-1.png

  • wieso bei dir aber niemand bei dem host % verbinden kann das ist komisch?

    Nein das ist default und gehört so, man muss erst phpMyAdmin auf tcp konfigurieren und Maria auf bind-address setzen. Debian hat phpMyAdmin und Maria anders konfiguriert als SuSE.

  • Also lauscht bei dir mysql nur auf localhost?


    Wenn ich mich recht erinnere ist es bei Debian aber auch so das die bind zeile ausgeklammert ist..


    Mit den Zeilenumbrüchen ist natürlich dann meistens auch so eine sache... ich hab anfangs auch ewig gebraucht bis ich dahinter gestiegen bin..



    Mittlerweile mache ich alles nur noch aif der console um solche probleme direkt zu entgehen

  • Ja genau Maria lauscht bei SuSE nur auf den localhost und auf meinen Debian 8 Server eben nicht (also laut config).

  • Jap und phpMyAdmin noch einstellen auf tcp und andere Sachen wie SSL und so.

  • Bei phpmyadmin musste ich bei suse nix machen? Eigentlich sollte es ja sowieso per tcp bzw socket connecten?



    SSL bringts ja eigentlich sowieso nur bei einem zertifikat...


    Aber macht in der tat sinn SSL zu verwenden hebt mmn das gefühl der sicherheit..



    Was mich an tekbase stört, ich hab z.B. eine globale phpmyadmin install das nocht auf jedem root apache php usw installiert werden muss, aber CF hat die changes welche nötig sind bisher noch immer net ins tekbase integriert... das man anstelle ip/phpmyadmin auch eine url angeben kann.. welche dann sogar beim klick auf den login noch den richtigen server auswählt sowie username einfügt nur das pw aus sicherheitsgründen wird da nicht geadden

  • Bei phpmyadmin musste ich bei suse nix machen? Eigentlich sollte es ja sowieso per tcp bzw socket connecten?
    ...

    ist phpMyAdmin auf den socket eingestellt, können sich nur die Anmelden wo der Host localhost ist. Bei tcp wird eine tpc Verbindung aufgebaut und somit sollten sich auch % Hoste anmelden können.



    ...
    SSL bringts ja eigentlich sowieso nur bei einem zertifikat...
    ...

    Die gibt es doch schon für Lau, ok 90 Tage Laufzeit und für wenig Geld gibt es auch schon welche mit 1 Jahr Laufzeit.
    Brauchst Du aber ein EV Zertifikat, musst Du halt tiefer in die Tasche greifen. Aber auch die hab ich schon für unter 100,- € im Monat gesehen.
    Man muss nur suchen.


    SSL ist Pflichtprogramm für ein Hoster.

  • ist phpMyAdmin auf den socket eingestellt, können sich nur die Anmelden wo der Host localhost ist. Bei tcp wird eine tpc Verbindung aufgebaut und somit sollten sich auch % Hoste anmelden können.


    Die gibt es doch schon für Lau, ok 90 Tage Laufzeit und für wenig Geld gibt es auch schon welche mit 1 Jahr Laufzeit.Brauchst Du aber ein EV Zertifikat, musst Du halt tiefer in die Tasche greifen. Aber auch die hab ich schon für unter 100,- € im Monat gesehen.
    Man muss nur suchen.


    SSL ist Pflichtprogramm für ein Hoster.

    das SSL Pflicht ist gebe ich dir recht ;) nur ob man da ein "Gratis" nehmen sollte habe ich so bissl meine Zweifel daran... und blöd ist halt mmn wie beschreiben das man auf jedem Server Apache php usw benötigt...




    wenn mich nicht alles täuscht ist doch die socket Verbindung solang du auf dem Server bleibst auch für "%" user irrelevant....


    man stellt ja ein worüber mit mysql verbunden wir nicht welche IP da zugelassen ist das macht ma mysql anhand von "%" das alle IP's auf die DB zugreifen können...