การเชื่อมต่อกับ MySQL ใน Bash (ไม่ได้ติดตั้ง MySQL)


11

ฉันพยายามเชื่อมต่อกับฐานข้อมูล MySQL ระยะไกลใน Bash บนเซิร์ฟเวอร์ที่โฮสต์ฐานข้อมูลฉันสามารถพิมพ์:

mysql -u _username_ -p

เพื่อเชื่อมต่อ

ฉันต้องการพิมพ์:

mysql -h _host_ -u _username_ -p

เพื่อเชื่อมต่อจากเซิร์ฟเวอร์อื่น ฉันไม่ได้ติดตั้ง MySQL บนไคลเอนต์ดังนั้นจึงไม่พบคำสั่ง มีบางอย่างที่ฉันสามารถติดตั้ง (เหมาะสำหรับ apt-get) นอกเหนือจาก MySQL-server ทั้งหมดดังนั้นฉันจึงสามารถใช้คำสั่ง mysql ในการทุบตีได้หรือไม่?


1
apt-get install mysql-client ฉันคิดว่ามันเป็นเพียงไคลเอนต์ GUI
722307

คุณสามารถตอบคำถามของคุณเองและหลังจากนั้นคุณก็สามารถตอบรับได้
enzotib

คำตอบ:


21

ในการติดตั้งไคลเอนต์ MySQL บรรทัดคำสั่งคุณควรทำ:

sudo apt-get install mysql-client

จากนั้นคุณสามารถทำได้

mysql -h HOST -P PORT_NUMBER -u USERNAME -p

อย่างไรก็ตามคุณอาจจำเป็นต้องแก้ไขการตั้งค่าเซิร์ฟเวอร์ MySQL ตามค่าเริ่มต้นบน Ubuntu เซิร์ฟเวอร์ MySQL จะยอมรับการเชื่อมต่อจากเซิร์ฟเวอร์ภายในเท่านั้น การตั้งค่าที่เรียกว่าและตั้งอยู่ในbind-address /etc/mysql/my.cnfโดยค่าเริ่มต้นคือ127.0.0.1- คุณควรเปลี่ยนเป็นที่อยู่ IP ของเซิร์ฟเวอร์ หากเซิร์ฟเวอร์มีหลายที่อยู่ IP คุณสามารถเลือกที่อยู่ IP เดียว (พูดสำหรับเครือข่ายภายใน) หรือให้ MySQL ฟังที่อยู่ IP ทั้งหมดโดยกำหนดค่า0.0.0.0

คุณจะต้องให้แน่ใจว่าผู้ใช้ MySQL สามารถเข้าถึงฐานข้อมูล ทำตามคำแนะนำบนอินเทอร์เน็ตคุณอาจสร้างผู้ใช้'myname'@'localhost'- ผู้ใช้นั้นจะไม่สามารถเชื่อมต่อจากระยะไกล ในการสร้างผู้ใช้ใหม่ที่สามารถเชื่อมต่อจากที่อยู่ IP ของลูกค้าคุณต้องทำสิ่งต่อไปนี้:

GRANT ALL PRIVILEGES ON database_name TO 'username'@'192.168.0.51' IDENTIFIED BY 'password';

อ่านเพิ่มเติมเล็กน้อยเกี่ยวกับสเปคที่อยู่การใช้งาน MySQL

ในที่สุดอย่าลืมตรวจสอบให้แน่ใจว่าไฟร์วอลล์ของเซิร์ฟเวอร์จะอนุญาตให้เข้าถึงพอร์ต MySQL - ค่าเริ่มต้นคือ 3306

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