brew установите mysql на mac os
Я пытаюсь настроить 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
также,
но он не работает с паролем или без него.
это совершенно новая установка на совершенно новой машине и насколько я знаю новую установку должны быть доступны без пароля. Я тоже попробовал:
/usr/local/Cellar/mysql/5.1.52/bin/mysql_secure_installation
но я тоже получаю
ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: NO)
14 ответов:
я думаю, что можно оказаться в этом положении с уже установленными старыми версиями mysql. У меня была та же проблема, и ни одно из вышеперечисленных решений не работало для меня. Я исправил это так:
используется сорт
remove
&cleanup
команды, разгрузилиlaunchctl
скрипт, затем удалил каталог mysql в/usr/local/var
, удалил мой существующий/etc/my.cnf
(оставьте это до вас, если это применимо) и launchctl plistобновлена строка для 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, например,#start launchctl load -w ~/Library/LaunchAgents/homebrew.mxcl.mysql.plist #stop launchctl unload -w ~/Library/LaunchAgents/homebrew.mxcl.mysql.plist
бум.
надеюсь, что это поможет кому-то!
Примечание: the
--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
что должен теперь можно войти в систему без пароля. Следующая команда должна сбросить все корневые пароли.
UPDATE mysql.user SET Password=PASSWORD('NewPassword') WHERE User='root'; FLUSH PRIVILEGES;
теперь, если вы убиваете запущенную копию mysqld_safe и запускаете ее снова без опции skip-grant-tables, вы должны иметь возможность войти в систему с
mysql -u root -p
и новый пароль, который вы только что установили.
вот подробные инструкции, сочетающие избавление от всех MySQL с вашего Mac, а затем установку его способом Brew, как писал Седорнер выше:
удалить 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
- edit
/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 устанавливает MySQL на пользователя Седорнер от этого StackOverflow ответ
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
- запустите команды, которые предлагает Brew, добавьте MySQL в
launchctl
таким образом, он автоматически запускается при запуске
mysql
теперь должно работать и работать все время, как ожидалосьБог в помощь.
Если brew установил MySQL 5.7, процесс немного отличается от предыдущих версий. Чтобы сбросить пароль 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
ладно у меня была та же проблема и решить ее. По какой-то причине скрипт mysql_secure_installation не работает из коробки при использовании 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
у меня была такая же проблема только сейчас. Если вы
brew info mysql
и выполните следующие действия похоже, что пароль root должен бытьnew-password
если я правильно помню. Я видел то же самое, что и вы. в этой статье помог мне больше всего.оказалось, что у меня не было любой учетные записи, созданные для меня. Когда я вошел в систему после запуска
mysqld_safe
и такselect * from user;
никакие строки не были возвращены. Я открыл MySQLWorkbench сmysqld_safe
работает и добавил aroot
счет со всеми привами, которые я ожидал. Это хорошо работает для меня сейчас.
если mysql уже установлен
полностью остановить mysql.
mysql.server stop
ps -ef | grep mysql
kill [PID]
удалить файлы. Инструкции выше хороши. Я добавлю:
sudo find /. -name "*mysql*"
- используя свое суждение,
rm -rf
эти файлы. Обратите внимание, что многие программы имеют драйверы для mysql, которые вы не хотите удалять. Например, не удаляйте материал в каталоге установки PHP. Удалите материал в своем собственном каталоге mysql.установить
надеюсь, у вас доморощенный. Если нет, загрузите его.
мне нравится запускать brew как root, но я не думаю, что вам это нужно. Редактировать 2018: вы больше не можете запускать brew как root
sudo brew update
sudo brew install cmake
sudo brew install openssl
sudo brew info mysql
sudo brew install mysql --with-embedded; say done
после
sudo chown -R mysql /usr/local/var/mysql/
sudo mysql.server start
- создание пользователей в mysql (http://dev.mysql.com/doc/refman/5.7/en/create-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.запуск службы
. 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; DR
сервер MySQL может не работать после установки с Brew. Попробуй
brew services start mysql
или простоmysql.server start
Если вы не хотите, чтобы MySQL работал как фоновая служба.Полная Версия:
Я только что установил MySQL (stable) 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
работал как шарм.
ни один из приведенных выше ответов (или любой из десятков ответов, которые я видел в другом месте) не работал для меня при использовании brew с самой последней версией mysql и yosemite. Я закончил установку другой версии mysql через brew.
указание более старой версии, сказав (например)
brew install mysql56
работал для меня. Надеюсь, это кому-то поможет. Это была неприятная проблема, которую я чувствовал, что застрял навсегда.
у меня была та же проблема после того, как я попытался перезапустить mysql.
Я использую следующие два псевдонима в моем .профиль для удобства
alias mysql-stop='launchctl unload ~/Library/LaunchAgents/homebrew.mxcl.mysql.plist' alias mysql-start='launchctl load ~/Library/LaunchAgents/homebrew.mxcl.mysql.plist'
после остановки mysql, а затем пытается перезапустить я испытал проблему, которую вы имели. Я заглянул в загрузку launchctl, и он сообщал об ошибке "ничего не найдено для загрузки".
после быстрого поиска я нашел этот..
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. Просто откройте его и измените значение basedirнапример, поменять это:
[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 5.7
bash --version GNU bash, version 4.4.12(1)-release (x86_64-apple-darwin17.0.0) Copyright (C) 2016 Free Software Foundation, Inc. License GPLv3+: GNU GPL version 3 or later This is free software; you are free to change and redistribute it. There is NO WARRANTY, to the extent permitted by law. #======================================== brew --version Homebrew 1.7.6 Homebrew/homebrew-core (git revision eeb08; last commit 2018-09-27) Homebrew/homebrew-cask (git revision c9f62; last commit 2018-09-27) #======================================== mysql --version mysql Ver 14.14 Distrib 5.7.23, for osx10.13 (x86_64) using EditLine wrapper #======================================== system_profiler SPSoftwareDataType Software: System Software Overview: System Version: macOS 10.13.3 (17D47) Kernel Version: Darwin 17.4.0 Boot Volume: Macintosh HD Boot Mode: Normal Computer Name: EdisonMacHomeBj User Name: Edison (edison) Secure Virtual Memory: Enabled System Integrity Protection: Disabled Time since boot: 6 days 23:13brew remove mysql@5.7 brew cleanup mv /usr/local/var/mysql /usr/local/var/mysql.bak brew install mysql@5.7 rm -rf /usr/local/var/mysql #======================================== mysqld --initialize 2018-09-28T04:54:06.526061Z 0 [Warning] TIMESTAMP with implicit DEFAULT value is deprecated. Please use --explicit_defaults_for_timestamp server option (see documentation for more details). 2018-09-28T04:54:06.542625Z 0 [Warning] Setting lower_case_table_names=2 because file system for /usr/local/var/mysql/ is case insensitive 2018-09-28T04:54:07.096637Z 0 [Warning] InnoDB: New log files created, LSN=45790 2018-09-28T04:54:07.132950Z 0 [Warning] InnoDB: Creating foreign key constraint system tables. 2018-09-28T04:54:07.196824Z 0 [Warning] No existing UUID has been found, so we assume that this is the first time that this server has been started. Generating a new UUID: 87cf2f10-c2da-11e8-ac2d-ba163df10130. 2018-09-28T04:54:07.224871Z 0 [Warning] Gtid table is not ready to be used. Table 'mysql.gtid_executed' cannot be opened. 2018-09-28T04:54:07.366688Z 0 [Warning] CA certificate ca.pem is self signed. 2018-09-28T04:54:07.457954Z 1 [Note] A temporary password is generated for root@localhost: kq3K=JR8;GqZ #======================================== mysql_secure_installation -uroot -p"kq3K=JR8;GqZ" mysql_secure_installation: [Warning] Using a password on the command line interface can be insecure. Securing the MySQL server deployment. The existing password for the user account root has expired. Please set a new password. New password: Re-enter new password: VALIDATE PASSWORD PLUGIN can be used to test passwords and improve security. It checks the strength of password and allows the users to set only those passwords which are secure enough. Would you like to setup VALIDATE PASSWORD plugin? Press y|Y for Yes, any other key for No: n Using existing password for root. Change the password for root ? ((Press y|Y for Yes, any other key for No) : y New password: Re-enter new password: By default, a MySQL installation has an anonymous user, allowing anyone to log into MySQL without having to have a user account created for them. This is intended only for testing, and to make the installation go a bit smoother. You should remove them before moving into a production environment. Remove anonymous users? (Press y|Y for Yes, any other key for No) : y Success. Normally, root should only be allowed to connect from 'localhost'. This ensures that someone cannot guess at the root password from the network. Disallow root login remotely? (Press y|Y for Yes, any other key for No) : n ... skipping. By default, MySQL comes with a database named 'test' that anyone can access. This is also intended only for testing, and should be removed before moving into a production environment. Remove test database and access to it? (Press y|Y for Yes, any other key for No) : n ... skipping. Reloading the privilege tables will ensure that all changes made so far will take effect immediately. Reload privilege tables now? (Press y|Y for Yes, any other key for No) : y Success. All done!