ทำไมการตั้งค่า. my.cnf ของฉันไม่ทำงาน


15

ฉันมีไฟล์. my.cnf ในโฮมไดเร็กตอรี่ของฉันบนเดสก์ท็อปที่มี:

[dbid]
user = myusername
password = mypassword
database = dbname
host = server.location.com

ถ้าฉันจำได้ถูกต้องก่อนอัพเกรดจาก Ubuntu 10.04 เป็น 11.04 ฉันสามารถใช้คำสั่งได้

mysql dbid

เพื่อเชื่อมต่อโดยตรงกับฐานข้อมูล

แต่วันนี้ฉันได้รับข้อผิดพลาดนี้:

ERROR 1049 (42000): Unknown database 'dbname'

ฉันทำอะไรผิดหรือเปล่า?


ฉันตั้งค่าสถานะนี้ว่า 'ไม่ใช่คำถามจริง' ตามคำตอบที่ฉันได้รวมไว้ในการอัปเดต ปัญหาเกี่ยวข้องกับการเปลี่ยนแปลงที่ทำกับที่อยู่ IP แทนที่จะต้องทำกับฐานข้อมูล ฉันไม่แน่ใจจริงๆว่าควรจะปิดมันหรือถ้าฉันควรจะให้การปรับปรุงเป็นคำตอบ
David LeBauer

บ่อยครั้งที่มันเพียงพอที่จะแสดงความคิดเห็นบัญชีที่ไม่ควรใช้กับ "#"

ฉันไม่เข้าใจสิ่งที่คุณหมายถึง - วิธีนี้ตอบคำถามได้อย่างไร
David LeBauer

คำตอบ:


23

ฉันไม่แน่ใจว่า. my.cnf ก่อนหน้านี้ของคุณทำงานอย่างไรและฉันไม่เคยใช้ไฟล์เหล่านี้มาก่อน (ส่วนใหญ่เป็นเพราะฉันไม่รู้เกี่ยวกับไฟล์เหล่านั้น) ดังนั้นหลังจากการวิจัยเล็กน้อยฉันพบลิงค์นี้และพบกับ ~ / .my.cnf ต่อไปนี้ที่เหมาะกับฉัน:

[clientdbid]
password = mypass
database = dbname
host = server.location.com

และคำสั่งที่อ่านมัน:

mysql --defaults-group-suffix=dbid

สองสิ่งที่จะชี้ให้เห็น (ไฮไลท์จากบทความที่เชื่อมโยง):

  • กลุ่มจะต้องนำหน้าด้วย 'ไคลเอนต์' เพื่อให้อ่านโดย mysql
  • จะต้องดำเนินการหลังจาก [กลุ่มลูกค้า] มิฉะนั้นจะถูกแทนที่

ฉันทดสอบสิ่งนี้บน mysql 5.5 บน Mac ใช้งานได้ดี และตอนนี้ที่ฉันรู้เกี่ยวกับพวกเขาฉันจะใช้พวกเขา!

อัปเดต หลังจากที่ฉันตั้งค่านี้ฉันก็รู้ว่าบรรทัดคำสั่งmysql --defaults-group-suffix=dbidนั้นค่อนข้างหนัก เพื่อเป็นโบนัสเพิ่มสมมติว่าคุณใช้ Linux / Mac / Etc ทำสิ่งนี้:

echo 'alias mysql_dbid="mysql --defaults-group-suffix=dbid"' >> ~/.profile

dbidชื่อกลุ่มต่อท้ายของคุณอยู่ที่ไหน


เฮ้ @ การทดสอบสิ่งที่ดีในคำตอบของคุณ !!! +1 (BTW ขอแสดงความยินดีกับตราสัญลักษณ์ mysql ของคุณ)
RolandoMySQLDBA

ฉันจะลงคะแนนให้คนนี้แล้วฉันก็บอกว่าวว Dejavu นี่คือจากหลายเดือนหลัง
RolandoMySQLDBA

0

ผู้ดูแลระบบฐานข้อมูลของฉันช่วยฉันเปิดเผยปัญหาและนี่คือวิธีแก้ไขปัญหาเดิมที่แจ้งคำถามนี้:

ปัญหา (ตามที่ฉันเข้าใจ) คือฐานข้อมูลอนุญาตการเข้าถึงคอมพิวเตอร์ตามที่อยู่ IP เฉพาะเท่านั้น ที่อยู่ IP ของฉันเปลี่ยนไปเมื่อฉันมีคอมพิวเตอร์เครื่องใหม่และฉันมีรหัสผ่านที่แตกต่างกันสำหรับบัญชีที่ตั้งค่าด้วยที่อยู่ IP ที่แตกต่างกันในคำพูดของผู้ดูแลระบบฐานข้อมูลของฉัน

ฉันมีชื่อผู้ใช้ที่แตกต่างกันเล็กน้อยสำหรับคุณโดยอิงจาก user@olddesktopip.edu, user@newdesktopip.edu และที่อยู่ IP ของคุณ รหัสผ่านไม่เหมือนกันสำหรับพวกเขาทั้งหมดที่ทำให้เกิดความสับสนมันเป็นความผิดของฉันสำหรับปัญหา


0

เป็นการอัปเดตเป็นอัปเดตของ Derek Downey นี่คือวิธีที่ฉันใช้ไฟล์ ~ / .my.cnf ทั่วไปในคอมพิวเตอร์ Linux อื่น ๆ โดยเลือกหัวข้อที่เหมาะสมตามชื่อโฮสต์โดยอัตโนมัติ:

echo 'alias mysql="mysql --defaults-group-suffix=$HOST"' >> ~/.bash_aliases

mysqlหลังจากนั้นทั้งหมดที่ฉันต้องพิมพ์ในบรรทัดคำสั่งคือ

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