環境
MAC OSX Mojave
MySQL5.7(ディスクイメージからインストール)
MySQL Workbench
質問内容
私の環境でMySQLサーバーを再起動させるにはどうしたらよいでしょうか?
mysql.server
がcommand not found
になる理由や、
システム環境設定(MySQL PreferencePane)の StopStop MySQL Server ボタンの操作が効かない理由を教えて下さい。
バックエンドの処理を触るのがほぼ初めてなので、その他にもおかしな点があれば、分かるように指摘したいただけると助かります。
状況
MySQLを学ぶため公式チュートリアルを参照して、ローカル環境へのMySQLの導入や、クライアントツールを使用したクエリの実行やデータの操作を試行しています。
(MySQLが最新版ではないのは、会社の環境に合わせてトレーニングしているからです。)
MySQL公式サイトからダウンロードしたディスクイメージ(.dmgファイル)でMySQLをインストールし、
TerminalやMySQL WorkbenchからMySQLに接続して、データベースの作成やLOAD DATA LOCAL INTO~
まで試しました。
(ほとんどのクエリはMySQL Workbenchから実行するようにしていたのですが、どうしても--local_infile=1
を付けてログインした状態を再現することができなかったので、このコマンドだけはTerminalから実行しました。)
するとLOAD DATA LOCAL INTO~
で読み込んだ、漢字のデータが文字化けしてしまいました。
Google検索し、文字コードの設定がUTF8じゃないのが原因かと予測しました。
実際に確認した文字コードがこちらです。
bash
1mysql> show variables like 'character_set_%'; 2+--------------------------+-----------------------------------------------------------+ 3| Variable_name | Value | 4+--------------------------+-----------------------------------------------------------+ 5| character_set_client | utf8 | 6| character_set_connection | utf8 | 7| character_set_database | latin1 | 8| character_set_filesystem | binary | 9| character_set_results | utf8 | 10| character_set_server | latin1 | 11| character_set_system | utf8 | 12| character_sets_dir | /usr/local/mysql-5.7.27-macos10.14-x86_64/share/charsets/ | 13+--------------------------+-----------------------------------------------------------+
そのため/etc/mysql/my.cnf
を新規作成し、下記の内容を記して保存しました。
vi
1[mysqld] 2character-set-server=utf8 3[client] 4loose-local-infile=1 5default-character-set=utf8 6[mysql] 7default-character-set=utf8
設定変更には再起動が必要かとおもったので、mysql.server restart
を実行したところ
command not found
が返ってきました。
おそらく、MySQLを、皆さんがよく行われているHomebrewからのインストールではなく、ディスクイメージからインストールしたことで何かの状態が違っているのだと思うのですが、私の状況ではどのように対策すべきか、検索してもヒットしません。
システム環境設定にあるMySQL PreferencePane から、MySQLのアンインストールができる事は確認済みですが、Stop MySQL Serverボタンを押しても、The MySQL Server Instance is running
から状態が変化しません。
試しに Automatically Start MySQL Server on Startup のチェックを外してみても、解決しませんでした。
補足
会社ではなくTeratailで質問している理由ですが、
業務上LOAD DATA INTO~
は使用しないので、その工程はスキップしていいと言われてしまったためです。
LOCAL DATA INTO~
で読み込んだデータが文字化けしてしまう事が、そもそもの発端のため、業務上の質問としては質問できない状況です…。
業務上で使用しなくとも、このままでは圧倒的に知識が不足しているのは明らかなので、今後のために勉強したく、Teratailで質問させていただきました。
試したこと
頂いた回答を参考にプロセスのkillを試行してみたのですが、状況は変わりませんでした…。
bash
1local-mac:mysql user_name$ ps -e | grep mysqld 24293 ?? 0:00.03 /bin/sh /usr/local/mysql/bin/mysqld_safe --user=mysql 34367 ?? 0:19.01 /usr/local/mysql/bin/mysqld --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data --plugin-dir=/usr/local/mysql/lib/plugin --user=mysql --log-error=local-mac.local.err --pid-file=local-mac.local.pid 454030 ttys003 0:00.00 grep mysqld 5 6local-mac:mysql user_name$ sudo kill 4367 7Password: 8local-mac:mysql user_name$ sudo kill 4293 9kill: 4293: No such process
再度プロセスを確認すると、再起動(?)した様子です。
bash
1local-mac:mysql user_name$ ps -e | grep mysqld 254452 ?? 0:00.04 /bin/sh /usr/local/mysql/bin/mysqld_safe --user=mysql 354533 ?? 0:00.68 /usr/local/mysql/bin/mysqld --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data --plugin-dir=/usr/local/mysql/lib/plugin --user=mysql --log-error=local-mac.local.err --pid-file=local-mac.local.pid 454557 ttys003 0:00.00 grep mysqld
試しに再度mysql.server
コマンドを叩いてみましたが…。
bash
1local-mac:mysql user_name$ mysql.server restart 2-bash: mysql.server: command not found
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2019/09/02 02:48
2019/09/02 03:52 編集
2019/09/03 02:23
2019/09/06 04:50
2019/09/06 06:21 編集
2019/09/08 04:49