J'ai installé un serveur MySQL avec un programme d'installation et tout a commencé. Après le redémarrage, j’ai essayé de le redémarrer et d’obtenir l’erreur suivante:
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
J'ai essayé de réinstaller MySQL.
METTRE À JOUR:
Lorsque je lance mysqld -u root -p
en tant qu'administrateur, rien ne se passe.
Depuis que vous avez utilisé le programme d’installation Windows, tout est configuré pour vous permettre d’exécuter MySQL 5.7 en tant que service Windows, ce qui est une excellente option dans la plupart des cas.
Au lieu d'exécuter mysqld.exe
à partir de la ligne de commande,
Win + R
services.msc
MySQL57
J'ai rencontré le même problème. Dans mon cas, je n'avais pas de répertoire ..\data
dans mon C:\mysql\
, alors je viens d'exécuter la commande mysqld --initialize
à partir du répertoire c:\mysql\bin\
et le répertoire de données est dans c:\mysql\data
. Ensuite, je pourrais utiliser la commande mysqld.exe --console
pour tester le démarrage du serveur.
Dans mon cas, j'avais installé le répertoire de données à un emplacement différent. Donc, le répertoire de données n'était pas vraiment à l'emplacement par défaut. Par conséquent, lorsque j'ai exécuté la commande mysqld
à partir de l'invite de commande, je devais spécifier le répertoire de données manuellement:
mysqld --datadir=D:/MySQLData/Data
Voici la documentation pour les arguments de ligne de commande mysqld.
Ce que j'ai fait (Windows 10) pour une nouvelle installation:
Lancez cmd en mode administrateur (exécutez-le en tant qu'administrateur en appuyant sur la touche Windows, tapez cmd, cliquez dessus avec le bouton droit et sélectionnez "Exécuter en tant qu'administrateur"
Allez dans le répertoire "MySQL Server X.Y" (pour moi le chemin complet est C:\Program Files\MySQL\MySQL Server 5.7 ")
en utilisant le bloc-notes, créez un fichier my.ini avec une section mysqld pointant vers votre répertoire de données.
[mysqld]
datadir="X:\Your Directory Path and Name"
créé le répertoire identifié dans my.ini ci-dessus.
passez dans le répertoire bin sous le répertoire du serveur et exécutez: mysqld --initialize
Une fois terminé, le service a démarré et tout s'est bien passé.
Si cela ne fonctionne toujours pas, essayez la notation suivante avec des doubles barres obliques: C:\WebSerer\MySQL\data ou C:/WebServer/MySQL/data
Première exécution
mysqld -u root --initialize-insecure
Il créera un dossier de données avec la racine en tant qu'utilisateur sans mot de passe. Puis courir
mysqld.exe -u root --console
Si vous avez installé MySQL Server à l'aide du programme d'installation Windows et en tant que service Windows, vous pouvez démarrer MySQL Server à l'aide de PowerShell et profiter de l'avantage de ne pas quitter la ligne de commande.
Ouvrez PowerShell et exécutez la commande suivante:
Get-Service *sql*
Une liste de services MySQL sera récupérée et affichée. Choisissez celui que vous voulez et exécutez la commande suivante en remplaçant nom-service par le nom du service actuel:
Start-Service -Name service-name
Terminé. Vous pouvez vérifier que le service est en cours d'exécution en exécutant à nouveau la commande Get-Service *sql*
et en vérifiant le statut du service.
mariofertc a complètement résolu ceci pour moi voici ses étapes:
Vérifiez que le répertoire de données de mysql est vide (avant de le supprimer, sauvegardez le fichier d'erreur pour vos enregistrements).
Sous le chemin d'accès mysql bin, exécutez la commande suivante: mysqld.exe --initialize-insecure
ajoutez à my.ini (le fichier de configuration de mysql) ce qui suit: [mysqld] default_authentication_plugin = mysql_native_password
Ensuite, vérifiez les services (via le gestionnaire de tâches) pour vous assurer que MySql est en cours d'exécution, sinon - cliquez avec le bouton droit de la souris sur MySql et démarrez-le.
Je noterai également que si vous n'avez pas votre fichier de configuration mysql dans le répertoire mysql et que vous ne le trouvez pas via la recherche dans Windows, recherchez-le dans C:\Program Data\Mysql\pourrait être un nom différent de my.ini, comme un modèle, comme le mentionne Heesu ici: Impossible de trouver my.ini (mysql 5.7) Il suffit de trouver le modèle qui correspond à la version de votre mysql via la commande mysql --version
Vérifiez votre emplacement réel du fichier my.ini
et définissez --defaults-file="location"
avec cette commande
mysql --defaults-file="C:\MYSQL\my.ini" -u root -p
Cette solution est en permanence pour votre écran cmd.
supprimez tous les fichiers du répertoire "{path-to-mysql}\data" et exécutez:
mysqld --initialize-insecure --basedir={path-to-mysql}\mysql --datadir={path-to-mysql}\data --console
Dans MySQL 8.0.13, l'initialisation du paquet Zip.
Sous le chemin d'accès mysql bin
mysqld.exe --initialize-insecure
Ajouter à my.ini mysql native
[mysqld]
default_authentication_plugin=mysql_native_password
Quand j'ai rencontré cette même erreur, j'ai remarqué que le fichier de configuration MySQL dans "C:\Program Files\MySQL\Serveur MySQL X.Y \" a été remplacé par my-default.ini.
Je l'ai résolu par
Dans le fichier .ini, leur partie est la suivante:
# On Windows you should keep this file in the installation directory
# of your server (e.g. C:\Program Files\MySQL\MySQL Server X.Y). To
# make sure the server reads the config file use the startup option
# "--defaults-file".