Чому мої налаштування .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

Часто досить коментувати акаунти, які не повинні використовуватися з "#".

Я не розумію, що ви маєте на увазі - як це відповідає на питання?
Девід Лебоуер

Відповіді:


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назва вашої групи суфіксів.


Привіт @DTest, добрі речі у вашій відповіді !!! +1 (
Подяки

Я збирався схвалити цю, тоді я сказав Вау Деяву. Це було від декількох місяців тому.
RolandoMySQLDBA

0

Мій адміністратор бази даних допоміг мені розкрити проблему, і ось ось рішення вихідної проблеми, яка спонукала це питання:

Проблема (наскільки я це розумію) полягала в тому, що база даних дозволяє отримати доступ лише до комп'ютерів на основі конкретних IP-адрес. Моя IP-адреса змінилася, коли я отримав новий комп'ютер, і у мене були різні паролі для облікових записів, які були налаштовані з різними IP-адресами, словами мого адміністратора бази даних

У вас було кілька імен користувачів для вас на основі user@olddesktopip.edu, user@newdesktopip.edu та вашої IP-адреси. Паролі не були однаковими для всіх, що спричинило плутанину, я був винен у моїй проблемі.


0

Як оновлення до оновлення Дерека Дауні, саме так я використовую загальний файл ~ / .my.cnf на різних комп'ютерах Linux, автоматично вибираючи відповідний розділ відповідно до імені хоста:

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

Після цього все, що мені потрібно набрати в командному рядку, - це mysql.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.