brew устанавливает mysql на macOS
-
08-10-2019 - |
Вопрос
Я пытаюсь настроить MySQL на mac os 10.6, используя Homebrew by brew install mysql 5.1.52
.
Все идет хорошо, и я также добиваюсь успеха в mysql_install_db
.
Однако, когда я пытаюсь подключиться к серверу с помощью:
/usr/local/Cellar/mysql/5.1.52/bin/mysqladmin -u root password 'mypass'
Я получаю:
/usr/local/Cellar/mysql/5.1.52/bin/mysqladmin: connect to server at 'localhost' failed error: 'Access denied for user 'root'@'localhost' (using password: NO)'
Я пытался получить доступ mysqladmin or mysql using -u root -proot
также,
но это не работает ни с паролем, ни без него.
Это совершенно новая установка на совершенно новом компьютере, и, насколько я знаю, новая установка должна быть доступна без пароля root.Я тоже пытался:
/usr/local/Cellar/mysql/5.1.52/bin/mysql_secure_installation
но я также получаю
ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: NO)
Решение
Я думаю, что можно оказаться в таком положении, если уже установлены более старые версии mysql.У меня была такая же проблема, и ни одно из вышеперечисленных решений не сработало для меня.Я исправил это таким образом:
Использованное пиво remove
& cleanup
команды, выгрузившие launchctl
скрипт, затем удалил каталог mysql в /usr/local/var
, удалил мои существующие /etc/my.cnf
(оставьте это на ваше усмотрение, если оно применимо) и launchctl plist
Обновил строку для списка.Обратите также внимание, что ваш альтернативный каталог сценариев безопасности будет зависеть от того, какую версию MySQL вы устанавливаете.
Шаг за шагом:
brew remove mysql
brew cleanup
launchctl unload -w ~/Library/LaunchAgents/homebrew.mxcl.mysql.plist
rm ~/Library/LaunchAgents/homebrew.mxcl.mysql.plist
sudo rm -rf /usr/local/var/mysql
Затем я начал с нуля:
- установленный mysql с
brew install mysql
выполнил команды, предложенные brew:(см. примечание:ниже)
unset TMPDIR mysql_install_db --verbose --user=`whoami` --basedir="$(brew --prefix mysql)" --datadir=/usr/local/var/mysql --tmpdir=/tmp
Запустите mysql с помощью
mysql.server start
команда, чтобы иметь возможность войти в нееИспользовал альтернативный сценарий безопасности:
/usr/local/Cellar/mysql/5.5.10/bin/mysql_secure_installation
Последовал за
launchctl
раздел из выходных данных скрипта brew package, такой как,#start launchctl load -w ~/Library/LaunchAgents/homebrew.mxcl.mysql.plist #stop launchctl unload -w ~/Library/LaunchAgents/homebrew.mxcl.mysql.plist
Бум.
Надеюсь, это кому-нибудь поможет!
Примечание: тот самый --force
немного о brew cleanup
также будет произведена очистка устаревших кегов, думаю, это новая функция домашнего приготовления.
Обратите внимание на второе: комментатор говорит, что шаг 2 не требуется.Я не хочу это тестировать, так что YMMV!
Другие советы
Вот подробные инструкции, комбинирующие избавиться от всего mysql с вашего Mac, а затем устанавливают его, как Sodorner писал выше:
Удалить MySQL полностью за Технологическая лаборатория
ps -ax | grep mysql
- остановиться и
kill
Любые процессы MySQL sudo rm /usr/local/mysql
sudo rm -rf /usr/local/var/mysql
sudo rm -rf /usr/local/mysql*
sudo rm ~/Library/LaunchAgents/homebrew.mxcl.mysql.plist
sudo rm -rf /Library/StartupItems/MySQLCOM
sudo rm -rf /Library/PreferencePanes/My*
launchctl unload -w ~/Library/LaunchAgents/homebrew.mxcl.mysql.plist
- редактировать
/etc/hostconfig
и удалить линиюMYSQLCOM=-YES-
rm -rf ~/Library/PreferencePanes/My*
sudo rm -rf /Library/Receipts/mysql*
sudo rm -rf /Library/Receipts/MySQL*
sudo rm -rf /private/var/db/receipts/*mysql*
sudo rm -rf /tmp/mysql*
- Попробуйте запустить
mysql
, это не должно работать
Brew Установить MySQL на пользователя Sodorner из этого Переполнение стека отвечать
brew doctor
и исправить любые ошибкиbrew remove mysql
brew cleanup
brew update
brew install mysql
unset TMPDIR
mysql_install_db --verbose --user=
кто я--basedir="$(brew --prefix mysql)" --datadir=/usr/local/var/mysql --tmpdir=/tmp
mysql.server start
- Запустите команды Brew предлагают, добавьте mysql на
launchctl
так что он автоматически запускается при запуске
mysql
теперь должен работать и работать все время, как и ожидалось
Godspeed.
У меня была та же проблема.Похоже, что что-то не так с инструкциями по настройке или начальными таблицами, которые создаются.Вот как я запустил mysqld на своей машине.
Если сервер mysqld уже запущен на вашем Mac, сначала остановите его с помощью:
launchctl unload -w ~/Library/LaunchAgents/com.mysql.mysqld.plist
Запустите сервер mysqld с помощью следующей команды, которая позволяет любому пользователю войти в систему с полными правами доступа.
mysqld_safe --skip-grant-tables
Тогда беги mysql -u root
который теперь должен позволить вам успешно войти в систему без пароля.Следующая команда должна сбросить все пароли root.
UPDATE mysql.user SET Password=PASSWORD('NewPassword') WHERE User='root'; FLUSH PRIVILEGES;
Теперь, если вы отключите текущую копию mysqld_safe и запустите ее снова без опции skip-grant-tables, вы сможете войти в систему с помощью mysql -u root -p
и новый пароль, который вы только что установили.
Если Brew установлен MySQL 5.7, процесс немного отличается от предыдущих версий. Чтобы сбросить пароль корневого пароля, выполните следующие действия:
sudo rm -rf /usr/local/var/mysql
mysqld --initialize
Временный пароль будет напечатан на консоль, и его можно использовать только для обновления пароля корня:
mysql.server start
echo "ALTER USER 'root'@'localhost' IDENTIFIED BY 'my-new-password';" | mysql -uroot --password=TEMPORARY_PASSWORD
Хорошо, у меня была такая же проблема и решила его. По какой-то причине сценарий MySQL_Secure_Installation не работает из коробки при использовании домелки для установки MySQL, поэтому я сделал это вручную. На CLI ввод:
mysql -u root
Это должно заставить вас в mysql. Теперь сделайте следующее (взято из mysql_secure_installation):
UPDATE mysql.user SET Password=PASSWORD('your_new_pass') WHERE User='root';
DELETE FROM mysql.user WHERE User='root' AND Host NOT IN ('localhost', '127.0.0.1', '::1');
DELETE FROM mysql.user WHERE User='';
DELETE FROM mysql.db WHERE Db='test' OR Db='test\\_%'
DROP DATABASE test;
FLUSH PRIVILEGES;
Теперь выйдите и вернемся в MySQL с: mysql -u root -p
У меня была та же проблема только сейчас. если ты brew info mysql
и следуйте шагам, похоже, как корневой пароль должен быть new-password
если я правильно помню. Я видел то же самое, что вы видите. эта статья помог мне больше всего.
Оказалось, у меня не было Любые Счета созданы для меня. Когда я вошел в систему после запуска mysqld_safe
и сделал select * from user;
Ни один строки не были возвращены. Я открыл mysqlworkbench с mysqld_safe
работает и добавлен root
счет со всеми причинами, которые я ожидал. Это хорошо работает для меня сейчас.
Если MySQL уже установлен
Остановите MySQL полностью.
mysql.server stop
<- может понадобиться редактирование на основе вашей версииps -ef | grep mysql
<- перечислены процессы с MySQL в их имениkill [PID]
<- Убить процессы PID
Удалить файлы. Инструкции выше хорошие. Я добавлю:
sudo find /. -name "*mysql*"
- Используя свое суждение,
rm -rf
Эти файлы. Обратите внимание, что многие программы имеют драйверы для MySQL, которые вы не хотите удалять. Например, не удаляйте вещи в каталоге установки PHP. Удалите вещи в свой каталог MySQL.
Установить
Надеюсь, у вас есть домощь. Если нет, загрузите его.
Мне нравится бежать заваривать как root, но я не думаю, что вы должны. Редактировать 2018: вы больше не можете запустить варево
sudo brew update
sudo brew install cmake
<- зависимость для mysql, полезнаяsudo brew install openssl
<- зависимость для mysql, полезнаяsudo brew info mysql
<- Снимите через это ... Это дает вам некоторое представление о том, что происходит дальшеsudo brew install mysql --with-embedded; say done
<- Устанавливает MySQL с встроенным сервером. Говорит вам, когда он закончится (моя установка заняла 10 минут)
После
sudo chown -R mysql /usr/local/var/mysql/
<- mysql не будет работать для меня, пока я не провел эту командуsudo mysql.server start
<- еще раз, точный синтаксис может варьироваться- Создайте пользователей в mysql (http://dev.mysql.com/doc/refman/5.7/ruete-user.html.). Не забудьте добавить пароль для пользователя root.
Brew Info Mysql.
mysql: stable 5.6.12 (bottled)
http://dev.mysql.com/doc/refman/5.6/en/
Conflicts with: mariadb, mysql-cluster, percona-server
/usr/local/Cellar/mysql/5.6.12 (9363 files, 353M) *
Poured from bottle
From: https://github.com/mxcl/homebrew/commits/master/Library/Formula/mysql.rb
==> Dependencies
Build: cmake
==> Options
--enable-debug
Build with debug support
--enable-local-infile
Build with local infile loading support
--enable-memcached
Enable innodb-memcached support
--universal
Build a universal binary
--with-archive-storage-engine
Compile with the ARCHIVE storage engine enabled
--with-blackhole-storage-engine
Compile with the BLACKHOLE storage engine enabled
--with-embedded
Build the embedded server
--with-libedit
Compile with editline wrapper instead of readline
--with-tests
Build with unit tests
==> Caveats
A "/etc/my.cnf" from another install may interfere with a Homebrew-built
server starting up correctly.
To connect:
mysql -uroot
To reload mysql after an upgrade:
launchctl unload ~/Library/LaunchAgents/homebrew.mxcl.mysql.plist
launchctl load ~/Library/LaunchAgents/homebrew.mxcl.mysql.plist
MySQL.Service Start.
. ERROR! The server quit without updating PID file (/var/run/mysqld/mysqld.pid).
или mysql -U root
ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2)
Я ищу решение в течение некоторого времени, но не могу решить мою проблему. Я попробовал несколько решений в StackoverFlow.com, но это не помогает мне.
TL; доктор
MySQL Server может не работать после установки с помощью Brew. Пытаться brew services start mysql
или просто mysql.server start
Если вы не хотите, чтобы MySQL запустить в качестве фонового сервиса.
Полный рассказ:
Я только что установил MySQL (Custary) 5.7.17 на новом MacBook Pro запустить Sierra, а также получить ошибку при запуске mysql_secure_installation
:
Securing the MySQL server deployment.
Enter password for user root:
Error: Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2)
Чего-чего?
Согласно информации об установке из варевой mysql_secure_installation
Должен подсказать мне ... Закрепить установку. Я полагал, что сервер MySQL может не работать и правильно. Бег brew services start mysql
а потом mysql_secure_installation
работал как шарм.
Попробуйте, предоставляя команду разрешения гранта MySQL
Ни один из вышеперечисленных ответов (ни одной из десятков ответов, которые я видел в другом месте), работал для меня при использовании Brew с самой последней версией MySQL и Yosemite. Я закончил устанавливать другую версию MySQL через Brew.
Указание старой версии, сказав (например)
brew install mysql56
Работал для меня. Надеюсь, это поможет кому-то. Это была неприятная проблема, которую я чувствовал, что я застрял навсегда.
Вот обновление для MySQL 5.7
Bash --version GNU BASH, версия 4.4.12 (1) -релез (x86_64-Apple-darwin17.0.0) Copyright (C) 2016 Free Software Foundation, Inc. лицензия GPLV3 +: GNU GPL версия 3 или более что это бесплатное программное обеспечение; Вы можете изменить и перераспределить его. Нет гарантии, в той степени, в которой разрешено законом. # ================================================ Brew --version Homebrew 1.7.6 / Homebrew-Core (Git Revision EEB08; последний фиксатор 2018-09-27) Домашний / домовещная бочка (Git Revision C9F62; последний Champ 2018-09-27) # ==================================================================== =========================== MySQL --version MySQL Ver 14.14 Распределение 5.7.23, для OSX10.13 (x86_64) с использованием editline Wrapper # = ================================================= System_Profiler SPSoftWaredatatype Программное обеспечение: Обзор системы System: System: MacOS 10.13.3 (17D47) Версия для ядра: DARWIN 17.4.0 Объем загрузки: Macintosh HD Режим загрузки: Нормальное имя компьютера: EdisonMachomebj Имя пользователя: Edison (Edison) Безопасная виртуальная память: включена система защиты целостности: отключено с момента загрузки: 6 дней 23:13.
Brew удалить MySQL @ 5.7 Brew Cleanup MV / USR / Local / var / mysql /usr/local/var/mysql.bak brew Установить mysql @ 5.7 RM -RF / usr / local / var / mysql # ======= ================================== mysqld-initialize 2018-09-28T04: 54: 06.526061Z 0 [ПРЕДУПРЕЖДЕНИЕ ] Timestamp с неявным значением по умолчанию устарело. Пожалуйста, используйте - explicit_defaults_for_timestamp server server (см. Документацию для более подробной информации). 2018-09-28T04: 54: 06.542625Z 0 [ПРЕДУПРЕЖДЕНИЕ] Настройка Shree_case_Table_Names = 2 Поскольку файловая система для / usr / local / var / mysql / нечувствителен к регистру 2018-09-28T04: 54: 07.096637z 0 [Предупреждение] InnoDB: Новые файлы журнала созданы, LSN = 45790 2018-09-28T04: 54: 07.132950Z 0 [Предупреждение] InnoDB: Создание зарубежных ключевых системных таблиц ограничений. 2018-09-28T04: 54: 07.196824Z 0 [Предупреждение] Нет существующих UUID, поэтому мы предполагаем, что это первый раз, когда этот сервер запущен. Создание нового UUID: 87CF2F10-C2DA-11E8-AC2D-BA163DF10130. 2018-09-28T04: 54: 07.224871Z 0 [Предупреждение] GTID Таблица не готова к использованию. Таблица 'mysql.gtid_execured "не может быть открыта. 2018-09-28T04: 54: 07.366688Z 0 [ПРЕДУПРЕЖДЕНИЕ] Сертификат CA CA.PEM подписан на себя. 2018-09-28T04: 54: 07.457954Z 1 [Примечание] Временный пароль генерируется для root @ localhost: KQ3K = JR8; GQZ # =============================================================================== ===================== mysql_secure_Installation -uroot -p "kq3k = jr8; gqz" mysql_secure_installation: [Предупреждение] Использование пароля в интерфейсе командной строки может быть небезопасно. Защита развертывания сервера MySQL. Существующий пароль для корня учетной записи пользователя истек. Пожалуйста, установите новый пароль. Новый пароль: повторно введите новый пароль: Validate Plange Plugin можно использовать для тестирования паролей и повышения безопасности. Он проверяет прочность пароля и позволяет пользователям устанавливать только те пароли, которые достаточно безопасны. Хотите настроить Validate Plangin Plugin? Нажмите y | y для да, любой другой ключ для NO: N, используя существующий пароль для корня. Измените пароль для рута? ((Нажмите y | y для да, любой другой ключ для NO): y Новый пароль: повторно введите новый пароль: по умолчанию установка MySQL имеет анонимю пользователя, что позволяет кому-либо войти в MySQL без необходимости иметь учетную запись пользователя Создан для них. Это предназначено только для тестирования, и сделать установку немного более гладкой. Вы должны удалить их перед перемещением в производственную среду. Удалить анонимных пользователей? (Нажмите y | Y для да, любой другой ключ для нет) : Y УСПЕХА. Обычно корнем должен быть разрешен только для подключения от «localhost». Это гарантирует, что кто-то не может угадать в корневом пароле из сети. Запретить логин root? (Нажмите y | y для да, любой другой ключ для нет ): N ... Пропуск. По умолчанию MySQL поставляется с базой данных с именем «Test», которую любой может получить доступ. Это также предназначено только для тестирования и должно быть удалено перед перемещением в производственную среду. Удалить тестовую базу данных и доступ к Это? (Нажмите y | y для да, любой другой ключ для no): n ... пропуская. Перезагрузка привилегии E Tables гарантирует, что все изменения сделаны до сих пор, будут немедленно вступить в силу. Перезагрузить таблицы привилегии сейчас? (Нажмите y | Y для да, любой другой ключ для нет): Y Успех. Все сделано!
У меня была та же проблема после того, как я попытался перезапустить MySQL.
Я использую следующие два псевдонима в моем .profile для удобства
alias mysql-stop='launchctl unload ~/Library/LaunchAgents/homebrew.mxcl.mysql.plist'
alias mysql-start='launchctl load ~/Library/LaunchAgents/homebrew.mxcl.mysql.plist'
После остановки MySQL, а затем пытаться перезапустить, я испытывал проблему, которую вы имели. Я посмотрел на нагрузку на Latchctl, и она сообщила о том, что «ничего не найдено для загрузки».
После быстрого поиска я нашел это ..
http://www.daveoncode.com/2013/02/01/solve-mac-osx-launchctl-nothing-found-to-load-error/
Так что я обновил меня mysql-start
псевдоним следующим образом
alias mysql-start='launchctl load -w -F ~/Library/LaunchAgents/homebrew.mxcl.mysql.plist'
Это решило мою проблему, которая может быть полезна для вас.
«Базовый путь» для MySQL хранится в /etc/my.cnf
который не обновляется, когда вы делаете Brew Upgrade. Просто откройте его и измените значение BustiR
Например, изменить это:
[mysqld]
basedir=/Users/3st/homebrew/Cellar/mysql/5.6.13
Чтобы указать на новую версию:
[mysqld]
basedir=/Users/3st/homebrew/Cellar/mysql/5.6.19
Перезапустите MySQL с:
mysql.server start