2015-11-17 12 views
34

Ho installato un server MySQL con l'installer e ha iniziato. Dopo il riavvio ho provato a iniziare di nuovo e ottenere l'errore:mysqld: impossibile cambiare la dir in dati. Il server non si avvia

D:\Program Files\MySQL\MySQL Server 5.7\bin>mysqld -u root -p 
mysqld: Can't change dir to 'D:\Program Files\MySQL\MySQL Server 5.7\data\'  (Errcode: 2 - No such file or directory) 
2015-11-17T08:30:18.822962Z 0 [Warning] TIMESTAMP with implicit DEFAULT  value is deprecated. Please use --explicit_defaults_for_timestamp server option  (see documentation for more details). 
2015-11-17T08:30:18.822962Z 0 [Warning] Insecure configuration for --secure- file -priv: Current value does not restrict location of generated files.  Consider setting it to a valid, non-empty path. 
2015-11-17T08:30:18.822962Z 0 [Note] mysqld (mysqld 5.7.9) starting as  process 1108 ... 
2015-11-17T08:30:18.838586Z 0 [Warning] Can't create test file D:\Program  Files\MySQL\MySQL Server 5.7\data\DESKTOP-RNBR3E8.lower-test 
2015-11-17T08:30:18.838586Z 0 [Warning] Can't create test file D:\Program  Files\MySQL\MySQL Server 5.7\data\DESKTOP-RNBR3E8.lower-test 
2015-11-17T08:30:18.838586Z 0 [ERROR] failed to set datadir to D:\Program  Files\MySQL\MySQL Server 5.7\data\ 
2015-11-17T08:30:18.838586Z 0 [ERROR] Aborting 


2015-11-17T08:30:18.838586Z 0 [Note] Binlog end 
2015-11-17T08:30:18.838586Z 0 [Note] mysqld: Shutdown complete 

Ho provato a reinstallare MySQL.
UPDATE:
Quando eseguo mysqld -u root -p come amministratore, non succede nulla.

+0

Verificare che la cartella esista e che l'utente mysql disponga delle autorizzazioni – georgecj11

+0

Lo stesso è successo a me. Credo che il problema sia 1. directory di installazione non standard (non C: \ ..) e \ o 2. Directory dati non standard e \ o 3. MySQL non installato come servizio. L'ho risolto usando la risposta di nulliusinverba, anche se sembra che l'istanza (processo) si comporti ancora in modo strano. – Riva

+0

Se si sta installando su Windows, si consiglia vivamente di utilizzare l'installer '.msi'. Molto più semplice dell'installazione manuale –

risposta

26

Dal momento che si è utilizzato il programma di installazione di Windows, tutto è impostato per eseguire MySQL 5.7 come servizio di Windows, che è una grande opzione nella maggior parte dei casi.

Invece di correre mysqld.exe dalla riga di comando,

  1. Win + R
  2. Run services.msc
  3. fare clic destro su MySQL57
  4. Avviare il servizio.
+4

Tranne quando si specifica durante l'installazione (come ho fatto) che non si desidera installare il server MySQL come servizio. Quindi il servizio non viene creato e lo cercherai nei Servizi invano. – Riva

+1

Se lavorerai sempre con MySQL, puoi chiedere che venga caricato automaticamente con Windows. Seguire le istruzioni @AaronDanielson, fare clic con il tasto destro del mouse sul servizio MySQL57, aprire "Proprietà" e modificare il "Tipo di inizializzazione" da "manuale" a "automatico". –

+0

Se si lavora in Windows come utente con restrizioni, fare clic sul simbolo Start di Windows, digitare services.msc e quindi fare clic con il tasto destro del mouse e avviare come admin. –

7
  1. Verificare che il regista esista.
  2. Se esiste, assicurarsi che mysql disponga dei diritti di accesso (lettura/scrittura). Può essere una buona idea eseguire MySQL come processo di sistema, ma non obbligatorio.

Se questa prova è stil non funziona avendo la seguente notazione con doppie barre: C: \ WebSerer \ MySQL \ dati o C:/WebServer/MySQL/dati

11

Nel mio caso, avevo installato la directory dei dati in una posizione diversa. Quindi la directory dei dati in realtà non era nella posizione predefinita. Perciò, quando ho fatto funzionare l'ordine mysqld dal prompt dei comandi, ho dovuto specificare la directory dati manualmente:

mysqld --datadir=D:/MySQLData/Data

Here's the documentation for mysqld command-line arguments.

0

Controlla il tuo vero my.ini posizione del file e impostare --defaults-file="location" con questo comando

mysql --defaults-file="C:\MYSQL\my.ini" -u root -p 

Questa soluzione è permanente per lo schermo cmd.

6

Quello che ho fatto (Windows 10) per una nuova installazione:

  1. Inizio cmd nella modalità amministratore (Esegui come amministratore colpendo tasto Windows, digitare cmd, cliccando col tasto destro su di esso e selezionando "Esegui come amministratore "

  2. Modifica in "MySQL Server XY" directory (per me il percorso completo è C: \ Programmi \ MySQL \ MySQL Server 5.7")

  3. con blocco note creare una mia.ini con una sezione mysqld che punta a vostra directory dei dati

    [mysqld] 
    datadir="X:\Your Directory Path and Name" 
    
  4. creato la directory identificata nel my.ini sopra.

  5. cambiamento nella directory bin nella directory del server ed eseguire: mysqld --initialize

  6. Una volta completato, avviato il servizio ed è venuto bene.

+4

'mysqld --initialize' ha fatto il trucco per me. –

+0

il suo lavoro per me. –

+0

Funziona per me, ma quando provo ad accedere come root per la prima volta, dice Access Denied. Pensavo che la password di root predefinita non fosse una password. – AjaxLeung

5

ho incontrato lo stesso problem.In mio caso ho avuto nessun .. \ dati dir nel mio C: \ mysql \ così ho appena giustiziato mysqld --initialize comando da c: \ mysql \ bin \ directory e ho ottenuto la directory dei dati in c: \ mysql \ data. Successivamente potrei usare il comando mysqld.exe - console per testare l'avvio del server.