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

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

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

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

Laravel

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

phpMyAdmin

phpMyAdminはオープンソースで、PHPで書かれたウェブベースのMySQL管理ツールのことです。

データベース

データベースとは、データの集合体を指します。また、そのデータの集合体の共用を可能にするシステムの意味を含めます

Q&A

解決済

2回答

1638閲覧

SQLファイルをphpmyadminにインポートさせたいです!アドバイスお願いします!

sugasan

総合スコア2

MySQL

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

Laravel

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

phpMyAdmin

phpMyAdminはオープンソースで、PHPで書かれたウェブベースのMySQL管理ツールのことです。

データベース

データベースとは、データの集合体を指します。また、そのデータの集合体の共用を可能にするシステムの意味を含めます

0グッド

0クリップ

投稿2021/04/10 10:52

編集2021/04/14 22:58

###前提

webサイトを作成し、公開したいと思っています!レンタルサーバー契約、ドメイン契約、ホームページをウェブサーバーにアップロードまで済んでいます!(FTPソフトを使用しました。)フレームワークにLaravelを使用しています!ローカル環境のデータベースからSQLファイルを作成しています(レンタルサーバーのphpmyadminにインポートさせるために)

実現したいこと

レンタルサーバーが提供しているphpmyadminにローカル環境で使用しているデータベース(mysqlを使用してます)をインポートさせ反映させたいと思っています!ちなみにフレームワークにLaravelを使用しています!

反映させないと以下のようにエラーメッセージが表示されてしまいます!(このエラーメッセージは自身で取得したドメインのURLから飛んで、リンクをクリックすると表示されます。なのでローカル環境のデータベースを使用しているとエラーは起きません。)↓↓
イメージ説明

発生している問題・エラーメッセージ

レンタルサーバーが提供しているphpmyadminにローカル環境で使用しているデータベース(mysqlを使用してます)をインポートさせた時に、以下のエラー文が出てきました

イメージ説明

試したこと

" #1071 - Specified key was too long; max key length is 767 bytes "
というエラー文だったので、以下の事を試しました。

1、ローカル環境のlaravelにて→config/database.phpファイル内で

'charset' => 'utf8',
'collation' => 'utf8_unicode_ci',
↓↓↓
'charset' => 'utf8mb4',
'collation' => 'utf8mb4_unicode_ci', に変更

2,ローカル環境のlaravelにてAppServiceProvider.phpのファイル内のbootメソッド内に

Schema::defaultStringLength(191); を追加

以下追加箇所

イメージ説明

1,2 と試してみましたが、エラー文は表示されたままです!どうすればよろしいでしょうか?
アドバイスをお願いします。

##回答に対しての追記

接続設定について(Lulucom様へ)

以下のように設定しています!(Laravelアプリ, .envファイルです)

イメージ説明

mysqlのバージョンへの回答(tomomo様へ)

レンタルサーバー → mysqlのバージョンは5.6です。
以下写真
イメージ説明

ローカル環境 → mysqlのバージョンは10.4.16です。
以下写真
イメージ説明

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

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

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

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

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

Lulucom

2021/04/10 11:23 編集

Laravelアプリでデータベースへの接続設定を正しく設定できていないと思われますので、どのように設定されたかも掲載しましょう。公開したくない値は隠していただいて大丈夫です。(質問文を後から編集できますので、質問文へご記載ください)
tomomo

2021/04/10 11:25

レンタルサーバーのMySQLのヴァージョンを書いた方が回答が付くように思います。 試した1,2とやらはLaravelに関する事柄なのでphpmyadminのインポートの其れとは無関係でしょう。 (古いMySQLで動かすならやがては必要な設定ではあるので無駄ではないですが。)
tomomo

2021/04/10 11:26

動いたというローカル環境のMySQLのバージョンも。
sugasan

2021/04/10 12:34

Lulucom様、tomomo様 回答ありがとうございます!質問の追記・修正依頼は 質問文の「回答に対しての追記」の所に記載しました!確認お願いします!
AbeTakashi

2021/04/10 12:39 編集

試したことの1は不要というか、むしろやってはダメですね。元に戻した方が良いです。2だけにして、ローカル上でデータベースを一から作り直して(migration)からインポートを試すと良いかもしれませんね。設定を変えてもすでに存在しているデータベースやテーブルには反映されないと思います。これでインポートできるかどうかは分かりませんが。
Lulucom

2021/04/10 12:44 編集

画像ありがとうございます。データベース関連の環境変数 DB_xxx だけでいいですよ。テキストでいいので画像を削除された方が良いと思います。 例えば、DB_HOSTの値ですが、ローカルでは127.0.0.1で良いかもしれませんが、もしかしてレンタルサーバでもそのままにしてしまっていませんか?他の DB_xxx についても同様です。
AbeTakashi

2021/04/10 12:57

レンタルサーバが5.6なのでローカル側も合わせた方が確実でしょうね。MariaDBを使ってるなら10.1に落とした方がいいかもしれません。MySQL5.6を使うのが確実でしょうが。新しい方を古い方に移すのは色々と大変ですので(逆ならまだ楽なんですが)。もしくはレンタルサーバを変えるか。
sugasan

2021/04/10 12:57

TakashiAbe様 回答ありがとうございます!やってみますね!
sugasan

2021/04/10 13:27

Lulucom様 回答ありがとうございます!画像変更しようとしたのですが、出来ないのでそのままにしておきます!編集ボタンを押して更新しても上手くいかないので…。 ローカルでは127.0.0.1でもレンタルサーバでも127.0.0.1のままにしています!その場合、レンタルサーバーの値はどうすればよろしいのでしょうか?
Lulucom

2021/04/10 13:32 編集

レンタルサーバーの管理パネル(?)にデータベースへの接続情報も書かれていると思いますので、レンタルサーバー上の.envファイルではそれらの値を設定しましょう。 画像は公開しない方が良い情報がありそうですので、差し替えではなく削除した方が良いと思います。
sugasan

2021/04/10 13:33

Lulucom様 ありがとうございます!やってみます!
m.ts10806

2021/04/10 23:22

同じ質問を繰り返してるだけです。 https://teratail.com/questions/332483 「やってみた結果」解決しなければ回答者に報告し、質問本文に追記してください。 放置したまま次々質問立てるのはマナー違反です。
guest

回答2

0

自己解決

回答して下さった方ありがとうございました!

無事解決しましたので記載していきます。

エラー文→Specified key was too long; max key length is 767bytes
意味として、キーが長すぎ!最大で767バイトまでにしてとのことなので、ローカル環境のphpmyadminで varchar(225)→(191)に変更しましたらエラー文が表示されず、処理がすすみました。

参考サイト→Laravel5.5でphp artisan migrateした時にエラー「1071 Specified key was too long; max key length is 767 bytes」が発生 | akamist blog

https://pisuke-code.com/mysql-specified-key-was-too-long/

投稿2021/04/11 05:58

sugasan

総合スコア2

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

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

0

試した事

これは現在の接続設定なので、すでにマイグレートされたデータベースへは影響しません。
データを全部けしてからもう一度migrateしてdumpしないとutf8のsqlファイルは生成されません。

データを消すのが嫌な場合は、sqlファイル内のmb4を全て削除すると良いと思います。

投稿2021/04/10 14:03

mikkame

総合スコア5036

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

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

sugasan

2021/04/10 14:26

回答ありがとうございます!やってみますね!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問