20211016のMySQLに関する記事は4件です。

mysql 8.x系にしたら、Sequel Proでエラーが出た時の対処

既存のSequel Proを削除する 下記のコマンドで、銀色のSequel Proを再インストール brew install homebrew/cask-versions/sequel-pro-nightly --cask 銀色のパンケーキのSequel Proがインストールできたら、接続できるようになっているはず。
  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む

Goでcsvデータを読み取り、DBに保存

はじめに csvのデータをDBに保存しなけらばならなくなり csvデータをDBに保存する 機能を作成しましたのでメモ程度に記載します。 環境は echo+gorm+docker です ディレクトリ Project ├──docker | ├──go | | └──Dockerfile | └──mysql | ├──docker-compose.yml └── src | └──go ├── controllers ├── database ├── csv | └──schooldata.csv | ├── db (migationとかseedとか) ├── dbconfig.yml ├── go.mod ├── go.sum ├── main.go └── fresh.conf 実行するgoファイル 今回は schoolsというテーブルに csvの学校データを大量に読み込むという想定で作成しました。 package main import ( "encoding/csv" "os" "fmt" "api/database" "github.com/jinzhu/gorm" _ "github.com/jinzhu/gorm/dialects/mysql" ) type Schools struct { Area string `gorm:"column:area"` //学校の所在地 Name string `gorm:"column:name"` //学校名 } func main() { db := dbconnect.Connect() defer db.Close() if err := readingcsv(db);err != nil { fmt.Println(err) } } func readingcsv(db *gorm.DB) error { //読み込むCSVファイルを記載 csvFile, err := os.Open("csv/schooldata.csv") fmt.Println("csvは読みこめませんでした") if err != nil { return err } defer csvFile.Close() reader := csv.NewReader(csvFile) reader.FieldsPerRecord = -1 record, err := reader.ReadAll() if err != nil { fmt.Println(err) os.Exit(1) } for i := 0; i < len(record); i++ { fmt.Println(record[i][0]) fmt.Println(record[i][1]) schools := Schools{Area: (record[i][0]),Name:(record[i][1])} if err := db.Create(&schools).Error; err != nil { fmt.Printf("%+v", err) } } return nil } あとは実行するだけ docker-compose exec go go run main.go
  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む

【Mac】悪質なソフトウェアかどうかをAppleでは確認できないため開けられないファイルを開ける方法

はじめに mysqlの学習を進めるなかで、MySQL Workbenchのインストール後開けることができず一瞬戸惑ったので記録しておきます。 起こったこと 対処法 controlキーを押しながらクリックすると「開く」が選択可能に!
  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む

ローカル開発環境でDBが必要なときに使う手法(私的)

※ Docker Composeによる開発が前提になっています。 ※ ここではMySQLを利用しています。 はじめに データベースだけ別でホストに用意して、ポートを開いて繋げる方法でも悪くはないのです。 しかし環境的なまとまりが悪いので、普段はDocker Composeを利用しています。 探しても意外と欲しい情報が見つからず、かなり調べながら作った経緯がありますので、備忘録を兼ねて共有しておきます。 手順 1. 任意の docker-compose.yml を用意する。 docker-compose.yml version: "3" services: my_app: build: ./app ports: - 5000:5000 volumes: - ./app:/app tty: true この段階では、データベース以外の環境は揃っているものとします。 2. docker-compose.yml にデータベース用の設定を追記する。 ここでは、MySQLとphpMyAdminを入れています。 MySQLの準備ができる前にphpMyAdminが立ち上がると正常に動作しないため、healthcheckをさせています。 docker-compose.yml version: "3" services: app: build: ./app depends_on: - mysql ports: - 5000:5000 volumes: - ./app:/app tty: true mysql: image: mysql:5.7 environment: - MYSQL_ROOT_PASSWORD=password - MYSQL_USER=user - MYSQL_PASSWORD=password - TZ=Asia/Tokyo volumes: - ./db/data:/var/lib/mysql - ./db/initdb.d:/docker-entrypoint-initdb.d ports: - 3306 command: mysqld --character-set-server=utf8mb4 --collation-server=utf8mb4_unicode_ci healthcheck: test: /etc/init.d/mysql status start_period: 10s interval: 1s retries: 120 phpmyadmin: image: phpmyadmin/phpmyadmin:5.1.1 depends_on: mysql: condition: service_healthy environment: - PMA_ARBITRARY=1 - PMA_HOST=mysql - PMA_USER=root - PMA_PASSWORD=password ports: - 8080:80 volumes: - ./db/phpmyadmin/sessions:/sessions 3. ./db/initdb.d/1_init.sql を作成し、初回に実行したいSQL文を記述する。 1_init.sql CREATE DATABASE `sample_db`; USE `sample_db`; CREATE TABLE `sample_data` ( `id` int(11) NOT NULL AUTO_INCREMENT, `name` varchar(50) COLLATE utf8mb4_unicode_ci NOT NULL, `value` varchar(600) COLLATE utf8mb4_unicode_ci NOT NULL, PRIMARY KEY (`id`), ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci; INSERT INTO `sample_data` (`id`, `name`, `value`) VALUES (1, "name_1", "This is value1."), (2, "名前2", "これは名前2です。"); 4. docker-compose up する。 データベースの初期化にはいくらか時間がかかるため、 http://localhost:8080 でphpMyAdminが表示されるまで少し待ちます。 あまりに遅い場合、 1_init.sql に構文エラーがある可能性があります。 その場合、一旦 down して再度 up することで、phpMyAdminにアクセスできる場合があります。 すべての準備が完了したら、下記の接続情報を利用できます。 .env host="mysql" port=3306 user="user" password="password" db="sample_db" 参考 その他多数
  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む