1. ホーム
  2. マイスル

[解決済み】macOSでbrew install mysqlをする。

2022-03-24 08:33:08

質問

Mac OS 10.6でHomebrewを使用して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: connect to server at 'localhost'. 
失敗したエラー: '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

しかし、私はまた

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

解決方法は?

古いバージョンのmysqlがインストールされている場合、このような状態に陥ることがあると思います。私も同じ問題を抱えており、上記の解決策はどれも私には効果がありませんでした。私はこのようにそれを修正しました。

brewの 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
    
    

その --force のビットが brew cleanup は、古くなったケグも掃除してくれる、新しい感じの自作機能だと思います。

2番目に注意。 のコメントで、ステップ2は必要ないとのことです。私はテストしたくないので、YMMV!