วิธีเข้าสู่ระบบ mysql และสืบค้นฐานข้อมูลจาก linux terminal


104

ฉันใช้ debian linux ฉันมีเครื่อง linux ที่ติดตั้ง mysql ฉันสามารถล็อกอินเข้าสู่เครื่อง linux ของฉันโดยใช้ผู้ใช้รูทและผู้ใช้รายอื่น ฉันสามารถเชื่อมต่อกับฐานข้อมูล mysql บนเครื่อง linux จากเครื่อง windows โดยใช้ sqlyog ตอนนี้ฉันต้องการดำเนินการค้นหาบนเครื่อง linux โดยใช้ linux terminal เท่านั้น

ฉันลองทำบางอย่างต่อไปนี้บนเทอร์มินัล

ฉันไปที่ไดเรกทอรีรากจากนั้นฉันไปที่ไดเร็กทอรี / var / lib

ฉันรันคำสั่งต่อไปนี้บนเทอร์มินัล

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

ทุกครั้งที่ฉันได้รับข้อความแสดงข้อผิดพลาดดังต่อไปนี้

ข้อผิดพลาด 1045 (28000) การเข้าถึงถูกปฏิเสธสำหรับผู้ใช้ 'root' @ 'localhost' (โดยใช้รหัสผ่าน NO)

โปรดชี้แนะฉันสำหรับการติดตาม

  1. ฉันจะรับ mysql prompt ใน linux terminal ได้อย่างไร
  2. ฉันจะหยุดเซิร์ฟเวอร์ mysql จาก linux terminal ได้อย่างไร
  3. ฉันจะเริ่มเซิร์ฟเวอร์ mysql จาก linux terminal ได้อย่างไร
  4. ฉันจะรับ mysql prompt ใน linux terminal ได้อย่างไร
  5. ฉันจะเข้าสู่ระบบเซิร์ฟเวอร์ mysql จาก linux terminal ได้อย่างไร?
  6. ฉันจะแก้ไขข้อผิดพลาดต่อไปนี้ได้อย่างไร

ข้อผิดพลาด 1045 (28000) การเข้าถึงถูกปฏิเสธสำหรับผู้ใช้ 'root' @ 'localhost' (โดยใช้รหัสผ่าน NO)

โปรดให้คำตอบสำหรับคำถามข้างต้น ขอบคุณ


1
เมื่อใดก็ตามที่ฉันเรียกใช้คำสั่งนี้ mysql -u root -p มันไม่ถามรหัสผ่านฉันและฉันได้รับข้อความแสดงข้อผิดพลาด "ERROR 1045 (28000) Access ถูกปฏิเสธสำหรับผู้ใช้ 'root' @ 'localhost' (ใช้รหัสผ่าน NO)" อีกคำถามคือที่ ฉันจะเรียกใช้พรอมต์คำสั่งด้านบนในโฟลเดอร์รูทหรือไม่หรือต้องไปที่ไดเร็กทอรีเฉพาะ ให้เส้นทางแก่ฉัน ขอบคุณ!
Param-Ganak

ลองเปลี่ยนไวยากรณ์สำหรับคำสั่งของคุณเช่น: "mysql --user = root --password" (ลบเครื่องหมายคำพูดเมื่อคุณพิมพ์บนบรรทัดคำสั่ง) ไม่อย่างนั้นมันดูแปลกมากที่คุณไม่ได้รับแจ้งให้ใส่รหัสผ่านและฉันสงสัยว่าอาจมีอย่างอื่นเกิดขึ้นนอกขอบเขตของ mysql
baraboom

คำตอบ:


180

1.- ฉันจะรับ mysql prompt ใน linux terminal ได้อย่างไร?

mysql -u root -p

ที่Enter password:พร้อมท์ให้ป้อนรหัสผ่านของรูท :)

คุณสามารถค้นหาการอ้างอิงต่อไปโดยการพิมพ์mysql --helpหรืออย่างคู่มือออนไลน์

2. ฉันจะหยุดเซิร์ฟเวอร์ mysql จาก linux terminal ได้อย่างไร?

มันขึ้นอยู่กับ. Distros ที่ใช้ Red Hat มีserviceคำสั่ง:

service mysqld stop

distros อื่น ๆ จำเป็นต้องเรียกใช้สคริปต์ init โดยตรง:

/etc/init.d/mysqld stop

3. ฉันจะเริ่มต้นเซิร์ฟเวอร์ mysql จาก linux terminal ได้อย่างไร?

เหมือนกับ # 2 แต่มีstart.

4. ฉันจะรับ mysql prompt ใน linux terminal ได้อย่างไร?

เหมือนกับ # 1

