huraicid’s blog

趣味100% 真面目な論述はないです

【技術備忘録】使っていないPCにubuntuをいれてRestful APIサーバを構築するまでの記事とメモまとめ

いろいろな記事をつなぎ合わせて旧windows10 PCにubuntuをインストールして、以下の記事のAPIサーバを構築するところまで。 (Windows10は犠牲になったのだ)

qiita.com

古い情報があったり記事どおりではうまくいかなかったりで、試行錯誤した記録も簡単に残しておく。

試した環境

  • もとになったPC: Let's note CF-SZ5

※インストールメディア作る用の何かしらのPCも必要

インストールメディアの作り方とインストール方法

以下の記事を参考にやっていけばいい。図が入っていてとても分かりやすい。

なお、ubuntuのイメージは日本語Remix版をダウンロードしておくと初期設定しやすいはず。

あと途中の・インストールの種類の設定は空のHDD/SSDであれば上の2つを選んでもいいと思う。

qiita.com

(Windows10と共存できるっぽいけど手順ミスったっぽくて消しちゃった。共存する必要があればバックアップとかはとりましょう)

Golang環境構築

以下の記事の「Golang環境構築(for Ubuntu16.04)」の章をやればOK。

qiita.com

ただし、「.bashrc」ファイル末尾に下記を追記の後は以下のコマンドで.bashrcが再読み込みする必要があるので注意。

$ source ~/.bashrc

gitのインストール

記事そのままのコマンドを流せばOK。

$ sudo apt-get install git

MySQLのインストール

基本的には最初の記事通りやっていけばいいが、途中でコマンド通りいかなくなるのでメモを残しておく。

mysqlserverインストール

インストールはそのまま実施してOK。

$ sudo apt-get install mysql-server

MySQL初期設定

そのままSQLmysql -u root -pで接続しようとすると、パスワードrootで入ろうとしたらAccess denied for user 'root'@'localhost'と出てはじかれた。

どうやらMySQL 5.7以降ではインストール直後はパスワードによるインストールができないらしい。なんじゃそりゃ

というわけで以下のようにしてsudoでMySQLにログインしてパスワードを指定しなおす。

$ sudo mysql
ALTER USER 'root'@'localhost' IDENTIFIED BY 'root';

ここら辺の経緯は以下の記事がわかりやすい。

zenn.dev

APIで使用するテーブル作成

最初の記事ではCREATE TABLE文をgoで書いていたが、以下のようなSQLで書いた方が楽(なはず)。

mysqlで接続した状態で)

# データベース作成
CREATE DATABASE gotest;

# データベース接続
USE gotest;

# テーブル作成
CREATE TABLE person(
    id INT NOT NULL AUTO_INCREMENT,
    first_name VARCHAR(40),
    last_name VARCHAR(40),
    PRIMARY KEY (id));

RESTful APIで必要なもののインストール

最初の記事ではコマンドが現在(2024/4/28)はじかれるので、以下のコマンドでライブラリをインストールする。

goディレクトリに移動

$ cd $GOPATH

mysqlドライバー

go get install "github.com/go-sql-driver/mysql@latest"

Gin(HTTPフレームワーク)

go get install "github.com/gin-gonic/gin@latest"

RESTful APIを構築

最初の記事の3.APIサーバー以降をやっていけばOK。

別PCからAPIをたたく場合は、APIを構築したPCのIPアドレスが必要になるので、以下のコマンドで確認しておく。

$ ipconfig

www.linuxmaster.jp

inet xxx.xxx.xxx.xxxの部分が接続先のIPアドレス