質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
MySQL

MySQL(マイエスキューエル)は、TCX DataKonsultAB社などが開発するRDBMS(リレーショナルデータベースの管理システム)です。世界で最も人気の高いシステムで、オープンソースで開発されています。MySQLデータベースサーバは、高速性と信頼性があり、Linux、UNIX、Windowsなどの複数のプラットフォームで動作することができます。

Laravel

LaravelとはTaylor Otwellによって開発された、オープンソースなPHPフレームワークです。Laravelはシンプルで表現的なシンタックスを持ち合わせており、ウェブアプリケーション開発の手助けをしてくれます。

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

Q&A

解決済

3回答

731閲覧

mysqlが起動しません。

oribanda

総合スコア3

MySQL

MySQL(マイエスキューエル)は、TCX DataKonsultAB社などが開発するRDBMS(リレーショナルデータベースの管理システム)です。世界で最も人気の高いシステムで、オープンソースで開発されています。MySQLデータベースサーバは、高速性と信頼性があり、Linux、UNIX、Windowsなどの複数のプラットフォームで動作することができます。

Laravel

LaravelとはTaylor Otwellによって開発された、オープンソースなPHPフレームワークです。Laravelはシンプルで表現的なシンタックスを持ち合わせており、ウェブアプリケーション開発の手助けをしてくれます。

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

0グッド

1クリップ

投稿2020/08/17 21:53

編集2020/08/18 03:54

LaravelをインストールしてLaravelプロジェクトを動作させて、データベースを設定してマイグレーションファイルを作成するとターミナルでエラーが発生し、調べて見ると恐らくMySQLに接続できていないのが原因と考えましたが、どこを修正したら良いか分からず、困っています。
勉強不足で申し訳ないのですが、お助け頂けると助かります。

まず下記はマイグレーションした時のエラーです。

2020_08_17_105740_create_books_table.phpを下記のように修正し、php artisan migrateしました。

<?php use Illuminate\Database\Migrations\Migration; use Illuminate\Database\Schema\Blueprint; use Illuminate\Support\Facades\Schema; class CreateBooksTable extends Migration { /** * Run the migrations. * * @return void */ public function up() { Schema::create('books', function (Blueprint $table) { $table->increments('id'); $table->string('name', 50); $table->integer('price'); $table->string('author', 50)->nullable(); $table->timestamps(); }); } /** * Reverse the migrations. * * @return void */ public function down() { Schema::dropIfExists('books'); } }
(base) sample % php artisan migrate Illuminate\Database\QueryException SQLSTATE[HY000] [1045] Access denied for user 'root'@'localhost' (using password: YES) (SQL: select * from information_schema.tables where table_schema = homestead and table_name = migrations and table_type = 'BASE TABLE') at vendor/laravel/framework/src/Illuminate/Database/Connection.php:671 667| // If an exception occurs when attempting to run a query, we'll format the error 668| // message to include the bindings with SQL, which will make this exception a 669| // lot more helpful to the developer instead of just the database's errors. 670| catch (Exception $e) { > 671| throw new QueryException( 672| $query, $this->prepareBindings($bindings), $e 673| ); 674| } 675| +34 vendor frames 35 artisan:37 Illuminate\Foundation\Console\Kernel::handle(Object(Symfony\Component\Console\Input\ArgvInput), Object(Symfony\Component\Console\Output\ConsoleOutput))

上記の内容から.envとdatabase.phpの記述に間違いがあると思い、下記のように記入しました。

.env DB_CONNECTION=mysql DB_HOST=127.0.0.1 DB_PORT=3306 DB_DATABASE=sample DB_USERNAME=root DB_PASSWORD=test
database.php 'mysql' => [ 'driver' => 'mysql', 'url' => env('DATABASE_URL'), 'host' => env('DB_HOST', 'localhost'), 'port' => env('DB_PORT', '3306'), 'database' => env('DB_DATABASE', 'homestead'), 'username' => env('DB_USERNAME', 'root'), 'password' => env('DB_PASSWORD', ''), 'unix_socket' => env('DB_SOCKET', ''), 'charset' => 'utf8mb4', 'collation' => 'utf8mb4_unicode_ci', 'prefix' => '', 'prefix_indexes' => true, 'strict' => true, 'engine' => null, 'options' => extension_loaded('pdo_mysql') ? array_filter([ PDO::MYSQL_ATTR_SSL_CA => env('MYSQL_ATTR_SSL_CA'), ]) : [], ],

その後、php artisan config:cacheしてから再度、php artisan migrateすると同じエラーになりました。
解決方法を検索していると、MySQLのインストールが必要な記事が出てきたので、インストール済みと思ったが念のためインストールしました。
インストール自体は何も問題なくできまして、mysql -urootを実行すると、
ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2)
上記のエラーが表示され、接続ができないようなので解決方法検索していろいろ試してみましたが、解決できませんでした。

