comment se connecter à mysql et interroger la base de données à partir du terminal linux

104

J'utilise debian linux. J'ai une machine Linux sur laquelle mysql est installé. Je peux me connecter à ma machine Linux en utilisant un utilisateur root ainsi qu'un autre utilisateur. Je peux me connecter à la base de données mysql sur la machine Linux à partir de la machine Windows en utilisant sqlyog. Maintenant, je veux exécuter des requêtes sur une machine Linux uniquement en utilisant le terminal Linux

J'ai essayé certaines choses suivantes sur le terminal

Je suis allé dans le répertoire racine puis je suis allé dans le répertoire / var / lib

Je lance les commandes suivantes sur le terminal

mysqladmin -u root -p
mysqladmin -u root -ppassword

chaque fois que j'ai le message d'erreur suivant

ERREUR 1045 (28000) Accès refusé pour l'utilisateur 'root' @ 'localhost' (en utilisant le mot de passe NON)

s'il vous plaît guidez-moi pour suivre

  1. Comment obtenir l'invite mysql dans le terminal Linux?
  2. Comment arrêter le serveur mysql du terminal linux?
  3. Comment démarrer le serveur mysql à partir du terminal Linux?
  4. Comment obtenir l'invite mysql dans le terminal Linux?
  5. Comment puis-je me connecter au serveur mysql à partir du terminal Linux?
  6. Comment résoudre l'erreur suivante?

ERREUR 1045 (28000) Accès refusé pour l'utilisateur 'root' @ 'localhost' (en utilisant le mot de passe NON)

Veuillez me donner des solutions pour la question ci-dessus. Merci

Param-Ganak
la source
1
Chaque fois que j'exécute cette commande mysql -u root -p il ne me demande pas de mot de passe et j'obtiens le message d'erreur "ERREUR 1045 (28000) Accès refusé pour l'utilisateur 'root' @ 'localhost' (en utilisant le mot de passe NON)" Une autre question est où Dois-je exécuter l'invite de commande ci-dessus dans le dossier racine ou dois-je aller dans un répertoire spécifique. donne-moi son chemin. Merci!
Param-Ganak
Essayez de changer la syntaxe de votre commande, comme ceci: "mysql --user = root --password" (supprimez les guillemets lorsque vous le tapez sur la ligne de commande). Sinon, il semble assez étrange que vous ne soyez pas invité à entrer un mot de passe et je soupçonne qu'il pourrait y avoir autre chose en dehors de la portée de mysql.
baraboom le

Réponses:

180

1.- Comment obtenir l'invite mysql dans le terminal Linux?

mysql -u root -p

À l' Enter password:invite, entrez le mot de passe root :)

Vous pouvez trouver d'autres références en tapant mysql --helpou dans le manuel en ligne .

2. Comment arrêter le serveur mysql du terminal Linux?

Ça dépend. Les distributions basées sur Red Hat ont la servicecommande:

service mysqld stop

D'autres distributions nécessitent d'appeler directement le script init:

/etc/init.d/mysqld stop

3. Comment démarrer le serveur mysql à partir du terminal Linux?

Identique au n ° 2, mais avec start.

4. Comment puis-je obtenir l'invite mysql dans le terminal Linux?

Identique au n ° 1.

5. Comment puis-je me connecter au serveur mysql à partir du terminal Linux?

Identique au n ° 1.

6. Comment résoudre l'erreur suivante?

Identique au n ° 1.

Álvaro González
la source
10

À votre première question:

mysql -u root -p

ou

mysqladmin -u root -p "your_command"

selon ce que vous voulez faire. Le mot de passe vous sera demandé une fois que vous aurez appuyé sur Entrée! Je suppose que vous voulez vraiment utiliser mysql et non mysqladmin .

Pour redémarrer ou arrêter le serveur MySQL sur Linux, cela dépend de votre installation, mais dans les dérivés Debian courants, cela fonctionnera pour démarrer, arrêter et redémarrer le service:

sudo /etc/init.d/mysql start
sudo /etc/init.d/mysql stop
sudo /etc/init.d/mysql restart
sudo /etc/init.d/mysql status

Dans certaines distributions plus récentes, cela peut également fonctionner si MySQL est configuré en tant que démon / service.

sudo service mysql start
sudo service mysql stop
sudo service mysql restart
sudo service mysql status

Mais il est vraiment impossible de répondre à la question sans connaître votre configuration particulière.

Flindeberg
la source
Chaque fois que j'exécute cette commande mysql -u root -p il ne me demande pas de mot de passe et j'obtiens le message d'erreur "ERREUR 1045 (28000) Accès refusé pour l'utilisateur 'root' @ 'localhost' (en utilisant le mot de passe NON)" une autre question est où puis-je exécuter l'invite de commande ci-dessus dans le dossier racine ou dois-je aller dans un répertoire spécifique, donnez-moi son chemin merci
Param-Ganak
Vous n'avez pas besoin d'accéder à un répertoire spécifique. Vous pouvez l'exécuter de n'importe où. Pourriez-vous coller la réponse à uname -aet mysql --versionet les coller ici (entrez-les simplement dans le terminal). Nous pourrions probablement vous aider davantage. service mysql statusserait également utile.
flindeberg
5