5. ฉันจะเข้าสู่เซิร์ฟเวอร์ mysql จาก linux terminal ได้อย่างไร?

เหมือนกับ # 1

6. ฉันจะแก้ไขข้อผิดพลาดต่อไปนี้ได้อย่างไร?

เหมือนกับ # 1


10

คำถามแรกของคุณ:

mysql -u root -p

หรือ

mysqladmin -u root -p "your_command"

ขึ้นอยู่กับว่าคุณต้องการทำอะไร รหัสผ่านจะถามคุณเมื่อคุณกด Enter! ฉันคาดเดาคุณอยากจะใช้MySQLและไม่mysqladmin

สำหรับการรีสตาร์ทหรือหยุดเซิร์ฟเวอร์ MySQL บน linux นั้นขึ้นอยู่กับการติดตั้งของคุณ แต่ในอนุพันธ์เดเบียนทั่วไปสิ่งนี้จะใช้ได้กับการเริ่มต้นหยุดและเริ่มบริการใหม่:

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

ใน distros ที่ใหม่กว่านี้อาจใช้งานได้เช่นกันหาก MySQL ถูกตั้งค่าเป็น deamon / service

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

แต่คำถามนั้นเป็นไปไม่ได้เลยที่จะตอบโดยไม่ทราบการตั้งค่าเฉพาะของคุณ


เมื่อใดก็ตามที่ฉันเรียกใช้คำสั่งนี้ mysql -u root -p มันไม่ถามรหัสผ่านฉันและฉันได้รับข้อความแสดงข้อผิดพลาด "ERROR 1045 (28000) การเข้าถึงถูกปฏิเสธสำหรับผู้ใช้ 'root' @ 'localhost' (โดยใช้รหัสผ่าน NO)" คำถามอื่นอยู่ที่ ฉันจะเรียกใช้พรอมต์คำสั่งด้านบนในโฟลเดอร์รูทหรือไม่หรือต้องไปที่ไดเร็กทอรีเฉพาะให้เส้นทางของฉันขอบคุณ
Param-Ganak

คุณไม่จำเป็นต้องไปที่ไดเร็กทอรีเฉพาะ คุณสามารถเรียกใช้งานได้จากทุกที่ คุณสามารถวางการตอบสนองต่อuname -aและmysql --versionและวางพวกเขาที่นี่ (แค่ใส่ไว้ในสถานี) เราอาจให้ความช่วยเหลือคุณได้มากกว่านี้ service mysql statusยังจะเป็นประโยชน์
flindeberg

5

ฉันคิดว่าคุณกำลังต้องการใช้ไคลเอนต์ mysql ซึ่งเป็นสิ่งที่ดีและมีประสิทธิภาพในการใช้งานมากกว่าทางเลือกอื่น ๆ ของ phpMyAdmin

วิธีที่เหมาะสมในการเข้าสู่ระบบด้วยไคลเอนต์บรรทัดคำสั่งคือการพิมพ์:

mysql -u username -p

สังเกตว่าฉันไม่ได้พิมพ์รหัสผ่าน การทำเช่นนั้นจะทำให้รหัสผ่านปรากฏบนหน้าจอซึ่งไม่ดีในสภาพแวดล้อมของผู้ใช้หลายคน!

หลังจากพิมพ์ปุ่ม enter นี้ mysql จะถามรหัสผ่านจากคุณ

เมื่อเข้าสู่ระบบแน่นอนว่าคุณจะต้อง:

use databaseName;

จะทำอะไรก็ได้

โชคดี.


เมื่อใดก็ตามที่ฉันเรียกใช้คำสั่งนี้ mysql -u root -p มันไม่ถามรหัสผ่านฉันและฉันได้รับข้อความแสดงข้อผิดพลาด "ERROR 1045 (28000) Access ถูกปฏิเสธสำหรับผู้ใช้ 'root' @ 'localhost' (ใช้รหัสผ่าน NO)" อีกคำถามคือที่ ฉันจะเรียกใช้พรอมต์คำสั่งด้านบนในโฟลเดอร์รูทหรือไม่หรือต้องไปที่ไดเร็กทอรีเฉพาะ ให้เส้นทางแก่ฉัน ขอบคุณ!
Param-Ganak

คุณใช้ linux distro ตัวใดอยู่
stefgosselin

5

ที่พรอมต์คำสั่งลอง:

mysql -u root -p

ให้รหัสผ่านเมื่อได้รับแจ้ง


เมื่อใดก็ตามที่ฉันเรียกใช้คำสั่งนี้ mysql -u root -p มันไม่ถามรหัสผ่านฉันและฉันได้รับข้อความแสดงข้อผิดพลาด "ERROR 1045 (28000) Access ถูกปฏิเสธสำหรับผู้ใช้ 'root' @ 'localhost' (ใช้รหัสผ่าน NO)" อีกคำถามคือที่ ฉันจะเรียกใช้พรอมต์คำสั่งด้านบนในโฟลเดอร์รูทหรือไม่หรือต้องไปที่ไดเร็กทอรีเฉพาะ ให้เส้นทางแก่ฉัน ขอบคุณ!
Param-Ganak

คุณควรจะเรียกใช้จากโฮมไดเร็กทอรีของคุณได้ตราบเท่าที่คุณกำหนดค่าพา ธ ไว้ มันน่าจะใช้ได้ ...
quarkonium

4

วันนี้ฉันมีปัญหาเดียวกันกับ ArchLinux VPS

mysql -u root -pไม่ได้ผลในขณะที่mysql -u root -pmypasswordทำ

ปรากฎว่าฉันมีไฟล์อุปกรณ์ / dev / tty ที่ใช้งานไม่ได้ (เป็นไปได้มากที่สุดหลังจากการอัปเกรด udev) ดังนั้น mysql จึงไม่สามารถใช้เพื่อเข้าสู่ระบบแบบโต้ตอบได้

ฉันสิ้นสุดการลบ / dev / TTY และสร้างมันด้วยและmknod /dev/tty c 5 1 chmod 666 /dev/ttyนั่นช่วยแก้ปัญหา mysql และปัญหาอื่น ๆ ด้วย


ใช้งานได้จริง! ตอนนี้ทุกคนสามารถเห็นรหัสผ่านรูทใน bash_history แล้ว : / คุณรู้ได้อย่างไรว่า / dev / tty ถูกทำให้สับสน?
user3870315

2
  1. คุณควรใช้mysqlคำสั่ง เป็นไคลเอนต์บรรทัดคำสั่งสำหรับ mysql RDBMS และมาพร้อมกับการติดตั้ง mysql ส่วนใหญ่: http://dev.mysql.com/doc/refman/5.1/en/mysql.html

  2. ที่จะหยุดหรือเริ่มต้นฐานข้อมูล mysql (คุณไม่ค่อยควรจะต้องทำที่ 'ด้วยมือ') ใช้สคริปต์ init ที่เหมาะสมกับstopหรือพารามิเตอร์มักจะstart /etc/init.d/mysql stopอย่างไรก็ตามสิ่งนี้ขึ้นอยู่กับการกระจาย linux ของคุณ การแจกแจงservice mysql startแบบใหม่บางส่วนสนับสนุนรูปแบบ

  3. คุณกำลังเข้าสู่ระบบโดยใช้mysqlsql shell

  4. ข้อผิดพลาดอาจเกิดจากพารามิเตอร์ '-p' สองเท่า คุณสามารถระบุ-ppasswordหรือเพียงแค่-pและระบบจะถามรหัสผ่านแบบโต้ตอบ โปรดทราบว่าบางตัวติดตั้งอาจใช้ผู้ใช้ mysql (ไม่ใช่รูท) เป็นผู้ใช้ระดับผู้ดูแลระบบ ตรวจสอบการกำหนดค่า sqlyog ของคุณเพื่อรับพารามิเตอร์การเชื่อมต่อที่ใช้งานได้



2

ใน Ubuntu สิ่งที่ฉันต้องทำคือsudo mysqlในเทอร์มินัล GNOME เท่านี้เอง ฉันสามารถเริ่มสร้างฐานข้อมูลหรือสืบค้นข้อมูลในตารางเป็นต้น


1

หากต้องการหยุดหรือเริ่ม mysql บนระบบ linux ส่วนใหญ่สิ่งต่อไปนี้ควรใช้งานได้:

/etc/init.d/mysqld stop

/etc/init.d/mysqld start

คำตอบอื่น ๆ ดูดีสำหรับการเข้าถึงไคลเอนต์ mysql จากบรรทัดคำสั่ง

โชคดี!


1

ถ้าคุณยังไม่สามารถเข้าถึงฐานข้อมูล 1. ในข้อความแสดงข้อผิดพลาดของคุณถูกตั้งค่ารหัสผ่านไม่ได้ใช่ไหม จากนั้นให้ทำ mysqlpasswd 'username' ก่อนหลังจากนั้นให้ป้อนจากนั้นป้อนรหัสผ่านอีกครั้งตามที่ร้องขอจากนั้นลองเข้าถึงอีกครั้งด้วย mysql -p หากคุณเป็นรูท


1

หากคุณลงชื่อเข้าใช้ด้วย root just แล้ว

mysql -u root

การแจ้งรหัสผ่านจะส่งคืนเป็นข้อผิดพลาด


โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.