アフィリエイト広告を利用しています

2024年04月30日

Laravel : migrateでのデータ型指定

Laravelのmigrateでカラム定義するとき、データタイプの指定方法がよく分からない。

このページが一番、分かり易い。

https://qiita.com/Otake_M/items/3c761e1a5e65b04c6c0e

ここに書かれている中で、使用頻度の高そうなものを転記します。

 increments('id') ‥‥‥‥‥ 「符号なしINT」を使用した自動増分ID(主キー)
 char('カラム名', 長さ) ‥‥ CHAR、長さを指定する固定長文字列
 date('カラム名') ‥‥‥‥ 日付
 time('カラム名') ‥‥‥‥ 時間
 dateTime(カラム名) ‥‥ 日付時刻
 integer('カラム名') ‥‥‥ 整数
 timestamps() ‥‥‥‥‥ created_atとupdate_atカラム
 string('カラム名') ‥‥‥‥ VARCHAR(255バイトになる)
 string('カラム名', 長さ) ‥‥長さ指定のVARCHAR
 text('カラム名') ‥‥‥‥ ‥ TEXT(長文)

nullable() を加えるとNullの登録を許容してくれる。
 例:string('カラム名') ー>nullable()


posted by db-engineer at 00:00 | Comment(0) | PHP

2024年04月29日

docker上でphpmyadminを使う。

dockerコンテナ上でmysqlのデータベースを操作していて、

テーブル構造を確認したくなったが、phpmyadminの起動方法が分からない。

Webで検索して分かった。

docker-compose.yml 内に以下の記述があった。



 "phpmyadmin-dl": {
 "image": "phpmyadmin/phpmyadmin",
 "container_name": "phpmyadmin-dl",
 "environment": [
  "PMA_ARBITRARY=1",
  "PMA_HOST=db-dl",
  "PMA_USER=root",
  "PMA_PASSWORD=root"
 ],
"links": [
"db-dl"
 ],
"ports": [
"8580:80"
 ],
"volumes": [
"/sessions"
 ]
 },



localhost:8580/

で起動した。



posted by db-engineer at 00:00 | Comment(0) | Docker

2024年04月09日

Laravel: migrateで [1045] Access denied for user 


 php artisan migrate

migrateすると以下のエラーメッセージが表示された。


 SQLSTATE[HY000] [1045] Access denied for user 'dbuser'@'172.18.0.2' (using password: YES)
 (SQL: select * from information_schema.tables where table_schema = message-board and table_name =
 migrations and table_type = 'BASE TABLE')


grant コマンドで権限を付与していないことに気付いたので、次のコマンドを実行した。


 GRANT ALL PRIVILEGES ON *.* TO 'dbuser'@'localhost' IDENTIFIED BY 'dbpass' WITH GRANT OPTION;


手順書には「このコマンドにより、dbuserという名前のユーザをMySQLに追加するとともに、MySQLの管理者権限(何でも実行できる権限)を付与します。」と書かれていたのだがエラーメッセージが表示されて実行っできない。

そこで、ユーザ作成と権限の付与をやり直した。

まず、ユーザを削除。


 drop user 'dbuser'@'localhost';


次にユーザを作成。


 create user 'dbuser'@'%' identified by 'password'; --全hostからのアクセスを許可
または
 create user 'dbuser'@'localhost' identified by 'test'; --localhostからのアクセスを許可


最後に権限を付与


 GRANT ALL ON *.* TO 'dbuser'@'localhost'; --全DBに対するすべての権限を付与
または
 GRANT ALL ON testDB.* TO 'test'@'localhost'; --testDBに対するすべての権限を付与


migrate を実行できた。






posted by db-engineer at 00:00 | Comment(0) | Mysql

2024年04月08日

Docker : Laravel環境でMysqlに接続


 php artisan migrate

migrateすると以下のエラーメッセージが表示された。


 SQLSTATE[HY000] [2002] Connection refused (SQL: select * from information_schema.tables where
 table_schema = message-board and table_name = migrations and table_type = 'BASE TABLE')


.env ファイルを修正した。

 修正前 DB_HOST=127.0.0.1
 修正後 DB_HOST=db-dl

db-dl は docker-compose.yml 内に記載されているコンテナ名(データベースコンテナ)

これで、Connection refusedエラーは解消できた。


posted by db-engineer at 00:00 | Comment(0) | Docker

2024年04月02日

𠮟とutf8mb4

𠮟責、𠮟咤激励、𠮟る

機種依存文字の中で 𠮟 はよく使われる。

この文字は、文字コードがutf8のmysqlのデータベースに登録できない。

文字コードをut8mb4にするとmysqlに登録できる。


データベースに保存されているデータを取り出して画面表示すると、

𠮟が文字化けした。データベースにはちゃんと保存されているのに

何で文字化けするのか分からなかったが、以下のコマンドが紛れ込んでいた。


 set names utf8;


これを取り除くか、または utu8 を utf8mb4 に変更すると正しく表示された。


 set names utf8mb4;



posted by db-engineer at 00:00 | Comment(0) | PHP

最新記事
検索
カテゴリーアーカイブ
プロフィール
db-engineerさんの画像
db-engineer
プロフィール
タグクラウド