Я пытаюсь настроить MySQL на mac os 10.6 с помощью Homebrew на 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, которые уже установлены. У меня была та же проблема, и ни один из вышеперечисленных решений не работал у меня. Я зафиксировал его таким образом:
Использованы команды brew remove
и cleanup
, выгрузили launchctl
script, а затем удалили каталог mysql в /usr/local/var
, удалили мой существующий /etc/my.cnf
(оставьте это до вас, должно оно применяется) и startctl plist
Обновлена строка для plist. Обратите внимание, что ваш альтернативный каталог безопасности script будет основан на той версии MySQL, которую вы устанавливаете.
Шаг за шагом:
brew remove mysql
brew cleanup --force
launchctl unload -w ~/Library/LaunchAgents/homebrew.mxcl.mysql.plist
rm ~/Library/LaunchAgents/homebrew.mxcl.mysql.plist
sudo rm -rf /usr/local/var/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
, чтобы иметь возможность входа в систему
Используется альтернативная безопасность script:
/usr/local/Cellar/mysql/5.5.10/bin/mysql_secure_installation
Последовал раздел launchctl
из вывода brew script, например,
#start
launchctl load -w ~/Library/LaunchAgents/homebrew.mxcl.mysql.plist
#stop
launchctl unload -w ~/Library/LaunchAgents/homebrew.mxcl.mysql.plist
Boom.
Надеюсь, что это поможет кому-то!
Примечание: бит --force
на brew cleanup
также очистит устаревшие бочонки, подумайте, что это новая ирригация.
Обратите внимание на второе: комментатор говорит, что шаг 2 не требуется. Я не хочу его проверять, поэтому YMMV!
Была та же проблема. Похоже, что что-то не так с инструкциями по настройке или с создаваемыми исходными таблицами. Вот как я получил mysqld на моей машине.
Если сервер mysqld уже запущен на вашем Mac, сначала остановите его:
launchctl unload -w ~/Library/LaunchAgents/com.mysql.mysqld.plist
Запустите сервер mysqld с помощью следующей команды, которая позволяет любому пользователю войти в систему с полными разрешениями.
mysqld_safe --skip-grant-tables
Затем запустите mysql -u root
, который должен теперь позволить вам успешно войти в систему без пароля. Следующая команда должна reset всех корневых паролей.
UPDATE mysql.user SET Password=PASSWORD('NewPassword') WHERE User='root'; FLUSH PRIVILEGES;
Теперь, если вы убьете запущенную копию mysqld_safe и запустите ее снова без опции skip-grant-tables, вы должны войти в систему с помощью mysql -u root -p
и нового пароля, который вы только что установили.
Вот подробные инструкции, сочетающие избавление от всего MySQL с вашего Mac, а затем его установку. Brew Way as Sedorner написал выше:
ps -ax | grep mysql
kill
любые процессы MySQLsudo 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*
mysql
, он не должен работатьbrew doctor
и исправить ошибкиbrew remove mysql
brew cleanup
brew update
brew install mysql
unset TMPDIR
mysql_install_db --verbose --user=
Whoami --basedir="$(brew --prefix mysql)" --datadir=/usr/local/var/mysql --tmpdir=/tmp
mysql.server start
launchctl
, чтобы он автоматически запускался при запуске mysql
должен работать и работать все время, как ожидалось
Godspeed.
У меня была такая же проблема только сейчас. Если вы brew info mysql
и следуете инструкциям, это выглядит так: пароль root должен быть new-password
, если я правильно помню. Я видел то же самое, что вы видите. Эта статья помогла мне больше всего.
Оказалось, что у меня нет аккаунтов, созданных для меня. Когда я вошел в систему после запуска mysqld_safe
и сделал select * from user;
, строки не были возвращены. Я открыл MySQLWorkbench при запуске mysqld_safe
и добавил учетную запись root
со всеми привилегиями, которые я ожидал. Сейчас это работает хорошо для меня.
Если brew установлен MySQL 5.7, процесс немного отличается от предыдущего. Чтобы reset пароль root, выполните следующие действия:
sudo rm -rf /usr/local/var/mysql
mysqld --initialize
Временной пароль будет напечатан на консоли, и его можно использовать только для обновления пароля root:
mysql.server start
echo "ALTER USER 'root'@'localhost' IDENTIFIED BY 'my-new-password';" | mysql -uroot -pTEMPORARY_PASSWORD
ERROR! The server quit without updating PID file (/usr/local/var/mysql/XXXXX.local.pid).
и когда я делаю mysql -u root, пароль не принимается.
mysql
работает правильно. Жаль, что мне пришлось потратить огромное количество времени, чтобы заставить его работать над новым Macbook. : |
Хорошо, у меня была такая же проблема и она была решена. По какой-то причине mysql_secure_installation script не работает из коробки при использовании Homebrew для установки 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
Остановить mysql полностью.
mysql.server stop
< - может потребоваться редактирование на основе вашей версииps -ef | grep mysql
< - перечисляет процессы с mysql в их имениkill [PID]
< - убить процессы с помощью PIDУдалить файлы. Инструкции, приведенные выше, хороши. Я добавлю:
sudo find /. -name "*mysql*"
rm -rf
эти файлы. Обратите внимание, что во многих программах есть драйверы для mysql, которые вы не хотите удалять. Например, не удаляйте файлы в каталоге установки PHP. Удалите материал в своем собственном каталоге mysql.Надеюсь, у вас есть доморощенный. Если нет, загрузите его.
Мне нравится запускать brew как root, но я не думаю, что вам нужно.
sudo brew update
sudo brew install cmake
< - зависимость для mysql, полезнаяsudo brew install openssl
< - зависимость для mysql, полезнаяsudo brew info mysql
< - skim через это... это дает вам некоторое представление о том, что будет дальшеsudo brew install mysql --with-embedded; say done
< - устанавливает mysql со встроенным сервером. Сообщает вам, когда он заканчивается (моя установка заняла 10 минут).sudo chown -R mysql /usr/local/var/mysql/
< - mysql не будет работать для меня, пока я не запустил эту командуsudo mysql.server start
< - еще раз, точный синтаксис может меняться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, но это не помогло мне.
sudo chown -R mysql /usr/local/var/mysql/
перед запуском mysql.server start
если вы запускаете mysql.server
от имени пользователя root (при запуске с использованием пользователя root сервер MySQL _mysql
пользователя _mysql
).
TL; DR
Сервер MySQL может не запускаться после установки с помощью Brew. Попробуйте brew services start mysql
или просто mysql.server start
, если вы не хотите, чтобы MySQL выполнялся как фоновая служба.
Полная история:
Я только что установил MySQL (стабильный) 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)
Скажите что?
В соответствии с информацией об установке от Brew, mysql_secure_installation
должен предложить мне... защитить установку. Я полагал, что сервер MySQL может не работать и правильно. Выполнение brew services start mysql
, а затем mysql_secure_installation
работало как шарм.
Ни один из вышеперечисленных ответов (или любой из десятков ответов, которые я видел в другом месте) не работал у меня при использовании brew с самой последней версией mysql и yosemite. Я закончил установку другой версии mysql с помощью brew.
Указание более старой версии, говоря (например)
brew install mysql56
Работал для меня. Надеюсь, это поможет кому-то. Это была разочаровывающая проблема, что я чувствовал, что я застрял навсегда.
brew install mysql
), вы можете следовать указаниям в моем ответе stackoverflow.com/a/33924648/133106
Попробуйте предоставить разрешение Гранта Команда mysql
"Base-Path" для Mysql хранится в /etc/my.cnf
, который не обновляется при обновлении brew. Просто откройте его и измените значение baseir
Например, измените это:
[mysqld]
basedir=/Users/3st/homebrew/Cellar/mysql/5.6.13
чтобы указать на новую версию:
[mysqld]
basedir=/Users/3st/homebrew/Cellar/mysql/5.6.19
Перезапустите mysql с помощью:
mysql.server start
У меня была такая же проблема после того, как я попытался перезапустить 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, а затем попытки перезагрузки, я столкнулся с проблемой, с которой вы столкнулись. Я заглянул в загрузку startctl и сообщал об ошибке "ничего не найдено".
После быстрого поиска я нашел это.
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'
Это решило мою проблему, которая может быть полезна для вас.
services
, поэтому их можно заменить на brew services stop mysql
и brew services start mysql
соответственно.