macOS Sierraを使っています。
wp-cliを使いたいためterminal経由でコマンド操作をしたいのですが、
mysqlのパスを通すところで躓いております。
検索してみると
~/.bash_profile
にパスをかけということで試してみたのですが、
色々試してみたのですが、
which mysql
すると
/usr/local/bin/mysql
となってしまいます。
本当は、
/Applications/MAMP/Library/bin
としたいです。
現在bash_profileの中身は
PHP_VERSION=$(ls /Applications/MAMP/bin/php/ | sort -n | tail -1)
export PATH=$PATH:/Applications/MAMP/Library/bin
export PATH=/Applications/MAMP/bin/php/${PHP_VERSION}/bin:$PATH
alias wp='php /Applications/MAMP/bin/php/${PHP_VERSION}/bin/wp-cli.phar'
このようになっています。
echo $PATH
した結果は
/Applications/MAMP/bin/php/php7.1.1/bin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/Applications/MAMP/Library/bin
です。
余談ですが、phpは
/Applications/MAMP/bin/php/php7.1.1/bin/php
にパスを通したいのですが、それは上手くいっています。
同じ変数PATHにphpとmysqlのパスを記載しているので、それが原因な気がしているのですが、順番を入れ替えても変わらず、変数名を変えてみても変わらないため困っております。
検索してみてもそれっぽい症状に出会わないため、かんたんすぎる原因な気もするのですがご教授いただければ幸いです。
No.7ベストアンサー
- 回答日時:
mysql が2つ存在して、(2) の方を使いたかったのであれば、PATH の書き方(優先順序)を (B) にすればよかったです。
(1) /usr/local/bin/mysql
(2) /Applications/MAMP/Library/bin/mysql
(A) export PATH=$PATH:/Applications/MAMP/Library/bin
(B) export PATH=/Applications/MAMP/Library/bin:$PATH
No.6
- 回答日時:
> ln -s /Applications/MAMP/tmp/mysql/mysql.sock /tmp/mysql.sock
上記コマンドは /Applications/MAMP/tmp/mysql/mysql.sock に作成されていることが前提です。
違ったなら、/tmp/mysql.sock は削除しておいてください。
rm -i /tmp/mysql.sock
my.cnf に socket のパスが何と書いてあるのか、実際の mysql.sock はどこに作成されているのか、よく確かめてください。
下記コマンドを実行すれば、時間はかかりますが mysql.sock を探せます。
sudo find / -type s -name mysql.sock -print
mysql.sock が見つかれば、my.cnf を修正するか、.bash_profile にエイリアスを追加すれば解決します。
alias mysql='mysql -S /見つかった場所/mysql.sock'
教えていただいた内容とはことなりますが、問題が解決しましたので、ご報告します。
上位の内容を行いましたが、結果which mysqlで参照されるパスは変わりませんでした。
その代わりといってはなんですが、そもそも/usr/local/bin/mysql
自体がシンボリックリンクで別の場所を参照していたので、そのシンボリックリンク自体をmampのものに差し替えてみたところwp-cliは無事稼働しました。
ありがとうございます!
No.5
- 回答日時:
/tmp/mysql.sock と /Applications/MAMP/tmp/mysql/mysql.sock の違いが原因なのは確実です。
手っ取り早いのは下記コマンドを実行してシンボリックリンクを作成する方法です。
ln -s /Applications/MAMP/tmp/mysql/mysql.sock /tmp/mysql.sock
my.cnf については、下記順序(上が優先)で参照しているようです。
1. /etc/my.cnf
2. /etc/mysql/my.cnf
3. /Applications/MAMP/conf/my.cnf
4. ~/.my.cnf
参考ページ
http://qiita.com/gtaiyou24/items/6d9eee45f40408c …
http://sachips.byeto.jp/mac/mamp_mysql_my-cnf.html
No.4
- 回答日時:
文字がつぶれて見えません。
> mysqldが2つ起動しているようです。
mysqld_safe と mysqld の2つなら問題ありません。
> mysql.sockも存在しているようです。
下記が存在するなら、解決方法は No.3 の回答に書いた参考ページに書いてあります。
/Applications/MAMP/tmp/mysql/mysql.sock
No.3
- 回答日時:
Terminal で下記コマンドを実行したら、実行中のプロセスが表示されますか?
ps auxw | grep mysqld | grep -v grep
mysqld が表示されないなら、mysqld が起動していません。
その場合、下記コマンドを実行したら起動しませんか?
sudo mysql.server start
mysqld が表示されるなら、/tmp/mysql.sock が違う場所に作成されているのかも知れません。
その場合、下記コマンドを実行したら存在しますか?
ls -l /Applications/MAMP/tmp/mysql/mysql.sock
見つからないなら、下記コマンドを実行して探してください。
sudo find / -name mysql.sock -print
見つかったら、~/my.cnf に下記のように追加すると良いようです。~/ はユーザのホームディレクトリです。
[client]
socket = /Applications/MAMP/tmp/mysql/mysql.sock
参考ページ
http://d.hatena.ne.jp/solitary_shell/20110107/12 …
No.2
- 回答日時:
> とするとパスを変更するという表現が正しいでしょうか?
パスについては、何もする必要はありません。
> wp commandを実行した場合は
> Can't connect to local MySQL server through socket '/tmp/mysql.sock' (38)
> となります。
上記エラーは MySQL サーバに接続できないと言っています。
おそらく、MySQL サーバが起動していません。
私は MAMP を使用した事がないのでわかりませんが、「サーバを起動」するボタンがあるようです。
https://pc-karuma.net/mamp-settings-mac/
https://pc-karuma.net/mamp-phpmyadmin-db-create/
No.1
- 回答日時:
既に、mysql のパスは通っています。
> which mysql
> すると
> /usr/local/bin/mysql
> となってしまいます。
which はパスからコマンドを探します。ちゃんと、/usr/local/bin/mysql を見つけています。
> echo $PATH
> した結果は
> /Applications/MAMP/bin/php/php7.1.1/bin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/Applications/MAMP/Library/bin
上記に /usr/local/bin が含まれているので、パスは通っています。
wp コマンドを実行したら「mysql: command not found」が表示されるのですか?
コマンドラインで「hash -r」を実行するか、Terminal を再起動すれば解決すると思います。
理由は、パスが通っているコマンドの一覧がハッシュテーブル(メモリ)に保存されていて、それを更新しないと新しいコマンドを見つけられないからです。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・人生のプチ美学を教えてください!!
- ・10秒目をつむったら…
- ・あなたの習慣について教えてください!!
- ・牛、豚、鶏、どれか一つ食べられなくなるとしたら?
- ・【大喜利】【投稿~9/18】 おとぎ話『桃太郎』の知られざるエピソード
- ・街中で見かけて「グッときた人」の思い出
- ・「一気に最後まで読んだ」本、教えて下さい!
- ・幼稚園時代「何組」でしたか?
- ・激凹みから立ち直る方法
- ・1つだけ過去を変えられるとしたら?
- ・【あるあるbot連動企画】あるあるbotに投稿したけど採用されなかったあるある募集
- ・【あるあるbot連動企画】フォロワー20万人のアカウントであなたのあるあるを披露してみませんか?
- ・映画のエンドロール観る派?観ない派?
- ・海外旅行から帰ってきたら、まず何を食べる?
- ・誕生日にもらった意外なもの
- ・天使と悪魔選手権
- ・ちょっと先の未来クイズ第2問
- ・【大喜利】【投稿~9/7】 ロボットの住む世界で流行ってる罰ゲームとは?
- ・推しミネラルウォーターはありますか?
- ・都道府県穴埋めゲーム
- ・この人頭いいなと思ったエピソード
- ・準・究極の選択
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
#1062 - '0' は索引 'PRIMARY' ...
-
SQLの検索について
-
2つのカラムでgroup by の動作...
-
あってますか?SQL
-
WHERE `年月日` = '晴' OR `年...
-
SQLです教えてくださいお願いし...
-
SQLを作ったのですがうまくいき...
-
(初心者)MySQLやmaraDBで、crea...
-
SQLです教えてくださいお願いし...
-
SQLです教えてくださいお願いし...
-
SQLです教えてください。
-
SQLです教えてくださいお願いし...
-
SQLです教えてくださいお願いし...
-
SQLです教えてくださいお願いし...
-
utf8bomとutf8mb4の違いがいま...
-
「総降水量が100mm以上になる...
-
SQLで漢字名称を都道府県や市区...
-
SQLあってますか?こう?
-
SQL構文です 画像のようにした...
-
SELECT * FROM `生徒名簿` INNE...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
副問合せにLIKE文を使う方法は...
-
RPMのmysqlとmysql-serverの違い
-
borland c++ によるMySQL への...
-
xamppのMySQLが開かない
-
MySQLのSetupファイルの違いに...
-
MAMPでMySQLのパスが通らない
-
レンタルサーバーのDBへのアク...
-
TeraTermでクエリを先読みして...
-
かねやんMySqlをつかってサーバ...
-
Movable type【ブログ】の設置...
-
windows7でのmysql ODBCの設定...
-
MySQLでAutoCommitをfalseにする
-
P.262 ---------- |ストアード...
-
ストアドファンクションを動作...
-
c言語でMySQLを利用するときの...
-
SFTPで/var/lib/mysql/にPUT
-
データベースについて
-
増設したHDDにmysqlのデータベ...
-
なんか矛盾していないでしょうか?
-
欠点だある、誤字脱字はありま...
おすすめ情報
回答ありがとうございます!
なるほど、パスは通っていたんですね。
とするとパスを変更するという表現が正しいでしょうか?
wp commandを実行した場合は
Can't connect to local MySQL server through socket '/tmp/mysql.sock' (38)
となります。
>>コマンドラインで「hash -r」を実行するか、Terminal を再起動すれば解決すると思います。
上記両方試してみたのですが、whichで表示されるpathは変わらずでした。
ありがとうございます。mamp上でmysqlは立ち上がっており、mamp上での再起動、mamp自体の再起動、mac自体のログアウト、再起動、それらのアクションごとにterminalを立ち上げ直しましたが、変わらないのです。
ありがとうございます!やってみました。
2つmysqldがある状態なんですかね?
{ユーザー名}のところは本来僕のログイン中のユーザー名が表示されます。
文字数制限をオーバーしてしまうようで、コマンドの入力結果を貼り付けられないのですが
mysqldが2つ起動しているようです。
mysql.sockも存在しているようです。
モザイクをかけてるところはユーザー名です。
mysqld_safe と mysqld の2つです。
ご提示いただいたURLは実はここに最初に投稿する前にすでに見ていて、~/.my.cnfに
同じ内容を記載済みなのです・・・
1と2にはmy.cnfがありませんでしたので、教えていただいたシンボリックを試してみました。
すでに作成していたmysql.sockがありましたので、こちらを削除した後、上記のコマンドを実行、MAMPの再起動及びterminalの再起動を行いましたが、表示されるパスに変化は見られません。hash -rと試してみましたが、同様です。
さらに1にmy.cnfを複製して配置後ログアウトをして再度試してみましたがパスに変化がないという状況です。
ありがとうございます。作成されております。確認の上上記コマンドを実行しています。
/etc/my.cnfの中身はのうちsocketのパスは以下のようになっています。
[client]
socket = /Applications/MAMP/tmp/mysql/mysql.sock
[mysqld]
socket = /Applications/MAMP/tmp/mysql/mysql.sock
またfindコマンドを実行してみたところ
/Applications/MAMP/tmp/mysql/mysql.sock
find: /dev/fd/{ユーザーのルート名}: No such file or directory
find: /dev/fd/{ユーザーのルート名}: No such file or directory
といった結果が返ってきました