試したコマンド $ sudo /etc/init.d/mysqld restart mysql -u root -p brew uninstall mysql ls /usr/local/var/mysql [マシンのホスト名].local.pidの存在を確認。 mysql.server status ERROR! MySQL is not running mysql.server start --skip-grant-tables brew uninstall mysql sudo rm -rf /usr/local/var/mysql hown [mysqlの動作ユーザ名] /usr/local/var/mysql/***.local.err $ touch /usr/local/var/mysql/****.local.pid

調べてみて、新たなエラーが発生したので追記します。

mysql -u root -p Enter password: ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2)

ソケットがないのが原因と思われたため、下記を実行しソケットを作成

% sudo touch mysql.sock Password: % sudo mysql.server start Starting MySQL .Logging to '/usr/local/var/mysql/****MacBook-Pro.local.err'. ERROR! The server quit without updating PID file (/usr/local/var/mysql/****MacBook-Pro.local.pid). % sudo chown -R _mysql:_mysql /usr/local/var/mysql % sudo mysql.server restart ERROR! MySQL server PID file could not be found! Starting MySQL .Logging to '/usr/local/var/mysql/****MacBook-Pro.local.err'. ERROR! The server quit without updating PID file (/usr/local/var/mysql/****MacBook-Pro.local.pid).

****MacBook-Pro.local.pidは存在していて、****MacBook-Pro.local.errも存在しています。
ソケットも作成して権限も移したのにエラーが解決できません。

新たに調べているとMySQLのバージョンに問題があるのではと思い追記します。

% ls /usr/local/Cellar/mysql* /usr/local/Cellar/mysql: 8.0.21 /usr/local/Cellar/mysql@5.6: 5.6.47

二つのバージョンが存在していて、どちらを使えば判断ができずにエラーが出ている可能性があると記載している記事をみました。
5.6.47をアンインストールし、現在は8.0.21のみになります。
再度、起動するもERROR! The server quit without updating PID fileと表示されたので、touch /usr/local/var/mysql/ユーザー名.local.pidを再度作成し、権限をsudo chown -R _mysql:_mysql /usr/local/var/mysql/を実行して、再度起動させるも下記のような状態になりました。

(base) ~ % mysql.server start Starting MySQL ./usr/local/Cellar/mysql/8.0.21/bin/mysqld_safe: line 144: /usr/local/var/mysql/ユーザー名.local.err: Permission denied rm: /usr/local/var/mysql/sユーザー名.local.pid: Permission denied 2020-08-18T03:43:42.6NZ mysqld_safe Fatal error: Can't remove the pid file: /usr/local/var/mysql/ユーザー名.local.pid. Please remove the file manually and start /usr/local/Cellar/mysql/8.0.21/bin/mysqld_safe again; mysqld daemon not started /usr/local/Cellar/mysql/8.0.21/bin/mysqld_safe: line 144: /usr/local/var/mysql/ユーザー名.local.err: Permission denied ERROR! The server quit without updating PID file (/usr/local/var/mysql/ユーザー名.local.pid).

下手な説明で申し訳ございません。助けて頂けると助かります。
よろしくお願い申し上げます。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答3

0

自己解決

PC自体を再起動したら、MySQLに接続することができました。
回答して頂いた皆様、本当にありがとうございました。

投稿2020/08/18 10:56

oribanda

総合スコア3

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

自分も最近MySQLを再インストールしたので、よければ参考にしてみてください。

Mac MySQL 8.0 再インストールする

投稿2020/08/18 05:21

ucan-lab

総合スコア888

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

oribanda

2020/08/18 09:39

回答ありがとうございます。 載せて頂いた記事を参考にしましたが、$ mysql_secure_installationを実行するとError: Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2)と表示され、% mysql.server startを実行するとERROR! The server quit without updating PID file (/usr/local/var/mysql/ユーザー名.pid).と表示され、解決できませんでした。
ucan-lab

2020/08/18 16:04

マジっすか... そうなるとちょっとお手上げ感ありますね...????
guest

0

古いほうのバージョンのみを削除する方法

$ brew uninstall 古い方のmysql

今まで保存していたデータは消えてしまうのでしょうか?

心配ならバックアップしてください。

投稿2020/08/18 00:07

編集2020/08/18 00:24
technocore

総合スコア7200

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

oribanda

2020/08/18 03:28

ご回答頂きありがとうございます。 古い方のmysqlをアンインストールすることはできました、同じエラーが発生し解決できませんでした。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問