Я пытаюсь запустить 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 в ваш терминал.