Shopware 6 Installation schlägt fehl

ich wollte gerade Shopware 6 auf meinem Testsystem installieren, jedoch bekomme ich immer folgenden Fehler:

 

(7/28) Starting
> bin/console database:migrate --all Shopware\\
        PHP Fatal error: Uncaught Doctrine\DBAL\DBALException: Malformed parameter "url". in /var/www/share/[name-der-Domain]/htdocs/development/vendor/doctrine/dbal/lib/Doctrine/DBAL/DriverManager.php:269
        Stack trace:
        #0 /var/www/share/[name-der-Domain]/htdocs/development/vendor/doctrine/dbal/lib/Doctrine/DBAL/DriverManager.php(148): Doctrine\DBAL\DriverManager::parseDatabaseUrl(Array)
        #1 /var/www/share/[name-der-Domain]/htdocs/development/platform/src/Core/Kernel.php(146): Doctrine\DBAL\DriverManager::getConnection(Array, Object(Doctrine\DBAL\Configuration))
        #2 /var/www/share/[name-der-Domain]/htdocs/development/src/Kernel.php(16): Shopware\Core\Kernel::getConnection()
        #3 /var/www/share/[name-der-Domain]/htdocs/development/bin/console(39): Shopware\Development\Kernel->__construct('dev', true, Object(Composer\Autoload\ClassLoader), 'dev-master@5920...')
        #4 {main}
          thrown in /var/www/share/[name-der-Domain]/htdocs/development/vendor/doctrine/dbal/lib/Doctrine/DBAL/DriverManager.php on line 269

Execution aborted, a subcommand failed!

 

weiß da vielleicht einer ne lösung?

 

Mit freundlichen Grüßen

CounterCookies

Hast du vielleicht eine “#” in deinem Datenbank-Passwort? Das war bei mir das Problem.

schau mal, ob du irgendwelche sonderzeichen im passwort für die DB hast, bei mir war es eine # die Probleme gemacht hat

Was hast du denn in das Feld „url“ eingegeben? Du kannst ja mal in die .psh.yaml.override im Shopware-Verzeichnis reinschauen.

Danke an @kraeft21 , das hat das erste Problem schon mal gelöst.

Leider stehe ich jetzt vor einem weiteren problem 

 

(13/28) Starting
> mysql -u 'username' -p'Passwort' -h 'MYSQL-Server-IP' --port='3306' -e "DROP DATABASE IF EXISTS \`db-1_test\`"
        ERROR 1044 (42000) at line 1: Access denied for user 'username'@'%' to database 'db-1_test'

 

Die Dev-Installation legt 3 Datenbanken an. Eine für die Installation, eine weitere für die e2e-tests und eine dritte für unittests.

 

1 „Gefällt mir“

@Moritz Naczenski schrieb:

Die Dev-Installation legt 3 Datenbanken an. Eine für die Installation, eine weitere für die e2e-tests und eine dritte für unittests.

 

Kann man die Datenbanknamen für die weiteren Datenbanken irgendwo anpassen? 

Hallo,

momentan kann man dies nicht per config o.ä. anpassen. Als „Quick-Fix“ kannst du die Datei dev-ops/common/actions/init-test-databases.sh anpassen und dort 

__DB_NAME___test bzw. __DB_NAME___e2e ersetzen

Wieso möchtest du diese Datenbanken denn ändern?

Ich habe bei der Installation mit MAMP auch Probleme. 

(3/28) Starting
> mysql -u 'shopware' -p'shopware' -h 'localhost' --port='3306' -e "DROP DATABASE IF EXISTS \`shopware\`"
	Warning: Using a password on the command line interface can be insecure.
	ERROR 1045 (28000): Access denied for user 'shopware'@'localhost' (using password: YES)
	
Execution aborted, a subcommand failed!

Der Nutzer shopware mit dem Passwort shopware habe ich über phpmyadmin erstellt.

In der .psh.yaml.dist habe ich die Einträge wie in den Docs verändert:

  DB_USER: "shopware"
  DB_PASSWORD: "shopware"
  DB_HOST: "localhost"
  DB_PORT: "3306"
  DB_NAME: "shopware"
  APP_URL: "http://shopware:8000"
  APP_ENV: "dev"

Da in den Docs localhost in Sternchen steht habe ich auch das ausprobiert:

DB_HOST: "*localhost*"

Das hat so wie erwartet auch nicht funktioniert. Wieso steht localhost in den Docs in Sternchen?

Weiß jemand wieso keine Verbindung zur Datenbank aufgebaut werden kann? 

Das ist ja nur ein Shell-Befehl, öffne das Terminal und probiere aus, ob das funktioniert:

mysql -u 'shopware' -p'shopware' -h 'localhost' --port='3306'

Entweder passt der Host, das Passwort oder der user nicht. 

Das funktioniert auch nicht. Habe den Benutzer noch mal erstellt, um Tippfehler auszuschließen, aber es funktioniert trotzdem nicht. 

Edit: MySQL nutzt bei mir den Port 8889 (steht bei MAMP unter MySQL oben rechts in der Ecke). Eine Verbindung kann ich aber auch über den Port nicht aufbauen. 

@Larineso schrieb:

Das funktioniert auch nicht. Habe den Benutzer noch mal erstellt, um Tippfehler auszuschließen, aber es funktioniert trotzdem nicht. 

Das gleiche Problem bei mir.

Mit dem Benutzer root und dem Passwort root kann ich eine Verbindung zur Datenbank aufbauen. Sowohl über den Port 3306, als auch über den Port 8889. 

Dafür bekomme ich jetzt eine andere Fehlermeldung:

(5/28) Starting
> mysql -u 'root' -p'root' -h 'localhost' --port='3306' shopware < vendor/shopware/platform/src/Core/schema.sql
	Warning: Using a password on the command line interface can be insecure.
	ERROR 1064 (42000) at line 1: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'JSON NOT NULL,
	    `author` VARC' at line 9
	
Execution aborted, a subcommand failed!

 

Welche MySQL Version hast du denn installiert? 

Die Version 5.6.38. Muss ich die auf 5.7 upgraden? 

Edit: MySQL 5.7.21 or higher steht ja in den Docs. Also versuche ich mal das zu upgraden.

Die Installation lief nun durch, allerdings bekomme ich beim Aufruf der Domains einen 403 permission Fehler. Muss ich noch Berechtigungen verändern?

Edit: ich vermute da funktioniert doch irgendwas nicht. http://shopware:8000/admin wird nicht gefunden (404). Habe wie in den Docs den shopware-Ordner ausgewählt.

Edit2: Bin bei den Docs nach dem Bild gegangen, auf dem der shopware-Ordner ausgewählt wurde. Richtig ist shopware/development/public, so wie es auch in der Beschreibung steht.

@kraeft21 schrieb:

Hast du vielleicht eine „#“ in deinem Datenbank-Passwort? Das war bei mir das Problem.

Der Bug besteht weiterhin, verwendet man ein „#“ oder „$“ im MySQL Passwort, gibt es den beschrieben Fehler. Gerade gestetet mit der aktuellsten SW Version und MySQL 5.7.30.

Das Problem sollten doch sehr viele Leute haben, oder?