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, уже установленными. У меня была такая же проблема, и ни одно из вышеперечисленных решений не сработало для меня. Я исправил это так:--15-->

используется сорт 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

я тогда начал с нуля:

  1. установлен mysql с brew install mysql
  2. выполнил команды, предложенные brew: (см. Примечание: ниже)

    unset TMPDIR
    
    mysql_install_db --verbose --user=`whoami` --basedir="$(brew --prefix mysql)" --datadir=/usr/local/var/mysql --tmpdir=/tmp
    
  3. запустите mysql с mysql.server start команда, чтобы иметь возможность войти в нее

  4. используется альтернативная безопасность сценарий:

    /usr/local/Cellar/mysql/5.5.10/bin/mysql_secure_installation
    
  5. следовал launchctl раздел из вывода сценария пакета brew, например,

    #start
    launchctl load -w ~/Library/LaunchAgents/homebrew.mxcl.mysql.plist
    
    #stop
    launchctl unload -w ~/Library/LaunchAgents/homebrew.mxcl.mysql.plist
    
  6. бум.

надеюсь, что кто-то поможет!

Примечание: 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 что должен теперь можно войти в систему без пароля. Следующая команда должна сбросить все пароли root.

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

теперь, если вы убьете работающую копию mysqld_safe и запустите ее снова без опции skip-grant-tables, вы сможете войти в систему с mysql -u root -p и новый пароль, который вы только что установили.


вот подробные инструкции, объединяющие избавление от всего MySQL с вашего Mac, а затем установку его способом заваривания, как писал Седорнер выше:

удалить 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*
  • попробуйте запустить 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


у меня только что была такая же проблема. Если ты ... --0--> и следуйте инструкциям, похоже, что пароль root должен быть new-password если я правильно помню. Я видел то же, что и ты. в этой статье помог мне больше всего.

оказалось, что у меня нет любой учетные записи, созданные для меня. Когда я вошел в систему после запуска mysqld_safe и так select * from user; никакие строки не были возвращены. Я открыл MySQLWorkbench с mysqld_safe бег и добавил root счета все privs я ожидал. Это хорошо работает для меня сейчас.


если mysql уже установлен

полностью остановить mysql.

  1. mysql.server stop
  2. ps -ef | grep mysql
  3. kill [PID]

удалить файлы. Инструкции выше хороши. Добавлю:

  1. sudo find /. -name "*mysql*"
  2. используя свое суждение,rm -rf эти файлы. Обратите внимание, что многие программы имеют драйверы для mysql, которые вы не хотите удалять. Например, не удаляйте материал в каталоге установки PHP. Удалите вещи в своем собственном каталоге mysql.

установить

надеюсь, у вас есть homebrew. Если нет, скачайте его.

мне нравится запускать brew как root, но я не думаю, что вам нужно. Edit 2018: вы больше не можете запускать brew как root

  1. sudo brew update
  2. sudo brew install cmake
  3. sudo brew install openssl
  4. sudo brew info mysql
  5. sudo brew install mysql --with-embedded; say done

после

  1. sudo chown -R mysql /usr/local/var/mysql/
  2. sudo mysql.server start
  3. создание пользователей в 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. Попробуй!--1--> или просто 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)

что сказать?

согласно данным по установки от Брю,mysql_secure_installation должен подсказать мне... безопасную установку. Я подумал, что сервер MySQL может не работать и правильно. Бег!--1--> а то mysql_secure_installation сработало как заклинание.


попробуйте, предоставив команду разрешения Grant mysql


ни один из вышеупомянутых ответов (или любой из десятков ответов, которые я видел в другом месте) не работал для меня при использовании 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:13
brew 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!