ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • RaspberryPi로 Golang 서버만들기 - MariaDB 설치하기 [6]
    Go 2021. 1. 3. 21:16
    728x90
    반응형

    1. 라즈베리파이에 아래 명령어로 MySQL을 설치합니다.

    apt-get update
    apt-get install mariadb-server

     

    2. mysql 에 접속합니다.

    mysql -u root -p

    초기비밀번호를 설정합니다.

     

     

    3. localhost에서 접속할때 localhost를 허용해주어야 됩니다.

    # 마지막의 raspberry는 위에서 설정한 비밀번호이다.
    grant all privileges on *.* to 'root'@'localhost' identified by 'raspberry';

     

     

    4. mysql에 접속이 되면 설치가 완료되었습니다.

     

     

     

    5. 데이터베이스 리스트를 확인합니다.

    show databases;

     

    6. mysql 데이터베이스를 사용하고, 테이블을 확인합니다.

    use mysql;
    show tables;
    select User, Password from user;

     

    7. 이제 go에서 코드를 통해 조회해보겠습니다. 먼저 package를 받습니다.

    go get github.com/go-sql-driver/mysql
    go mod vendor

     

    8. main을 수정한다.

    //현재 패키지를 설정한다. main은 func main()이 있어야한다.
    package main
    
    //필요한 패키지를 import한다.
    import (
    	"net/http"
    	"database/sql"
    	
    	"github.com/labstack/echo/v4"
    	_ "github.com/go-sql-driver/mysql"
    )
    
    func main() {
    	//echo 생성
    	e := echo.New()
    	// '/'로 GET으로 요청이 왔을때 응답을 설정한다.
    	e.GET("/", func(c echo.Context) error {
    		//DB의 접속정보를 저장하고 db를 인스턴스화 한다.
    		db, err := sql.Open("mysql", "root:raspberry@tcp(127.0.0.1:3306)/mysql")
    		//err발생했는지 확인한다.
    		if err != nil {
    			panic(err)
    		}
    
    		//db를 통해 sql문을 실행 시킨다.
    		rows, err := db.Query("select User, Password from user")
    		// 함수가 종료되면 rows도 Close한다.
    		defer rows.Close()
    
    		//err발생했는지 확인한다.
    		if err != nil {
    			print(err)
    			return err
    		}
    
    		//User, Password를 받을 변수를 미리 만든다.
    		var User string
    		var Password string
    
    		for rows.Next() {
    			//포인터를 사용해 User와 Password를 가져온다.
    			err := rows.Scan(&User, &Password)
    			//err발생했는지 확인한다.
    			if err != nil {
    				print(err)
    				return err
    			}
    			//User와 Password를 받아온다.
    			print("User: " + User + " Password: " + Password + "\n")
    		}
    		//Response를 보낸다.
    		return c.String(http.StatusOK, "ok")
    	})
    	//echo를 실행시키고, 서버가 종료됬을때 Logger를 설정한다.
    	e.Logger.Fatal(e.Start(":1323"))
    }

     

    9. 실행시킨다.

    go run main.go

     

    10. Curl 또는 PostMan을 통해 테스트해 본다. 

    curl "http://192.168.0.100:1323"

     

     

    11. terminal에 다음과 같이나오면 성공 (상황에 따라 더 나올 수도 있다.)

    728x90
    반응형

    댓글

Designed by Tistory.