Jak rozwiązać --secure-file-priv w MySQL?

Uczę się MySQL i próbowałem użyć klauzuli LOAD DATA. Kiedy użyłem go jak poniżej:

LOAD DATA INFILE "text.txt" INTO table mytable;

Mam następujący błąd:

Serwer MySQL jest uruchomiony z opcją --secure-file-priv, więc nie może wykonać tej instrukcji

Jak rozwiązać ten błąd?

Sprawdziłem kolejne pytanie na temat tego samego komunikatu o błędzie , ale nadal nie mogę znaleźć rozwiązania.

Używam MySQL 5.6

Author: Community, 2015-09-23

9 answers

Działa zgodnie z przeznaczeniem. Twój serwer MySQL został uruchomiony z opcją --secure-file-priv, która zasadniczo ogranicza katalogi, z których można ładować pliki za pomocą LOAD DATA INFILE.

Możesz użyć SHOW VARIABLES LIKE "secure_file_priv";, aby zobaczyć katalog, który został skonfigurowany.

Masz dwie opcje:

  1. Przenieś plik do katalogu określonego przez secure-file-priv.
  2. Wyłącz secure-file-priv. To musi zostać usunięte podczas uruchamiania i nie może być modyfikowane dynamicznie. Aby to zrobić sprawdź swój start MySQL parametry up (w zależności od platformy) i my.ini.
 287
Author: vhu,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-09-23 10:54:17

Miałem ten sam problem. W końcu rozwiązałem używając opcji LOCAL w Komendzie

LOAD DATA LOCAL INFILE "text.txt" INTO TABLE mytable;

Więcej informacji znajdziesz tutaj http://dev.mysql.com/doc/refman/5.7/en/load-data.html

Jeśli podano LOCAL, plik jest odczytywany przez program klienta na hosta klienta i wysyłane na serwer. Plik może być podany jako pełny nazwa ścieżki, aby określić jej dokładną lokalizację. Jeśli podano jako ścieżkę względną nazwa, nazwa jest interpretowana względem katalogu w które program klienta został uruchomiony.

 147
Author: Staza,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-11-16 11:10:59

W Ubuntu 14 i Mysql 5.5.53 to ustawienie wydaje się być domyślnie włączone. Aby go wyłączyć należy dodać secure-file-priv = "" do swojego my.plik cnf w grupie konfiguracyjnej mysqld. eg: -

[mysqld]
secure-file-priv = ""
 77
Author: Mustafa,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-02-15 04:15:56

Pracuję nad MySQL5. 7. 11 na Debianie, polecenie, które zadziałało dla mnie, aby zobaczyć katalog to:

Mysql > wybierz @ @ global.secure_file_priv;

 24
Author: CarlosArturoFyuler,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-05-25 19:34:43

Oto co zadziałało u mnie w Windows 7 aby wyłączyć secure-file-priv (Opcja # 2 z vhu ' s answer):

  1. Zatrzymaj usługę serwera MySQL przechodząc do services.msc.
  2. idź do C:\ProgramData\MySQL\MySQL Server 5.6 (ProgramData był ukryty folder w moim przypadku).
  3. Otwórz plik my.ini w Notatniku.
  4. wyszukaj 'secure-file-priv'.
  5. Skomentuj linię, dodając " # " na początku linii.
  6. Zapisz plik.
  7. Uruchom usługę serwera MySQL wchodząc w services.msc.

W przypadku serwera MySQL 5.7.16 i nowszych, zapoznaj się z komentarzem dbc poniżej.

 10
Author: Ramnath,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-09-26 04:35:32

Jeśli plik jest lokalny dla twojego komputera, użyj LOCAL w Komendzie

LOAD DATA LOCAL INFILE "text.txt" INTO table mytable;
 6
Author: garyrgilbert,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-05-04 14:07:29

Miałem ten sam problem z 'secure-file-priv'. Komentowanie w .plik ini nie zadziałał, podobnie jak przenoszenie pliku do katalogu określonego przez 'secure-file-priv'.

Wreszcie, jak zasugerował dbc, udało się uczynić 'secure-file-priv' równym pustemu łańcuchowi znaków. Więc jeśli ktoś utknął po wypróbowaniu powyższych odpowiedzi, mam nadzieję, że to pomoże.

 4
Author: Rsc Rsc,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-11-02 20:59:10

Miałem z tym wiele problemów. Zmieniałem swoje.cnf i wszelkiego rodzaju szalone rzeczy, które inne wersje tego problemu starały się pokazać.

Co u mnie zadziałało:

The error I was getting

The MySQL server is running with the --secure-file-priv option so it cannot execute this statement

Udało mi się to naprawić, otwierając /usr/local/mysql/support-files/mysql.serwer i zmiana następującej linii:

$bindir/mysqld_safe --datadir="$datadir" --pid-file="$mysqld_pid_file_path" -- $other_args >/dev/null &
  wait_for_pid created "$!" "$mysqld_pid_file_path"; return_value=$?

Do

$bindir/mysqld_safe --datadir="$datadir" --pid-file="$mysqld_pid_file_path" --secure-file-priv="" $other_args >/dev/null &
  wait_for_pid created "$!" "$mysqld_pid_file_path"; return_value=$?
 3
Author: notthehoff,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-12-01 20:54:11

Miałem ten problem na windows 10. "--secure-file-priv in MySQL " aby to rozwiązać zrobiłem następujące.

  1. w Windows search (u dołu po lewej) wpisałem "powershell".
  2. Kliknij prawym przyciskiem myszy powershell i uruchom jako administrator.
  3. nawigacja do pliku BIN serwera. (C:\Program Files\MySQL \ MySQL Server 5.6 \ bin);
  4. na maszynie ./ mysqld
  5. wciśnij "enter"

Serwer uruchomiony zgodnie z oczekiwaniami.

 1
Author: Jason Allshorn,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-10-01 22:05:45