#PostgreSQLの準備
###Goの設定
#####PostgreSQL用のドライバをインストール
go get github.com/lib/pq
#####main.goの中身
package main
import (
"database/sql"
_ "github.com/lib/pq"
)
var Db *sql.DB
var err error
type Person struct {
Name string
Age int
}
func main() {
//sqlの作成
Db, err = sql.Open("postgres", "user=test_user dbname=testdb password=8860 sslmode=disable")
//エラーハンドリングとsqlとgoのリンク
if err != nil {
log.Panicln(err)
}
defer Db.Close()
######ドライバとは..
同じ初学者の方は共感頂けるのではないでしょうか。ドライバって何?笑
G先生(Google)では、PCと外部機器をつなぐための橋渡しをするのがドライバーの役割です。とありましたがこの場合goとPostgreSQLを繋ぐために必要だと解釈しています。
####macの場合
######PostgreSQLのインストール
brew install postgresql
######文字コードをUTF-8でデータベースの初期化
initdb /usr/local/var/postgres -E utf8
######Postgresのバージョンチェック
postgres --version
#####新しいデータベースを作成する。
この例ではtest_dbという名前です。
$ createdb test_db
#####作成したデータベースを開く
$ psql test_db
僕は最初にずっとここでつまずていて、、
$ psql
エラー文
psql: error: FATAL: database "macの名前" does not exist
訳.
"macの名前"の名前のデータベースが存在しません。
作った覚えないんだけど、、、ってずっと思っていてなかなか前に進めませんでした。psqlだけで開こうとすると"macの名前"のデータベースを探そうとするのかな??
試しに"macの名前"で作成したらpsqlで入れたので多分そうです。
######ユーザー作成
データベースを開くことができたらこんな画面になると思います
psql (13.2)
Type "help" for help.
mydb2=#
おめでとうございます。あなたはデータベースの中にいます。
僕は初めで開けた時嬉しすぎで腕立てしました。(有り余る嬉しさを筋肉に置換する)
create user test_user password '8860';
test_userと'8860'は自由に設定出来ます。
user名とパスワードを作ります。
何かのアプリに登録するみたいにpsqlもこういうのが必要なんですね。
ここで一度情報を確認します。
\l
すると
List of databases
Name | Owner | Encoding | Collate | Ctype | Access privileges
---------------+----------+----------+---------+-------+-----------------------
postgres | mac名前 | UTF8 | C | C |
testdb | mac名前 | UTF8 | C | C |
template0 | mac名前 | UTF8 | C | C | =c/名前 +
| | | | | 伏せます
template1 | mac名前 | UTF8 | C | C | =c/名前 +
| | | | | 伏せます
(4 rows)
他にどんなものがあるにか確認できます。先程作成したものもありますね。
ちなみに
\q
でpsqlから抜けれます。
select usename from pg_user;
こちらはuserの確認になります。test_userが表示されたらおっけい。
#####作成したuserでデータベースを作る
create database testdb owner test_user;
これで\lnにて確認するとtest_userでデータベースが作られています。