3

Как новичок, я пытаюсь пройти этот урок: http://net.tutsplus.com/tutorials/python-tutorials/python-from-scratch-creating-a-dynamic-website/

Я нахожусь в точке, где я использовал brew install MySQL и установил эту версию: mysql-5.6.10. Я бегу питон 2.7

Когда я пытаюсь запустить mysqld в терминале, чтобы запустить сервер, я получаю эту ошибку:

Davids-MacBook-Pro:~ David$ mysqld
2013-03-17 18:20:28 0 [Warning] TIMESTAMP with implicit DEFAULT value is deprecated. Please use --explicit_defaults_for_timestamp server option (see documentation for more details).
2013-03-17 18:20:28 3818 [Warning] Can't create test file /usr/local/var/mysql/Davids-MacBook-Pro.lower-test
2013-03-17 18:20:28 3818 [Warning] Can't create test file /usr/local/var/mysql/Davids-MacBook-Pro.lower-test
mysqld: Can't change dir to '/usr/local/var/mysql/' (Errcode: 2 - No such file or directory)
2013-03-17 18:20:28 3818 [ERROR] Aborting

2013-03-17 18:20:28 3818 [Note] Binlog end
2013-03-17 18:20:28 3818 [Note] mysqld: Shutdown complete

1 ответ1

1

Я только что установил MySQL (той же версии, что вы перечислили), используя Homebrew, и столкнулся с проблемами, похожими на вашу.

Я отмечу, что моя копия Homebrew, вероятно, не здорова; brew doctor продолжает предупреждать меня, особенно о предполагаемой установке MacPorts или fink, и я планирую в какой-то момент перерисовать эту старую коробку с нуля.

Это сказало, что я взломал мой путь через проблему, используя следующее:

mkdir /local/var/mysql

# From the `brew info mysql` command's output:
unset TMPDIR
mysql_install_db --verbose --user=`whoami` --basedir="$(brew --prefix mysql)" --datadir=/usr/local/var/mysql --tmpdir=/tmp

(Это только три команды; игнорируйте комментарий #, если вставляете их в свой терминал).

Оттуда я запустил mysqld_safe --skip-grant-tables в одном терминале и, с другого, подключился к этому серверу, используя mysql -u root . Оттуда я побежал:

UPDATE mysql.user SET Password=PASSWORD('**MY_NEW_PASSWORD**') WHERE User='root';
FLUSH PRIVILEGES;

Выйдите из сеанса сервера, нажав Ctrl-C, а затем я убил mysqld_safe с помощью mysqladmin -u root -p shutdown и перезапустил MySQL со ссылкой Homebrew: mysql.server start

Это, кажется, сделало работу. Я не знаю, будет ли он автоматически запускать MySQL при перезапуске моего Mac; но я все равно этого не хочу. Если это работает для вас, этого должно быть достаточно, чтобы вы попали в само руководство. Вам, возможно, придется открывать терминал и запускать mysql.server start каждый раз, когда вы хотите работать с вашими базами данных, конечно ... и я позволю вам самостоятельно искать его для добавления в launchctl если вы этого хотите).

Обратите внимание, что часть о запуске mysqld_safe --skip-grant-tables является способом "взлома" ваших баз данных MySQL, позволяя вам локально подключаться как "root" (суперпользователь MySQL или администратор), не зная старого пароля) , Другие посты здесь на SO предполагают, что Homebrew должен был установить каталог и установить для вас исходный пароль "новый пароль".

Команда UPDATE, которую я показал здесь, является частью обычного процесса, с помощью которого любой администратор MySQL будет принудительно восстанавливать пароль для любой системы MySQL, где пароль root был утерян. База данных с именем "mysql" хранит собственные таблицы управления MySQL, а в таблице "user" есть столбцы для "Password" и "User". Функция PASSWORD() берет простой текст (пароль, который вы собираетесь ввести) и хэширует его, то есть выполняет сложный набор математических операций над числовым кодированием строки / текста, который похож на "контрольная сумма". MySQL хранит такие хэши в столбце Password в mysql.user, а не в виде простого текста самого пароля.

Хеширование паролей является функцией почти всех операционных систем, систем баз данных и большинства других систем и приложений, где используются пароли. Если вы в конечном итоге будете писать веб-приложения, то, скорее всего, вы будете использовать какую-то функцию хеширования для хранения и проверки паролей.

Как я уже сказал, я использую команду brew info mysql чтобы получить несколько советов о том, как "исправить" установку MySQL; Вы можете использовать эту команду для любых других вещей, которые вы устанавливаете через Homebrew, если она не работает так, как вы ожидаете.

Вот другая статья StackOverflow, которую я использовал для дальнейшей помощи: https://stackoverflow.com/questions/4359131/brew-install-mysql-on-mac-os

Я намеренно перебил некоторые из этих деталей, потому что вы сказали, что вы очень новичок во всем этом.

(На днях некоторые действительно опытные участники СО скажут мне предпочтительный способ перекрестной ссылки на другие вопросы СО, ответы и комментарии).

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .