Edited at

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

More than 1 year has passed since last update.


初めての 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


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