mysqldump: Couldn't execute 'SHOW PACKAGE STATUS

  • Författare
  • Meddelande

richard_st

html-kodare

  • Inlägg: 14
  • Blev medlem: 26 aug 2019, 05:23

mysqldump: Couldn't execute 'SHOW PACKAGE STATUS

Inlägg22 feb 2020, 14:25

Hej,

Jag har slutfört Eshop-uppgiften för KMOM06. Allt fungerar som det ska, men efter jag gör en backup med "mysqldump -uroot -p --routines --result-file=backup.sql eshop" och kör backup-filen så blir det problem. På produktsidan använder jag mig av två vyer, en för att få flera kategorier för samma produkt (vprodukt2kategori_multiple), och en för att få produktantalet på lagret (vprodukt_antal). Innan jag kör backupen så syns all information, men efter jag kör backup-filen så försvinner informationen om vilka kategorier produkten tillhör och antalet. Testar jag köra "SELECT * FROM vprodukt2kategori_multiple;" eller "SELECT * FROM vprodukt_antal;" före backupen så får man tillbaka det förväntade resultatet, men efter backupen så är resultatet tomt. Så det verkar som att problemet har med vyerna att göra, men jag förstår inte varför det blir så och vad jag ska göra för att lösa det.

När jag tar backupen så får jag ett meddelande i terminalen som säger:

"mysqldump: Couldn't execute 'SHOW PACKAGE STATUS WHERE Db = 'eshop'': 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 'PACKAGE STATUS WHERE Db = 'eshop'' at line 1 (1064)".

Jag vet inte heller vad som menas med det eller om det bidrar med mer klarhet.

Mvh,

Richard
Användarvisningsbild

mos

dbwebb

  • Inlägg: 11180
  • Blev medlem: 10 nov 2011, 09:52
  • Ort: Ronneby / Bankeryd

Re: KMOM06 - Problem med SQL-vyer efter backup

Inlägg24 feb 2020, 09:11

richard_st skrev:Innan jag kör backupen så syns all information, men efter jag kör backup-filen så försvinner informationen om vilka kategorier produkten tillhör och antalet. Testar jag köra "SELECT * FROM vprodukt2kategori_multiple;" eller "SELECT * FROM vprodukt_antal;" före backupen så får man tillbaka det förväntade resultatet, men efter backupen så är resultatet tomt. Så det verkar som att problemet har med vyerna att göra, men jag förstår inte varför det blir så och vad jag ska göra för att lösa det.


Syns datat i databasen/tabellerna fortfarande?

Är det bara vyn som blir "korrupt"?
Om det bara är vyerna som är bekymret, börja med en SHOW CREATE för vyerna. Får du någon ledtråd av den?

richard_st skrev:När jag tar backupen så får jag ett meddelande i terminalen som säger:

"mysqldump: Couldn't execute 'SHOW PACKAGE STATUS WHERE Db = 'eshop'': 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 'PACKAGE STATUS WHERE Db = 'eshop'' at line 1 (1064)".


Kommer felet när du tar backupen (när du skapar backupfilen), eller när du lägger in den i databasen igen (laddar backupfilen in i databasen)?
...
..:
.... /mos

richard_st

html-kodare

  • Inlägg: 14
  • Blev medlem: 26 aug 2019, 05:23

Re: KMOM06 - Problem med SQL-vyer efter backup

Inlägg24 feb 2020, 11:55

Det är bara vyerna som jag får problem med. Allt annat verkar fungera. När jag testar en av vyerna genom att köra "SHOW CREATE VIEW vprodukt2kategori_multiple;" innan jag exekverar backup-filen får jag till svar:

'vprodukt2kategori_multiple', 'CREATE ALGORITHM=UNDEFINED DEFINER=`user`@`%` SQL SECURITY DEFINER VIEW `vprodukt2kategori_multiple` AS select `produkt2kategori`.`produkt_id` AS `produkt_id`,group_concat(`produkt2kategori`.`kategori` separator \',\') AS `kategorier` from `produkt2kategori` group by `produkt2kategori`.`produkt_id`', 'utf8', 'utf8_general_ci'

När jag kör "SELECT * FROM vprodukt2kategori_multiple;" kan jag se innehållet i vyn, precis som förväntat.

Efter jag exekverat backup-filen och gör samma sak, dvs. kör "SHOW CREATE VIEW vprodukt2kategori_multiple;", får jag till svar:

Error Code: 1347. 'eshop.vprodukt2kategori_multiple' is not VIEW

När jag gör "SELECT * FROM vprodukt2kategori_multiple;" kan jag se en tabell med rätt kolumnnamn, men den är tom på innehåll.

Vyn skapas på följande sätt:

DROP TABLE IF EXISTS `vprodukt2kategori_multiple`;
CREATE OR REPLACE VIEW `vprodukt2kategori_multiple` AS
SELECT produkt_id, GROUP_CONCAT(kategori) AS kategorier
FROM produkt2kategori GROUP BY produkt_id;

Angående meddelandet:

mysqldump: Couldn't execute 'SHOW PACKAGE STATUS WHERE Db = 'eshop'': 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 'PACKAGE STATUS WHERE Db = 'eshop'' at line 1 (1064)".

Det meddelandet syns när jag skapar backup-filen genom:

mysqldump -uroot -p --routines --add-drop-database --result-file=backup.sql --databases eshop

Mvh,

Richard
Användarvisningsbild

mos

dbwebb

  • Inlägg: 11180
  • Blev medlem: 10 nov 2011, 09:52
  • Ort: Ronneby / Bankeryd

Re: KMOM06 - Problem med SQL-vyer efter backup

Inlägg24 feb 2020, 12:33

Svårt att säga utifrån det du visar.

