Comment se connecter et créer une base de données dans MySQL?

17

Je veux installer MySQL et créer une base de données dessus en utilisant le code suivant:

sudo apt-get install mysql-server
mysqladmin -h localhost -u {username} -p create lrs

J'obtiens le message suivant après avoir exécuté la deuxième ligne:

    Enter password:
    mysqladmin: connect to server at 'localhost' failed
    error: 'Access denied for user '{username}'@'localhost' (using password: YES)'

Quel est le problème?

user543489
la source
1
Si vous avez réellement utilisé ces 2 commandes, où avez-VOUS ACCORDÉ DES PRIVILIGES pour que {nom d'utilisateur} (sinon admin / root) puisse accéder à une base de données?
Rinzwind

Réponses:

26

Après avoir installé MySQL, vous devez définir le mot de passe root mysql . Faire cela:

  1. Entrez la commande suivante dans un terminal:

    mysql -u root

  2. Maintenant, il devrait ouvrir la console mysql . Et tapez la ligne suivante:

    SET PASSWORD FOR 'root'@'localhost' = PASSWORD('yourpassword');

Pour quitter la console mysql, entrez exit.

Vous devez maintenant créer la base de données avec l' utilisateur root . Faire cela:

  1. Ouvrez mysql depuis le terminal:

    mysql -u root -p

  2. Saisissez le mot de passe créé auparavant.

  3. Entrez la ligne suivante:

    CREATE DATABASE yourdatabasename;

Si vous entrez, SHOW DATABASES;vous devriez le voir dans la liste. Si oui, vous avez une base de données prête à l'emploi!

Lucio
la source
mysql -u rootme donneERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: NO)
Nicolas Raoul
Cette erreur signifie que vous avez déjà un rootutilisateur et qu'il a un mot de passe. Si vous avez oublié le rootmot de passe, lisez la documentation MySQL .
Lucio
1

Vous devez vous connecter à MySQL en utilisant l'utilisateur root et le mot de passe associé. Si vous devez les définir, utilisez la commande suivante:sudo mysqladmin -u root -h localhost password 'mypassword'

À partir de là, vous pouvez configurer des comptes supplémentaires en suivant ce document: Comment créer un nouvel utilisateur et accorder des autorisations dans MySQL

Bert
la source
1
J'ai copié sudo mysqladmin -u root -h localhost password 'mypassword'et collé dans mon terminal et je reçois le message Access denied for user 'root'@'localhost' (using password: NO).
user543489
@Bert Ce code ne fonctionnera pas. Ce qui ne password 'mypassword'va pas, ça devrait être-password 'mypassword'
Lucio
faut-il remplacer quelque chose par «mypassword»?
user543489
J'ai exécuté sudo mysqladmin -u root -h localhost -password 'mypassword', mais je comprends Access denied for user 'root'@'localhost' (using password: YES).
user543489
@ user543489 Que se passe-t-il si vous entrez mysql -u root ?
Lucio
1

C'est étrange car depuis 12.04 (en supposant que vous exécutez Kubuntu 12.04), MySQL est la valeur par défaut. On dirait que vous manquez quelques étapes entre les deux, alors regardons ceci:

Tout d'abord, comme vous l'avez mentionné, faisons une installation,

sudo apt-get install mysql-server

Après l'avoir installé, essayons un petit test,

sudo netstat -tap | grep mysql

Lorsque vous exécutez cela, vous devriez voir cette réponse,

tcp        0      0 localhost:mysql         *:*                LISTEN      2556/mysqld

Si cela ne fonctionne pas correctement, exécutez cette commande de redémarrage,

sudo service mysql restart

Maintenant, pour configurer le serveur.

Allons /etc/mysql/my.cnfà configurer les paramètres de base. Cela inclut le fichier journal, le numéro de port, etc. Par exemple, pour configurer MySQL pour écouter les connexions des hôtes du réseau, remplacez la directive bind-address par l'adresse IP du serveur:

bind-address            = 192.168.0.5

Après cela, redémarrez le démon MySQL,

sudo service mysql restart

Si vous souhaitez modifier le mot de passe racine MySQL, exécutez ceci:

sudo dpkg-reconfigure mysql-server-5.5

Le démon sera arrêté et vous serez invité à entrer un nouveau mot de passe.

Une fois que vous avez terminé, vous devez être configuré et quelques recherches sur Google vous apprendront à créer une base de données

Source: Le Guide du serveur Ubuntu

sharksfan98
la source
0

Exécutez cette commande:

sudo dpkg-reconfigure mysql-server-5.5

(5.5 est le numéro de version, adaptez si vous avez une version différente)

Cela vous permettra de définir votre mot de passe root MySQL, que vous pourrez ensuite utiliser avec les commandes mysqladminet mysql.

Nicolas Raoul
la source
-1

Après avoir installé MySQL, vous devez définir le mot de passe root mysql. Faire cela:

Enter the next command in a terminal:

mysql -u root -p

Enter Password: (Enter your password here).
Swathi S
la source
Cela ne contribue à rien de ce qui n'a pas déjà été dit dans la réponse acceptée.
guntbert
-1

Je sais que cela a 3 ans mais je viens d'avoir ce problème aussi et je voulais poster ma réponse au cas où quelqu'un d'autre ferait la même recherche que moi.

mysqladmin: connect to server at 'localhost' failed

Cela indique que votre utilisateur n'a pas l'autorisation de se connecter à la base de données elle-même, avant même de se connecter; pas l'utilisateur de la base de données, votre véritable utilisateur Linux. Exécutez tout en tant que super utilisateur: sudo mysql -u root -p

Seul root (l'utilisateur linux ou un utilisateur disposant des privilèges sudo) peut se connecter à mysql en tant que root (l'utilisateur de la base de données). Je n'ai pu trouver aucun document à ce sujet, mais l'expérimentation a prouvé que c'était le cas. Vous pouvez créer un nouvel utilisateur avec tous les mêmes droits que l'utilisateur root et cela ne sera pas restreint.

sudo mysql -u root
SET PASSWORD FOR 'root'@'localhost' = PASSWORD('yourpassword');
CREATE USER 'newuser'@'localhost' IDENTIFIED BY 'password';
GRANT ALL PRIVILEGES ON * . * TO 'newuser'@'localhost';
FLUSH PRIVILEGES;

Désormais, "newuser" (ou le nom que vous choisissez) peut être connecté sans avoir besoin de sudo et vous pouvez l'utiliser pour tous vos besoins administratifs de base de données.

WizardStan
la source
1
Utiliser le mot probablydans une réponse ici est mal vu.
WinEunuuchs2Unix
Eh bien, je ne peux certainement pas dire que c'est sans le tester, maintenant?
WizardStan