Je suppose que vous cherchez à utiliser le client mysql, ce qui est une bonne chose et beaucoup plus efficace à utiliser que toutes les alternatives phpMyAdmin.

La bonne façon de se connecter avec le client en ligne de commande est de taper:

mysql -u username -p

Remarquez que je n'ai pas tapé le mot de passe. Cela rendrait le mot de passe visible à l'écran, ce qui n'est pas bon dans un environnement multi-utilisateurs!

Après avoir tapé cette touche entrée, mysql vous demandera votre mot de passe.

Une fois connecté, vous aurez bien sûr besoin de:

use databaseName;

faire n'importe quoi.

Bonne chance.

stefgosselin
la source
Chaque fois que j'exécute cette commande mysql -u root -p il ne me demande pas de mot de passe et j'obtiens le message d'erreur "ERREUR 1045 (28000) Accès refusé pour l'utilisateur 'root' @ 'localhost' (en utilisant le mot de passe NON)" Une autre question est où Dois-je exécuter l'invite de commande ci-dessus dans le dossier racine ou dois-je aller dans un répertoire spécifique. donne-moi son chemin. Merci!
Param-Ganak
Sur quelle distribution Linux utilisez-vous?
stefgosselin
5

À l'invite de commande, essayez:

mysql -u root -p

donnez le mot de passe lorsque vous y êtes invité.

quarkonium
la source
Chaque fois que j'exécute cette commande mysql -u root -p il ne me demande pas de mot de passe et j'obtiens le message d'erreur "ERREUR 1045 (28000) Accès refusé pour l'utilisateur 'root' @ 'localhost' (en utilisant le mot de passe NON)" Une autre question est où Dois-je exécuter l'invite de commande ci-dessus dans le dossier racine ou dois-je aller dans un répertoire spécifique. donne-moi son chemin. Merci!
Param-Ganak
Vous devriez pouvoir l'exécuter à partir de votre répertoire personnel tant que vous avez configuré le chemin. It should work ...
quarkonium
4

J'ai eu le même problème sur mon ArchLinux VPS aujourd'hui.

mysql -u root -pne fonctionnait tout simplement pas, alors que mysql -u root -pmypasswordcela fonctionnait.

Il s'est avéré que j'avais un fichier de périphérique / dev / tty cassé (probablement après une mise à jour d'udev), donc mysql ne pouvait pas l'utiliser pour une connexion interactive.

J'ai fini par supprimer / dev / tty et le recréer avec mknod /dev/tty c 5 1et chmod 666 /dev/tty. Cela a résolu le problème de mysql et d'autres problèmes.

user789877
la source
Cela fonctionne réellement! Maintenant, tout le monde peut voir le mot de passe root dans bash_history. : / Comment saviez-vous que le / dev / tty était foiré?
user3870315
2

Pour arrêter ou démarrer mysql sur la plupart des systèmes Linux, ce qui suit devrait fonctionner:

/etc/init.d/mysqld stop

/etc/init.d/mysqld start

Les autres réponses semblent bonnes pour accéder au client mysql depuis la ligne de commande.

Bonne chance!

baraboom
la source
2
  1. vous devez utiliser la mysqlcommande. C'est un client en ligne de commande pour mysql RDBMS, et est livré avec la plupart des installations mysql: http://dev.mysql.com/doc/refman/5.1/en/mysql.html

  2. Pour arrêter ou démarrer la base de données mysql (vous devriez rarement avoir besoin de le faire «à la main»), utilisez généralement le script d'initialisation approprié avec le paramètre stopor . Cela dépend cependant de votre distribution Linux. Certaines nouvelles distributions encouragent le style.start/etc/init.d/mysql stopservice mysql start

  3. Vous vous connectez à l'aide du mysqlshell SQL.

  4. L'erreur vient probablement du double paramètre «-p». Vous pouvez fournir -ppasswordou simplement -pet il vous sera demandé le mot de passe de manière interactive. Notez également que certaines installations peuvent utiliser un utilisateur mysql (pas root) en tant qu'utilisateur administratif. Vérifiez la configuration de votre sqlyog pour obtenir des paramètres de connexion fonctionnels.

cezio
la source
2

Essayez "sudo mysql -u root -p" s'il vous plaît.

Udi
la source
2

Dans Ubuntu, tout ce que j'ai à faire est sudo mysqldans le terminal GNOME et c'est tout. Je peux commencer à créer des bases de données ou interroger une donnée dans une table, etc.

Pranav
la source
1

si vous n'avez toujours pas accès à la base de données, 1. dans le message d'erreur ur n'est défini aucun mot de passe, non? puis faites d'abord mysqlpasswd 'username' après cela, entrez et donnez-lui à nouveau un type de mot de passe comme demandé, puis essayez à nouveau d'accéder avec mysql -p si vous êtes root

user2807050
la source
1

si vous êtes déjà connecté en tant que root

mysql -u root

l'invite du mot de passe reviendra autrement comme une erreur

Maioman
la source
0

utilisez ce "mysql -uroot -pPassword"

vadiraj jahagirdar
la source