386

Homebrewbyを使用してmacos10.6でMySQLをセットアップしようとしています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:「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)
4

17 に答える 17

741

古いバージョンのmysqlがすでにインストールされていると、この位置にたどり着く可能性があると思います。私は同じ問題を抱えていましたが、上記の解決策はどれもうまくいきませんでした。私はそれをこうして修正しました:

brewのremovecleanupコマンドを使用し、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. インストールされたmysqlbrew 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
    

注:--force少しオンにすると、brew cleanup古い樽もクリーンアップされます。これは、新しい自作の機能だと思います。

2番目に注意してください:コメント投稿者は、ステップ2は必要ないと言っています。テストしたくないので、YMMV!

于 2011-06-16T20:50:48.443 に答える
67

Sedornerが上記で書いたように、MacからすべてのMySQLを取り除き、それをTheBrewWayにインストールすることを組み合わせた詳細な手順は次のとおりです。

TechLabに従って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、それは動作しないはずです

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

  • 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 # whoami is executed inline
    
  • mysql.server start

  • Brewが提案するコマンドを実行し、MySQLを追加してlaunchctl、起動時に自動的に起動するようにします

mysqlこれで動作し、期待どおりに常に実行されているはずです

ゴッドスピード。

于 2014-01-07T22:11:38.740 に答える
45

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

于 2011-01-07T23:30:54.397 に答える
18

brewがMySQL5.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
于 2015-11-25T19:11:49.333 に答える
8

さて、私は同じ問題を抱えていて、それを解決しました。何らかの理由で、Homebrewを使用してmysqlをインストールすると、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

于 2010-12-26T05:03:14.887 に答える
8

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

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

于 2011-01-07T04:18:54.287 に答える
7

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ディレクトリにあるものを削除してください。

インストール

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

私はbrewをrootとして実行するのが好きですが、そうする必要はないと思います。2018年の編集:ルートとして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ユーザーのパスワードを追加することを忘れないでください。
于 2016-03-29T20:38:53.357 に答える
3

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

ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2)

しばらくの間解決策を探していますが、問題を解決できません。私はstackoverflow.comでいくつかの解決策を試しましたが、これは役に立ちませんでした。

于 2013-07-27T23:09:48.863 に答える
3

TL; DR

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

全文:

Sierraを実行している新しいMacBookProに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)

何だって?

ブリューからのインストール情報によると、mysql_secure_installation私に...インストールを保護するように促す必要があります。MySQLサーバーが実行されていない可能性があると考えました。走っbrew services start mysqlて、それからmysql_secure_installation魅力のように働きました。

于 2017-01-16T21:21:24.350 に答える
3

自作

  1. まず、自作がインストールされていることを確認してください
  2. brew doctor自作で修正してほしいものを実行して対処する
  3. 走るbrew install mysql
  4. 走るbrew services restart mysql
  5. 走るmysql.server start
  6. 走るmysql_secure_installation
于 2020-10-07T05:38:25.780 に答える
2

これがMySQL5.7のアップデートです

bash --version
GNU bash、バージョン4.4.12(1)-リリース(x86_64-apple-darwin17.0.0)
Copyright(C)2016 Free Software Foundation、Inc.
ライセンスGPLv3+:GNUGPLバージョン3以降

これは自由ソフトウェアです。自由に変更して再配布できます。
法律で許可されている範囲で、保証はありません。

#========================================
brew --version
自作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、EditLineラッパーを使用したosx10.13(x86_64)用

#========================================
system_profiler SPSoftwareDataType
ソフトウェア:

    システムソフトウェアの概要:

      システムバージョン:macOS 10.13.3(17D47)
      カーネルバージョン:Darwin 17.4.0
      起動ボリューム:Macintosh HD
      起動モード:通常
      コンピューター名:EdisonMacHomeBj
      ユーザー名:エジソン(エジソン)
      安全な仮想メモリ:有効
      システム整合性保護:無効
      起動からの時間:6日23:13
brew remove mysql@5.7
醸造クリーンアップ
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.526061Z0[警告]暗黙のDEFAULT値を持つTIMESTAMPは非推奨になりました。--explicit_defaults_for_timestampサーバーオプションを使用してください(詳細については、ドキュメントを参照してください)。
2018-09-28T04:54:06.542625Z0[警告]/usr / local / var / mysql /のファイルシステムでは大文字と小文字が区別されないため、lower_case_table_names=2を設定します
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.224871Z0[警告]Gtidテーブルを使用する準備ができていません。テーブル'mysql.gtid_executed'を開くことができません。
2018-09-28T04:54:07.366688Z0[警告]CA証明書ca.pemは自己署名されています。
2018-09-28T04:54:07.457954Z1[注]root@ localhostに対して一時パスワードが生成されます:kq3K = JR8; GqZ

