Почему мои настройки .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-адрес, а не с базой данных. Я не совсем уверен, стоит ли его закрывать или я должен предоставить обновление в качестве ответа.
Дэвид Лебауэр
Зачастую достаточно комментировать аккаунты, которые не следует использовать с «#».
Я не понимаю, что вы имеете в виду - как это отвечает на вопрос?
Дэвид Лебауэр,

Ответы:

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 (кстати, поздравляю с вашим значком mysql)
RolandoMySQLDBA
Я собирался поднять голос, а потом сказал «Вау, Дежавю». Это было несколько месяцев назад.
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.

Кристиан Питч
источник