Rörande vyn. Personligen hade jag skapat om vyn i min databas och prövat om det fungerade utan problem. Sedan hade jag använt den både som vy och som bakomliggande select-sats. Bara för att försäkra mig om att den fungerar som jag tänkte mig.

Sedan hade jag tagit en backup och laddat upp i en ny databas och åter testat både vyn och den select som ligger bakom, för att se om det blev någon skillnad.

---

Men, ditt andra problem "SHOW PACKAGE STATUS" tyder på att något i din backup inte fungerar och blir korrekt. Googlar vi det felmeddelandet så ser vi ett antal fel som tyder på användande av olika versioner av mysql/mariadb på server och klient. Kanske skall vi fokusera på det felmeddelandet först.
Ett sätt är att dubbelkolla vilka versioner du jobbar mot, i klienten och i servern.
Kod: Markera allt
$ mysqldump --version
$ mysql -e "SELECT VERSION();"   
...
..:
.... /mos

richard_st

html-kodare

  • Inlägg: 14
  • Blev medlem: 26 aug 2019, 05:23

Re: KMOM06 - Problem med SQL-vyer efter backup

Inlägg25 feb 2020, 05:23

Okej, jag kör kommandona:

$ mysqldump --version
mysqldump Ver 10.17 Distrib 10.3.14-MariaDB, for CYGWIN (x86_64)

$ mysql -e "SELECT VERSION();"
+-----------+
| VERSION() |
+-----------+
| 8.0.18 |
+-----------+

Jag har googlat och det verkar inte finnas full komptabiliteten mellan mina versioner av MySQL och MariaDB. Läste bl.a. här: https://mariadb.com/kb/en/mariadb-vs-my ... atibility/. Eventuellt det som också skapar problem med vyerna. Hur rekommenderar du att jag går tillväga?

Mvh,

Richard
Användarvisningsbild

mos

dbwebb

  • Inlägg: 11180
  • Blev medlem: 10 nov 2011, 09:52
  • Ort: Ronneby / Bankeryd

Re: mysqldump: Couldn't execute 'SHOW PACKAGE STATUS

Inlägg25 feb 2020, 10:29

Ja, då har vi ett litet bekymmer. Vi vill ha MySQLs variant av terminalklienten och det kan bli lurigt att få in den i Cygwin (eller i WSL).

Men en enkel lösning vore att köra backupen i cmd.exe/powershell. Om du har lagt sökvägen till MySQL binärerna i din PATH så bör du kunna köra mysqldump där och på det viset få rätt versioner mellan klient och server.

Så hade jag gjort.

Man kan fråga sig om det skall vara så här "svårt". Ja, delvis kan det vara så här "svårt" att vara kodare. Vi behöver hela tiden avgränsa och felsöka olika delar av vårt "system". Om man vill ha det enklare så är det möjligen MariaDB som är minsta gemensamma nämnare i vårt fall där vi använder olika terminaler och npm-apier. När man använder MySQL som databas kommer man troligen att få liknande kompabilitetshinder, de kommer inte att försvinna. Nåja.
...
..:
.... /mos

richard_st

html-kodare

  • Inlägg: 14
  • Blev medlem: 26 aug 2019, 05:23

Re: mysqldump: Couldn't execute 'SHOW PACKAGE STATUS

Inlägg25 feb 2020, 11:53

Ja, det var lite klurigt. Jag gjorde som du sade och skapade backupen i cmd.exe, och då löste sig allt. Inget felmeddelande och vyerna fungerade.

Tack!

ejessyp

på gång

  • Inlägg: 2
  • Blev medlem: 30 okt 2019, 14:08

Re: mysqldump: Couldn't execute 'SHOW PACKAGE STATUS

Inlägg06 mar 2020, 13:40

I have the same problem and run the following command in the windows cmd.exe:
Kod: Markera allt
mysqldump -u root -p --routines eshop > backup.sql
it works fine.
Thanks!

johanre

webbsurfare

  • Inlägg: 5
  • Blev medlem: 21 aug 2019, 21:01

Re: mysqldump: Couldn't execute 'SHOW PACKAGE STATUS

Inlägg12 mar 2020, 23:13

Jag har provat ovanstående men inte lyckats få med lagrade procedurer och funktioner. Jag lyckades dock hitta en lösning som fungerar för mig. För att göra en backup skrev jag i 'cmd.exe':
```
mysqldump -uroot -p --routines eshop > backup.sql
```
och för att återställa skrev jag:
````
mysql -uroot -p eshop2 < backup.sql
```
Nu fick jag med tabeller, views samt även lagrade procedurer och funktioner.

Äh! Ovanstående gav fel radbryt. Får ändra!
Användarvisningsbild

mos

dbwebb

  • Inlägg: 11180
  • Blev medlem: 10 nov 2011, 09:52
  • Ort: Ronneby / Bankeryd

Re: mysqldump: Couldn't execute 'SHOW PACKAGE STATUS

Inlägg16 mar 2020, 10:48

I cmd.exe, förutsatt att man har lagt mysql-binärerna i sin PATH.
Kod: Markera allt
mysqldump skolan --routines --result-file=backup.sql


Så här kan det se ut.
Kod: Markera allt
C:\Users\mos>mysqldump skolan --routines --result-file=backup.sql

C:\Users\mos>dir backup.sql
Volume in drive C has no label.C:\Users\mos>mysqldump skolan --routines --result-file=backup.sql

C:\Users\mos>dir backup.sql
Directory of C:\Users\mos

2020-03-16  01:43            11 357 backup.sql
               1 File(s)         11 357 bytes
               0 Dir(s)  29 268 504 576 bytes free
...
..:
.... /mos

Vilka är online

Användare som besöker denna kategori: Google [Bot] och 19 gäster