Go
Windows
Linux
MySQL

はじめての Go言語、インストール&さわってみる,MySQLにアクセスしてみる その1

初めての Go

初めてGo言語、初めてみた動機は、あるサーバにphpをインストールできないことでした。というか、単に root権限もらえなかった or お客様の環境なので無茶できなかったことが大きい。そんな訳で、これから色々と触ってみる。

インストール

https://golang.org/dl/ から最新のgoをダウンロードすればよい。

Windows の場合

Windows に インストーラを使って GoLang を インストールするときの注意点」 を参照するとpathの話で少しハマルっぽいが、go1.8.3 版では特にハマル点はなかったので素直にインストール or 再起動でいい。

⇒ 実際は、「

Linux の場合

基本どこでもokです、path さえ通せばねw。
私は、下記のようにしました。

cmd
$ cd ~
$ wget https://storage.googleapis.com/golang/go1.8.3.linux-amd64.tar.gz
$ tar xvfz go1.8.3.linux-amd64.tar.gz 

で、.bash_profile に下記を追加する。

.bash_profile
export GOROOT=$HOME/go
export GOPATH=$HOME/go/goroot
export PATH=$PATH:$HOME/go/bin

コマンドラインから go が使えればok。試しに hello してみます。

hello.go
package main

import "fmt"

func main() {
    fmt.Println("Hello hage!!")
}

実行してみる。

cmd
$ go run hello.go
Hello hage!!

MySQLに接続してみる

これ!これがやりたかった。go は、Java や php 、Perl などデータベースアクセスを行う場合、別途DBIやらパッケージをインストールする必要がありましたが、そこは後発の go 。すでにそういう一連の基底部分が充実しておりますw

とはいえ

MySQLのドライバは、インスコする必要があります。
それでもインスコは、超絶楽チンちん。

cmd
$ go get "github.com/go-sql-driver/mysql"

プログラム、プログラム

プログラム(楽しいので3回言ってみた)。ちょいといままでの php と全然勝手が違うのですが、そこは後から開発環境を整えるということにして、とりあえずMySQLにアクセスして結果を返すというサンプルを実行してみる。

golangの環境を整えてmysqlに接続する

mysql.go
package main

import (
    "database/sql"
    "fmt"

    _ "github.com/go-sql-driver/mysql"
)

func main() {
    db, err := sql.Open("mysql", "user:password@tcp(host:3306)/dbname")
    if err != nil {
        panic(err.Error())
    }
    defer db.Close()

    rows, err := db.Query("SELECT TABLE_NAME, PARTITION_NAME FROM INFORMATION_SCHEMA.PARTITIONS where PARTITION_NAME is not null")
    defer rows.Close()
    if err != nil {
        panic(err.Error())
    }

    for rows.Next() {
        var tableName string
        var partitionName string
        if err := rows.Scan(&tableName, &partitionName); err != nil {
            panic(err.Error())
        }
        fmt.Println(tableName, partitionName)
    }
}

おお。思ったとおりの結果になったw

参考にさせて頂いたサイト様