Question Impossible d'ouvrir et de verrouiller les tables de privilèges: la table 'mysql.user' n'existe pas


J'ai installé le serveur de communauté MySQL 5.7.10 en utilisant le zip binaire. J'ai extrait le zip dans c:\mysql et créé le dossier de données dans c:\mysql\data. J'ai créé le fichier de configuration en tant que my.ini et l'a placé dans c:\mysql (dossier racine du zip extrait). Voici le contenu du my.ini fichier

# set basedir to your installation path
basedir=C:\mysql
# set datadir to the location of your data directory
datadir=C:\mysql\data

J'essaie de démarrer MySQL en utilisant mysqld --console, mais le processus est interrompu avec l'erreur ci-dessous.

2015-12-29T18:04:01.141930Z 0 [ERROR] Fatal error: Can't open and lock privilege tables: Table 'mysql.user' doesn't exist
2015-12-29T18:04:01.141930Z 0 [ERROR] Aborting 

Toute aide à ce sujet sera appréciée.


22
2017-12-29 18:16


origine


Réponses:


Vous devez initialiser le répertoire de données en exécutant la commande suivante

mysqld --initialize [avec mot de passe root aléatoire]

mysqld --initialize-insecure [avec mot de passe root vide]


46
2018-01-30 08:32



mysqld --initialize pour initialiser le répertoire de données puis mysqld &

Si vous avez déjà lancé mysqld et sans mysqld --initialize, vous devrez peut-être supprimer tous les fichiers de votre répertoire de données.

Vous pouvez également modifier /etc/my.cnf pour ajouter un chemin personnalisé à votre répertoire de données, comme ceci:

[mysqld]
...  
datadir=/path/to/directory

3
2018-04-04 09:28



Sur Maria DB vous utilisez mysql_install_db. Dans mon cas, j'utilise une variable d'environnement pour le chemin de données, ce qui signifie que mysqld doit non seulement savoir où via la ligne de commande, mais aussi le script d'installation:

mysql_install_db --user=root --datadir=$db_datapath

1
2018-05-23 21:07



Comme suggéré ci-dessus, j'ai eu un problème similaire avec mysql-5.7.18,
je l'ai fait de cette façon

1. Exécutez cette commande à partir de "MYSQL_HOME \ bin \ mysqld.exe --initialize-insecure"
2. alors démarré "MYSQL_HOME \ bin \ mysqld.exe"
3. Connectez workbench à cet localhost: 3306 avec le nom d'utilisateur 'root'
4. ensuite exécuté cette requête "SET PASSWORD FOR 'root' @ 'localhost' = 'root';"

Le mot de passe a également été mis à jour avec succès.


0
2018-04-10 17:21