Sprawdzaj co Errcode: 2
oznacza
Można użyć narzędzia perror
znaleźć to błąd 2 sposoby:
$ perror 2
OS error code 2: No such file or directory
Więcej informacji znajduje się w linku @Jocelyn wymienionego w ich Komentarz: http://dev.mysql.com/doc/refman/5.5/en/cannot-create.html
Dowiedz się, co to jest ścieżka ./
punktów do
Teraz wiemy, że plik nie istnieje (lub może nie można go zapisać). Komunikat o błędzie podaje nam względną ścieżkę ./
, co sprawia, że jest ona trudna ... Czy nie byłoby to pomocne w pełni kwalifikowana ścieżka? Tak.
Kiedy więc MySQL importuje plik SQL, tworzy pliki tymczasowe w systemie plików. Ścieżka jest zwykle określona przez opcję konfiguracji "tmpfile" w pliku MySQL my.cnf
. można szybko znaleźć wartość wykonując zapytanie SQL:
$ mysql -h127.0.0.1 -uroot -p
# I assume you're now logged into MySQL
mysql> SHOW VARIABLES LIKE '%tmpdir%';
+-------------------+-------+
| Variable_name | Value |
+-------------------+-------+
| slave_load_tmpdir | /tmp |
| tmpdir | /tmp |
+-------------------+-------+
2 rows in set (0.00 sec)
Upewnij się, że katalog jest zapisywalny przez mysql
użytkownik
Według tmpdir oznacza to MySQL próbuje utworzyć /tmp/dbnamehere/db.opt
. Upewnij się, że ten katalog istnieje i że jest własnością: mysql:mysql
. Być może będziesz musiał użyć wartości sudo
, aby podnieść uprawnienia wystarczająco wysokie, aby utworzyć kilka katalogów.
$ chown -R mysql:mysql /tmp/dbnamehere
Nadal nie działa? Spróbuj inne ścieżki domyślne tmpdir
uderzę problemy w moim systemie (Ubuntu 12.04 + Vagrant 1.7.2 + Chef 11.something + opscode mysql cookbook 6.0.6), gdy wartość w tmpdir
nie rozważa, czy nie był wyciągany z którym Oczekiwałem.
MySQL został rzeczywiście próbuje utworzyć pliku tymczasowego w jednej z następujących lokalizacji:
- /var/lib/mysql/dbnamehere
- /var/lib/mysql-default/dbnamehere
musiałem utworzyć te katalogi i zmienić właściciela do mysql: mysql.
Dla zwięzłości odpowiedź, istnieje kilka opcji dla Ciebie, a nie ciąg zastąpić w edytorze: http://dba.stackexchange.com/a/8892 – Pogrindis