Mysql
 sql >> Baza danych >  >> RDS >> Mysql

Jak wykonać polecenie MySQL ze skryptu powłoki?

Musisz użyć -p flagę, aby wysłać hasło. I jest to trudne, ponieważ nie możesz mieć spacji między -p i hasło.

$ mysql -h "server-name" -u "root" "-pXXXXXXXX" "database-name" < "filename.sql"

Jeśli użyjesz spacji po -p sprawia, że ​​klient mysql pyta interaktywnie o hasło, a następnie interpretuje następny argument polecenia jako nazwę bazy danych:

$ mysql -h "server-name" -u "root" -p "XXXXXXXX" "database-name" < "filename.sql"
Enter password: <you type it in here>
ERROR 1049 (42000): Unknown database 'XXXXXXXX'

Właściwie wolę przechowywać użytkownika i hasło w ~/.my.cnf, więc nie muszę w ogóle umieszczać ich w wierszu poleceń:

[client]
user = root
password = XXXXXXXX

Następnie:

$ mysql -h "server-name" "database-name" < "filename.sql"

Odpowiedz na swój komentarz:

Cały czas uruchamiam polecenia mysql w trybie wsadowym, takie jak powyżej, w wierszu poleceń i w skryptach powłoki. Trudno jest zdiagnozować, co jest nie tak ze skryptem powłoki, ponieważ nie udostępniłeś dokładnego skryptu ani żadnych komunikatów o błędach. Sugeruję edycję pierwotnego pytania powyżej i podanie przykładów tego, co poszło nie tak.

Również podczas rozwiązywania problemów ze skryptem powłoki używam -x flagę, abym mógł zobaczyć, jak wykonuje każde polecenie:

$ bash -x myscript.sh


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Jak uruchomić, ponownie uruchomić, sprawdzić status i zatrzymać serwer MySQL

  2. Wstaw obiekty Blob w bazach danych MySql za pomocą php

  3. Wybór pływaka w MySQL

  4. Tworzenie aplikacji internetowej od podstaw przy użyciu Python Flask i MySQL:część 5

  5. Jak utworzyć bazę danych ze skryptu w MySQL