#========================================
mysql_secure_installation -uroot -p "kq3K = JR8; GqZ"
mysql_secure_installation:[警告]コマンドラインインターフェイスでパスワードを使用すると、安全でない場合があります。

MySQLサーバーのデプロイメントを保護します。


ユーザーアカウントrootの既存のパスワードの有効期限が切れています。新しいパスワードを設定してください。

新しいパスワード:

新しいパスワードを再入力してください:

VALIDATE PASSWORD PLUGINは、パスワードのテストに使用できます
とセキュリティを向上させます。パスワードの強度をチェックします
また、ユーザーは次のようなパスワードのみを設定できます。
十分に安全です。VALIDATE PASSWORDプラグインをセットアップしますか?

はいの場合はy|Yを押し、いいえの場合はその他のキーを押します:n
rootに既存のパスワードを使用します。
rootのパスワードを変更しますか?((はいの場合はy | Yを押し、いいえの場合は他のキーを押します):y

新しいパスワード:

新しいパスワードを再入力してください:
デフォルトでは、MySQLインストールには匿名ユーザーがいます。
誰もが持っていなくてもMySQLにログインできるようにする
それらのために作成されたユーザーアカウント。これは、
テストし、インストールを少しスムーズにするために。
本番環境に移行する前に、それらを削除する必要があります
環境。

匿名ユーザーを削除しますか?(はいの場合はy | Yを押し、いいえの場合は他のキーを押します):y
成功。


通常、rootはからの接続のみを許可する必要があります
'localhost'。これにより、誰かが推測できないようになります
ネットワークからのルートパスワード。

rootログインをリモートで禁止しますか?(はいの場合はy | Yを押し、いいえの場合は他のキーを押します):n

 ...スキップします。
デフォルトでは、MySQLには「test」という名前のデータベースが付属しています。
誰でもアクセスできます。これもテストのみを目的としています。
本番環境に移行する前に削除する必要があります
環境。


テストデータベースを削除してアクセスしますか?(はいの場合はy | Yを押し、いいえの場合は他のキーを押します):n

 ...スキップします。
特権テーブルを再ロードすると、すべての変更が確実に行われます
これまでに作成したものはすぐに有効になります。

今すぐ特権テーブルをリロードしますか?(はいの場合はy | Yを押し、いいえの場合は他のキーを押します):y
成功。

全部終わった!
于 2018-09-28T07:05:44.347 に答える
2

以前の回答に何かを追加するだけです-MySql5.6からMySql8.0にアップグレードするとき、ここに記載されている手順に従ってクリーンアンインストールを行いましたが、次のエラーが発生しました

2019-11-05T07:57:31.359304Z 0 [ERROR] [MY-000077] [Server] /usr/local/Cellar/mysql/8.0.18/bin/mysqld: Error while setting value 'ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION' to 'sql_mode'.
2019-11-05T07:57:31.359330Z 0 [ERROR] [MY-013236] [Server] The designated data directory /usr/local/var/mysql is unusable. You can remove all files that the server added to it.
2019-11-05T07:57:31.359413Z 0 [ERROR] [MY-010119] [Server] Aborting
2019-11-05T07:57:31.359514Z 0 [Note] [MY-010120] [Server] Binlog end

それを理解するのに少し時間がかかりました。ここで手がかりを見つけました: https ://discourse.brew.sh/t/clean-removal-of-mysql/2251

したがって、私の問題の鍵は、アンインストール後に/usr/local/etc/my.cnfファイルを削除することでした。その最後のステップの後、MySqlはついに動作を開始しました。

于 2019-11-06T11:09:30.640 に答える
1

mysqlのGrantpermissionコマンドを与えてみてください

于 2010-12-05T14:12:09.823 に答える
1

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 loadを調べたところ、「ロードするものが見つかりませんでした」というエラーが報告されていました。

簡単に検索したところ、これが見つかりました。

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'

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

于 2013-08-09T13:00:30.087 に答える
1

mysqlとyosemiteの最新バージョンでbrewを使用した場合、上記の回答のいずれも(または他の場所で見た数十の回答のいずれか)はうまくいきませんでした。brewを介して別のmysqlバージョンをインストールすることになりました。

(例)と言って古いバージョンを指定する

brew install mysql56

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

于 2015-11-22T22:53:15.567 に答える
0

Mysqlの「Base-Path」が保存され、/etc/my.cnfbrewアップグレードを実行しても更新されません。それを開いて、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
于 2014-07-09T07:16:46.127 に答える
0

私がMariaDBに提供したソリューションを試してみてください。これは、MySQLでも機能するという大きな変化です。

MacOSX自作mysqlルートパスワード

要するに、あなたのユーザー名でログインしてみてください!ルートではありません。

MacOSアカウントのユーザー名と同じ名前を試してください(例:johnsmit)。

rootとしてログインするには、次のコマンドを発行します。

mysql -u johnsmit
于 2020-07-21T20:01:50.067 に答える