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
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:
- Przenieś plik do katalogu określonego przez
secure-file-priv
. - 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.
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.
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 = ""
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;
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):
- Zatrzymaj usługę serwera MySQL przechodząc do
services.msc
. - idź do
C:\ProgramData\MySQL\MySQL Server 5.6
(ProgramData
był ukryty folder w moim przypadku). - Otwórz plik
my.ini
w Notatniku. - wyszukaj 'secure-file-priv'.
- Skomentuj linię, dodając " # " na początku linii.
- Zapisz plik.
- 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.
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;
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.
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=$?
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.
- w Windows search (u dołu po lewej) wpisałem "powershell".
- Kliknij prawym przyciskiem myszy powershell i uruchom jako administrator.
- nawigacja do pliku BIN serwera. (C:\Program Files\MySQL \ MySQL Server 5.6 \ bin);
- na maszynie ./ mysqld
- wciśnij "enter"
Serwer uruchomiony zgodnie z oczekiwaniami.
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