web-dev-qa-db-ja.com

mac OSにmysqlをインストール

私はbrew install mysql 5.1.52のHomebrewを使ってMac 10.6でMySQLをセットアップしようとしています。

すべてうまくいき、私は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: 'localhost'のサーバーに接続しています
失敗したエラー: 'ユーザー' root '@' localhost 'のアクセスが拒否されました(パスワードを使用する:NO)

私はmysqladmin or mysql using -u root -prootにもアクセスしようとしました、
しかし、パスワードがあってもなくても機能しません。

これはまったく新しいマシンへのまったく新しいインストールであり、私が知る限りでは新しいインストールはrootパスワードなしでアクセス可能でなければなりません。私も試してみました:

/usr/local/Cellar/mysql/5.1.52/bin/mysql_secure_installation

でも私も

エラー1045(28000):ユーザー 'root' @ 'localhost'のアクセスが拒否されました(パスワードを使用:NO)
313
nikola

私は1つがすでにインストールされているmysqlの古いバージョンでこの立場になることができると思います。私は同じ問題を抱えていたし、上記の解決策のどれも私のために働かなかった。私はこのように修正しました:

Brewのremoveおよびcleanupコマンドを使用し、launchctlスクリプトをアンロードし、次に/usr/local/var内のmysqlディレクトリを削除し、私の既存の/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. brew install mysqlでmysqlをインストールしました
  2. brewが提案したコマンドを実行しました:(下記参照)。

    unset TMPDIR
    
    mysql_install_db --verbose --user=`whoami` --basedir="$(brew --prefix mysql)" --datadir=/usr/local/var/mysql --tmpdir=/tmp
    
  3. ログオンできるようにするには、mysql.server startコマンドでmysqlを起動します。

  4. 代替セキュリティスクリプトを使用しました。

    /usr/local/Cellar/mysql/5.5.10/bin/mysql_secure_installation
    
  5. 次のようなbrewパッケージのスクリプト出力のlaunchctlセクションに従ってください。

    #start
    launchctl load -w ~/Library/LaunchAgents/homebrew.mxcl.mysql.plist
    
    #stop
    launchctl unload -w ~/Library/LaunchAgents/homebrew.mxcl.mysql.plist
    
  6. ブーム。

誰かに役立つことを願っています!

注: / --forcebrew cleanupビットは、古くなった樽を一掃するでしょう、それは新しい風の自作機能だと思います。

2番目のメモ: コメント投稿者は、ステップ2は必要ではないと言っています。私はそれをテストしたくないので、YMMV!

643
Lorin Rivers

ここにあなたのMacから全てのMySQLを取り除きそれからそれをインストールすることを組み合わせるSedornerが上で書いたように詳細な指示がある。

The Tech Lab に従ってMySQLを完全に削除します。

  • ps -ax | grep mysql
  • mySQLプロセスを停止してkill
  • 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を実行しようとすると、うまくいきません。

ユーザーSedornerごとにMySQLをこの StackOverflow answerからインストールします。

  • 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は、期待通りに動作し、常に動作しているはずです。

ゴッドスピード.

45
corysimmons

同じ問題がありました。セットアップ手順または作成中の初期テーブルに問題があるようです。これが私のマシンで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と設定した新しいパスワードでログインできるはずです。

42

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 --password=TEMPORARY_PASSWORD
13
mrucci

さて、私は同じ問題を抱えていてそれを解決しました。何らかの理由で、mysqlをインストールするためにHomebrewを使用する場合、mysql_secure_installationスクリプトはそのままでは機能しません。 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

8
Darren Newton

私は今同じ問題を抱えていました。あなたがbrew info mysqlして手順に従うと、私の記憶が正しければrootパスワードはnew-passwordになるはずです。私はあなたが見ているのと同じことを見ていました。 この記事 は私を最も助けてくれた。

any アカウントが作成されていないことがわかりました。 mysqld_safeを実行した後にログインし、select * from user;を実行したときに行が返されませんでした。私はmysqld_safeを実行してMySQLWorkbenchを開き、私が期待するすべての特権を持つrootアカウントを追加しました。これは今私にとってはうまくいっています。

8
Mark

Mysqlがすでにインストールされている場合

MySQLを完全に停止します。

  1. mysql.server stop < - あなたのバージョンに基づいて編集する必要があるかもしれません
  2. ps -ef | grep mysql < - 名前にmysqlを持つプロセスを一覧表示します
  3. kill [PID] < - PIDでプロセスを強制終了する

ファイルを削除してください。上記の指示は良いです。追加します:

  1. Sudo find /. -name "*mysql*"
  2. あなたの判断で、これらのファイルをrm -rfしてください。多くのプログラムにmysql用のドライバがありますが、これは削除したくないことに注意してください。たとえば、PHPインストールディレクトリ内のものを削除しないでください。独自のmysqlディレクトリにあるものを削除してください。

インストール

うまくいけばあなたは自作を持っています。そうでない場合は、それをダウンロードしてください。

私はrootとしてbrewを実行するのが好きですが、私はあなたがそうしなければならないとは思いません。編集2018年:あなたはもうrootとしてbrewを実行することはできません

  1. Sudo brew update
  2. Sudo brew install cmake < - mysqlへの依存、役に立つ
  3. Sudo brew install openssl < - mysqlへの依存、役に立つ
  4. Sudo brew info mysql < - これを読み飛ばしてください。
  5. Sudo brew install mysql --with-embedded; say done < - 組み込みサーバーと共にmysqlをインストールします。終了したら教えてください(私のインストールには10分かかりました)。

