私は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)
私は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
それから私は最初から始めました:
brew install mysql
でmysqlをインストールしましたbrewが提案したコマンドを実行しました:(下記参照)。
unset TMPDIR
mysql_install_db --verbose --user=`whoami` --basedir="$(brew --prefix mysql)" --datadir=/usr/local/var/mysql --tmpdir=/tmp
ログオンできるようにするには、mysql.server start
コマンドでmysqlを起動します。
代替セキュリティスクリプトを使用しました。
/usr/local/Cellar/mysql/5.5.10/bin/mysql_secure_installation
次のようなbrewパッケージのスクリプト出力のlaunchctl
セクションに従ってください。
#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!
ここにあなたのMacから全てのMySQLを取り除きそれからそれをインストールすることを組み合わせるSedornerが上で書いたように詳細な指示がある。
ps -ax | grep 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
を実行しようとすると、うまくいきません。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
launchctl
に追加して起動時に自動的に起動するようにします。mysql
は、期待通りに動作し、常に動作しているはずです。
ゴッドスピード.
同じ問題がありました。セットアップ手順または作成中の初期テーブルに問題があるようです。これが私のマシンで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 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
さて、私は同じ問題を抱えていてそれを解決しました。何らかの理由で、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
私は今同じ問題を抱えていました。あなたがbrew info mysql
して手順に従うと、私の記憶が正しければrootパスワードはnew-password
になるはずです。私はあなたが見ているのと同じことを見ていました。 この記事 は私を最も助けてくれた。
any アカウントが作成されていないことがわかりました。 mysqld_safe
を実行した後にログインし、select * from user;
を実行したときに行が返されませんでした。私はmysqld_safe
を実行してMySQLWorkbenchを開き、私が期待するすべての特権を持つroot
アカウントを追加しました。これは今私にとってはうまくいっています。
MySQLを完全に停止します。
mysql.server stop
< - あなたのバージョンに基づいて編集する必要があるかもしれませんps -ef | grep mysql
< - 名前にmysqlを持つプロセスを一覧表示しますkill [PID]
< - PIDでプロセスを強制終了するファイルを削除してください。上記の指示は良いです。追加します:
Sudo find /. -name "*mysql*"
rm -rf
してください。多くのプログラムにmysql用のドライバがありますが、これは削除したくないことに注意してください。たとえば、PHPインストールディレクトリ内のものを削除しないでください。独自のmysqlディレクトリにあるものを削除してください。うまくいけばあなたは自作を持っています。そうでない場合は、それをダウンロードしてください。
私はrootとしてbrewを実行するのが好きですが、私はあなたがそうしなければならないとは思いません。編集2018年:あなたはもうrootとしてbrewを実行することはできません
Sudo brew update
Sudo brew install cmake
< - mysqlへの依存、役に立つSudo brew install openssl
< - mysqlへの依存、役に立つSudo brew info mysql
< - これを読み飛ばしてください。Sudo brew install mysql --with-embedded; say done
< - 組み込みサーバーと共にmysqlをインストールします。終了したら教えてください(私のインストールには10分かかりました)。Sudo chown -R mysql /usr/local/var/mysql/
< - 私がこのコマンドを実行するまでmysqlは私のために働かないでしょうSudo mysql.server start
< - もう一度、正確な構文は変わるかもしれません醸造情報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でいくつかの解決策を試しましたが、これは私を助けていません。
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
を実行すると、魅力的になりました。
MysqlのCommandにGrant権限を与えて試してみてください
Mysqlとyosemiteの最新バージョンでbrewを使用しても、上記の答え(または他の場所で見た何十もの答え)のどれも私にとっては役に立ちませんでした。私はbrew経由で異なるMySQLバージョンをインストールすることになりました。
と言うことで古いバージョンを指定する(例えば)
brew install mysql56
私のために働きました。これが誰かに役立つことを願っています。これは私が永遠に立ち往生していたように私が感じたイライラする問題でした。
ここに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。 すべて完了!
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
私は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'
これはあなたにとって役に立つかもしれない私の問題を解決しました。