Использование Mysql в командной строке в команде osx - команда не найдена?

Я пытаюсь запустить mysql на моем mac osx 10.9.5. Я установил последнюю версию сервера сообщества 14.14 5.6.21. Я перешел на системные настройки и запустил сервер mysql, затем запустил терминал и набрал это:

/usr/local/mysql/bin/mysql --version, который возвращает версию, но когда я ввожу любой тип команды mysql, я получаю command not found. Я также пробовал sudo mysql_secure_installation, mysql -u root --password=password.

У меня есть веб-хостинг с установленным mysql и т.д., но я хочу, чтобы он смог справиться с ним в командной строке.

Ответ 1

Итак, есть несколько мест, где терминал ищет команды. Эти места хранятся в переменной $PATH. Подумайте об этом как о глобальной переменной, где терминал выполняет итерацию для поиска любой команды. Обычно это двоичные файлы, как обычно ссылаются на папку /bin.

В папке

/bin есть много исполняемых файлов внутри. Оказывается, это команда. Эти разные местоположения папок хранятся внутри одной глобальной переменной i.e. $PATH, разделенной символом :

Теперь обычно программы при установке заботятся об обновлении PATH и сообщают вашему терминалу, что я могу быть всеми командами внутри моей папки bin.

Оказывается, MySql не делает этого при установке, поэтому мы вручную должны это делать.

Мы делаем это, следуя команде,

export PATH=$PATH:/usr/local/mysql/bin

Если вы сломаете его, export будет самоочевидным. Подумайте об этом как о назначении. Итак export переменная PATH со значением old $PATH concat с новым bin i.e. /usr/local/mysql/bin

Таким образом, после выполнения команды все команды внутри /usr/local/mysql/bin доступны нам.

Здесь есть небольшой улов. Подумайте о одном окне терминала как о одном экземпляре программы, и, возможно, что-то вроде $PATH является переменной класса (возможно). Обратите внимание, что это чистое предположение. Поэтому после закрытия мы теряем новое задание. И если мы снова откроем терминал, у нас не будет доступа к нашей команде еще раз, потому что последний раз, когда мы экспортировали, он был сохранен в первичной памяти, которая нестабильна.

Теперь нам нужно, чтобы наши бинарные файлы mysql экспортировались каждый раз, когда мы используем терминал. Таким образом, мы должны сохраняться CONCAT на нашем пути.

Возможно, вам известно, что наш терминал использует что-то под названием dotfiles для загрузки конфигурации при инициализации терминала. Мне нравится думать о нем как о наборах вещей, переданных конструктору каждый раз, когда создается новый экземпляр терминала (опять же предположение, но близко к тому, что он может делать). Итак, да, теперь вы понимаете, что мы собираемся сделать.

.bash_profile является одним из основных известных dotfile.

Итак, в следующей команде

echo 'export PATH=$PATH:/usr/local/mysql/bin' >> ~/.bash_profile

Что мы делаем, это сохранение результата echo, то есть выходной строки в ~/.bash_profile

Итак, теперь, как мы отметили выше, каждый раз мы открываем терминал или экземпляр терминала, загружаются наши dotfiles. Таким образом, загружается .bash_profile и export, который мы добавили выше, и, таким образом, обновляется наш глобальный $PATH, и мы получаем все команды внутри /usr/local/mysql/bin.

P.s.

если вы не запускаете первый экспорт команд напрямую, а просто выполняете второй, чтобы сохранить его? Если для текущего текущего экземпляра терминала вам нужно,

source ~/.bash_profile

Это говорит нашему терминалу о перезагрузке этого конкретного файла.

Ответ 2

Это означает, что /usr/local/mysql/bin/mysql не находится в переменной PATH.

Либо выполните /usr/local/mysql/bin/mysql, чтобы получить оболочку mysql,

или введите это в свой терминал:

PATH=$PATH:/usr/local/mysql/bin

чтобы добавить это к вашей переменной PATH, чтобы вы могли просто запустить mysql без указания пути

Ответ 3

Вы можете просто изменить .bash_profile, добавив MySQL $PATH следующим образом:
export PATH=$PATH:/usr/local/mysql/bin.

Я сделал следующее:

1- Открыть терминал, затем $ nano .bash_profile или $ vim .bash_profile

2- Добавьте следующий код PATH в .bash_profile

# Set architecture flags
export ARCHFLAGS="-arch x86_64"
# Ensure user-installed binaries take precedence
export PATH=/usr/local/mysql/bin:$PATH
# Load .bashrc if it exists
test -f ~/.bashrc && source ~/.bashrc 

3- Сохраните файл.

4- Обновить терминал с помощью $ source ~/.bash_profile

5- Чтобы проверить, введите терминал $ mysql --version

6- Он должен напечатать вывод примерно так:

$ mysql Ver 14.14 Distrib 5.7.17, for macos10.12 (x86_64)

Теперь терминал настроен на чтение команд MySQL из $PATH, который помещается в .bash_profile.

Ответ 4

у меня работали следующие команды:

$ brew install mysql

$ brew services start mysql

Ответ 5

измените свой профиль bash следующим образом < > $vim ~/.bash_profile export PATH =/usr/local/mysql/bin: $PATH После его сохранения вы можете ввести mysql, чтобы вывести приглашение mysql в ваш терминал.