Railsアプリケーション制作中、MySQLの導入で詰まりました。
#やりたかったこと
・制作しているRailsアプリのDBをSQLiteからMySQLに変えたい
└そのためにユーザー登録したい
└そのためにMySQLを起動したい
#起こったトラブル
brew install mysql
でインストールしたMySQLが起動できない
###やったこと
1、再インストールで解決した人が多かったので以下のコマンドでアンインストール
brew uninstall mysql $ rm -rf /usr/local/mysql $ rm -rf /Library/StartupItems/MYSQL $ rm -rf /Library/PreferencePanes/MySQL.prefPane $ rm -rf /Library/Receipts/mysql-.pkg $ rm -rf /usr/local/Cellar/mysql* $ rm -rf /usr/local/bin/mysql* $ rm -rf /usr/local/var/mysql* $ rm -rf /usr/local/etc/my.cnf $ rm -rf /usr/local/share/mysql* $ rm -rf /usr/local/opt/mysql
2、再インストール
brew install mysql
3、mysqlコマンドを使えるように設定
echo 'export PATH="/usr/local/opt/mysql/bin:$PATH"' >> ~/.bash_profile source ~/.bash_profile which mysql ▼(実行結果) /usr/local/opt/mysql/bin/mysql
4、MySQLの状態を確認
mysql.server status ▼(実行結果) ERROR! MySQL is not running
5、起動を試みる
mysql.server start ▼(実行結果) Starting MySQL .. ERROR! The server quit without updating PID file (/usr/local/var/mysql/MacBook-Pro.local.pid).
6、ログを確認
mysql $ cat MacBook-Pro.local.err ▼(実行結果) ”tmp/mysql.sock.lockを開けませんでした”という内容を発見
7、ググったところこのファイルを消して解決した人がいるので消してみる
tmp $ rm mysql.sock.lock ▼(実行結果) override rw------- _mysql/wheel for mysql.sock.lock? yes rm: mysql.sock.lock: Permission denied ※消せなかった
#質問
つまりこのmysql.sock.lock
が悪さをしていて、削除しようにも権限がない状態、という理解で合ってますでしょうか?
あるいは他に原因があるのでしょうか。
自己解決の目処が立ちません。
知識不足で申し訳ございませんがご教授をお願いいたします。
###補足
エラーのログ全文
2020-09-08T07:00:31.6NZ mysqld_safe Logging to '/usr/local/var/mysql/MacBook-Pro.local.err'. 2020-09-08T07:00:31.6NZ mysqld_safe Starting mysqld daemon with databases from /usr/local/var/mysql 2020-09-08T07:00:31.322782Z 0 [System] [MY-010116] [Server] /usr/local/Cellar/mysql/8.0.21_1/bin/mysqld (mysqld 8.0.21) starting as process 26511 2020-09-08T07:00:31.325702Z 0 [Warning] [MY-010159] [Server] Setting lower_case_table_names=2 because file system for /usr/local/var/mysql/ is case insensitive 2020-09-08T07:00:31.335320Z 1 [System] [MY-013576] [InnoDB] InnoDB initialization has started. 2020-09-08T07:00:31.459444Z 1 [System] [MY-013577] [InnoDB] InnoDB initialization has ended. 2020-09-08T07:00:31.550163Z 0 [System] [MY-011323] [Server] X Plugin ready for connections. Bind-address: '127.0.0.1' port: 33060, socket: /tmp/mysqlx.sock 2020-09-08T07:00:31.608721Z 0 [Warning] [MY-010068] [Server] CA certificate ca.pem is self signed. 2020-09-08T07:00:31.608931Z 0 [System] [MY-013602] [Server] Channel mysql_main configured to support TLS. Encrypted connections are now supported for this channel. 2020-09-08T07:00:31.610349Z 0 [ERROR] [MY-010274] [Server] Could not open unix socket lock file /tmp/mysql.sock.lock. 2020-09-08T07:00:31.610552Z 0 [ERROR] [MY-010268] [Server] Unable to setup unix socket lock file. 2020-09-08T07:00:31.610932Z 0 [ERROR] [MY-010119] [Server] Aborting 2020-09-08T07:00:32.693259Z 0 [System] [MY-010910] [Server] /usr/local/Cellar/mysql/8.0.21_1/bin/mysqld: Shutdown complete (mysqld 8.0.21) Homebrew. 2020-09-08T07:00:32.6NZ mysqld_safe mysqld from pid file /usr/local/var/mysql/MacBook-Pro.local.pid ended
作業環境
OS:macOS Catalina
###追記
ご指摘の通りsudoで削除できました。
その後起動を試みた際のエラーでは、
Can't start server : Bind on unix socket: Address already in use
Do you already have another mysqld server running on socket: /tmp/mysql.sock ?
とありました。
「すでにMySQLサーバーが実行されているから中止した」ということだと思うんですが、どうやって調べたらよろしいでしょうか。
重ねてご教授お願いいたします。
回答2件
あなたの回答
tips
プレビュー