その後

  1. Sudo chown -R mysql /usr/local/var/mysql/ < - 私がこのコマンドを実行するまでmysqlは私のために働かないでしょう
  2. Sudo mysql.server start < - もう一度、正確な構文は変わるかもしれません
  3. Mysqlでユーザーを作成します( http://dev.mysql.com/doc/refman/5.7/en/create-user.html )。 rootユーザーのパスワードを忘れずに追加してください。
6

醸造情報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起動

. 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でいくつかの解決策を試しましたが、これは私を助けていません。

3
Felipe Duardo

TL; DR

MySQLサーバーは、Brewを使用したインストール後に実行されていない可能性があります。 MySQLをバックグラウンドサービスとして実行したくない場合はbrew services start mysqlまたは単にmysql.server startを試してください。

全文:

Sierraを実行している新しいMacBook ProにMySQL(stable)5.7.17をインストールしたところ、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を実行すると、魅力的になりました。

2
Nicholas

MysqlのCommandにGrant権限を与えて試してみてください

1
XMen

Mysqlとyosemiteの最新バージョンでbrewを使用しても、上記の答え(または他の場所で見た何十もの答え)のどれも私にとっては役に立ちませんでした。私はbrew経由で異なるMySQLバージョンをインストールすることになりました。

と言うことで古いバージョンを指定する(例えば)

brew install mysql56

私のために働きました。これが誰かに役立つことを願っています。これは私が永遠に立ち往生していたように私が感じたイライラする問題でした。

1
toddmetheny

ここにMySQL 5.7の更新があります

 bash --version 
 GNU bash、バージョン4.4.12(1)-release(x86_64-Apple-darwin17.0.0)
 Copyright(C)2016 Free Software Foundation、Inc 。
ライセンスGPLv3 +:GNU GPLバージョン3以降
 
これはフリーソフトウェアです。 
法律で許可されている範囲では、保証はありません。
 
#============= =========================== 
 brew --version 
 Homebrew 1.7.6 
 Homebrew/homebrew-core(gitリビジョンeeb08;最終コミット2018-09-27)
 Homebrew/homebrew-cask(gitリビジョンc9f62;最終コミット2018-09-27)
 
#======================================== 
 mysql- version 
 mysql Ver 14.14 Distrib 5.7.23、osx10.13(x86_64)for EditLine wrapper 
 
#=============== ========================= 
 system_profiler SPSoftwareDataType 
 Software:
 
 Systemソフトウェアの概要:
 
システムバージョン:macOS 10.13.3(17D47)
カーネルバージョン:Darwin 17.4.0 
ブートボリューム:Macintosh HD 
ブートモード:通常
コンピューター名:EdisonMacHomeBj 
ユーザー名:Edison(edison)
セキュア仮想メモリ:有効
 Syst em完全性保護:無効
起動後の時間:6日23:13 
 brew remove [email protected] 
 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 [警告] TIMESTAMP with implicit DEFAULT値は非推奨です。 --explicit_defaults_for_timestampサーバーオプションを使用してください(詳細についてはドキュメントを参照してください)。 /は大文字と小文字を区別しません。警告] 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_executed'を開けません。
 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サーバーの展開をセキュリティで保護します。
 
 
ユーザーアカウントの既存のパスワードルートの有効期限が切れています。新しいパスワードを設定してください。
 
新しいパスワード:
 
新しいパスワードを再入力してください:
 
 VALIDDATE PASSWORD PLUGINパスワード
をテストし、セキュリティを改善するために使用されます。パスワードの強度
をチェックし、ユーザーが
十分に安全なパスワードのみを設定できるようにします。 VALIDATE PASSWORDプラグインをセットアップしますか?
 
はいの場合はy | Yを、いいえの場合は他のキーを押します。n
 rootの既存のパスワードを使用します。
変更rootのパスワード? ((はいの場合はy | Yを、いいえの場合は他のキーを押します):y 
 
新しいパスワード:
 
新しいパスワードを再入力します:
デフォルトでは、MySQLのインストールには匿名ユーザーがあり、
誰でも
ユーザーアカウントを作成しなくてもMySQLにログインできます。これは
テスト専用です、インストールを少しスムーズにするために。
本番環境に移行する前にそれらを削除する必要があります
環境。
 
匿名ユーザーを削除しますか?(y |を押しますYesの場合はY、Noの場合はその他のキー):y 
 Success。
 
 
通常、rootは
 'からの接続のみを許可する必要があります。これにより、誰かがネットワークから
 rootパスワードを推測できないようになります。
 
 rootログインをリモートで禁止しますか?(Yesの場合はy | Yを、Noの場合は他のキーを押します):n 
 
 ... skipping。
デフォルトでは、MySQLには、
誰でもアクセスできる「test」という名前のデータベースが付属しています。テスト用。
 and s本番環境に移動する前に削除する必要があります
環境。
 
 
テストデータベースを削除してアクセスしますか? (はいの場合はy | Yを、いいえの場合は他のキーを押してください):n 
 
 ... skipping。
特権テーブルを再ロードすると、すべての変更が確実になります
 
 
今すぐ特権テーブルをリロードしますか? (はいの場合はy | Yを、いいえの場合は他のキーを押してください):y 
 Success。
 
すべて完了!
1
Edison

Mysqlの "Base-Path"は/etc/my.cnfに格納されていますが、これはアップグレードを行っても更新されません。ただそれを開き、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
0
Bernhard Zürn

私はMySQLを再起動しようとした後、私は同じ問題を抱えていた。

便宜上、.profileに次の2つのエイリアスを使用します。

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'

これはあなたにとって役に立つかもしれない私の問題を解決しました。

0