Linux関連

LinuxUbuntu

お仕事で使っているデータベースの学習用としてデータベースをインストール。

MariaDB

MySQLの互換データベースとして使われることが多いですね。

普通にapt からインストールできます。

$ sudo apt install mariadb-server

問題なくインストールできれば、設定ファイルを少しいじります。

$ sudo vi /etc/mysql/mariadb.conf.d/50-server.conf

30行目くらいにlocalhost(127.0.0.1)からしかアクセスできないようになっているので、コメントアウトしてアクセス制限を解除します。

$ sudo systemctl restart mariadb

で、再起動した際にエラーが出ていなければOKです。

次にMariaDBの初期設定を行います。

$ sudo mysql_secure_installation

で、対話式で設定していきます。

このときにrootのパスワードを設定し、rootでのリモートログインは無効に。
その他の匿名ユーザーとか、テストデータは削除するようにしています。

$ mysql -u root -p

で、設定したrootパスワードでデータベースへログインできればOK

データベースの作成やら、ユーザーを追加したり、あれこれやっておきます。

次にローカルホスト外からアクセスできるようにファイアーウォールの設定をします。

$ sudo ufw allow mysql
$ sudo ufw reload

ひとまずMariaDBのの設定は完了。

参考:MariaDB 10.6 : インストール – Server World

SQL Server on Linux

Windows Serverで使われているSQLサーバーです。 バージョン2017 からLinux上でも動作できるようになりました。
お仕事で利用しているのは バージョン2019 なのですが、Ubuntu 22.04 には 2019のインストール対象外でした。仕方なく2022をインストールしていきます。

本家マイクロソフトにてインストールガイドが出ていますので、SQL Serverのバージョンと Linuxディストリビューションのバージョンさえ間違わないようにすれば、基本的に上から順にコマンドをコピペしていけばインストールできます。

クイック スタート:Ubuntu に SQL Server をインストールし、データベースを作成する – Microsoft

SQL Server と コマンドラインツールのインストールが完了できればローカル接続をしてみます。
sqlcmdコマンドに接続の暗号化が必要になったらしいですが -No オプションで暗号化なしでログインします。

$ sqlcmd -S localhost -U sa -No

バージョン情報をだすselect文を打って、きちんと表示できれてばOK。

こちらも外部アクセス用にポートを開けます。

$ sudo ufw allow 1433/tcp
$ sudo ufw reload

これでデータベースのインストールはひとまず完了です。

この後はお仕事で使っているテスト用のデータをリカバリして、あれこれテストできる準備完了といった感じです。

LinuxUbuntu

あれ?なんかファイルのタイムスタンプがおかしいぞ? と思ってたら、そういえばタイムゾーンの設定をしていませんでした。

タイムゾーン関連は timedatectl コマンドで。

現在の状況は…

その他のタイムゾーンになっていました。 これを Asia/Tokyo にセットします。

$ sudo timedatectl set-timezone Asia/Tokyo

で、設定した内容は

無事日本時間になりました。

もしその他のタイムゾーンを設定する場合は

$ timedatectl list-timezones

で、ずらーーっと出るので自分の設定したいタイムゾーンを探してみてください。

LinuxUbuntu

複数のPCでファイルのやりとりをする時の共有フォルダを Samba を利用して作る。
個人利用なので、認証とか入れずフルアクセスの共有のファイルサーバーにします。

samba (SMB)のインストール

$ sudo apt install samba

共有フォルダの作成

わかりやすいようにルート直下に作ってしまいます。

$ sudo mkdir -p /samba/share
$ sudo chmod 777 /samba/share

設定ファイルの編集

$ sudo vi /etc/samba/smb.conf

(sudo をつけてルート権限で編集しないと、いざ設定ファイルを保存しようとしたときに「権限ないから保存できませーん」ってなるから注意)

編集内容は Server World さんの例が一番簡単でわかりやすい。

Samba : フルアクセスの共有フォルダー作成 – Server World

[global]
# 25行目 : 追記 (文字コードを設定)
unix charset = UTF-8
dos charset = CP932

# 40行目 : コメント解除してアクセス許可するネットワークを追記
interfaces = 127.0.0.0/8 10.0.0.0/24

# 101行目 : 確認 (認証不要とする)
map to guest = bad user

….. …..

# 最終行に追記 # 任意の共有名を設定
[Share]
# 共有フォルダーを指定
path = /home/share
# 書き込みを許可する
writable = yes
# ゲストユーザー (nobody) を許可する
guest ok = yes
# 全てゲストユーザーとして扱う
guest only = yes
# ファイル作成時のパーミッションを [777] とする
force create mode = 777
# フォルダー作成時のパーミッションを [777] とする
force directory mode = 777

上記を自分の環境に合わせて修正します。IPアドレスとか、共有フォルダのパスとか。

その他参考サイト:
超簡単!Linuxでサクッとファイルサーバーを作ろう! – TanTanSunのブログ さん

samba の再起動

$ sudo systemctl restart smbd

確認

mac からと

Windowsから

両方からファイルの読み書きができるようになりました。

でも正直

Mac はM1 Mac mini と M2 Macbook Air, Windowsは2016年だから7年前のゲーミングPC。

メインで使っているのはM1 Mac mini だけど、Mac間は AirDorp が簡単だし、ゲームはほぼPS5だし、Windows機って配信系の動画を録画する時とリモートでお仕事をする時くらいしか使わないので、Mac – Win間でファイルのやり取りをすることがほぼ皆無なのが実情である。

ま、イザという時があるかもしれないし。

LinuxUbuntu

ストレージの構成を見た時に

あれ?搭載SSDは512GB なのに100GBくらいしか使ってなくない?
と確認してみたら

物理パーテーションは 473GB あるのに論理パーテーションは 100GB しか使ってなかった模様。

lvextend コマンドで root(/) の容量を拡張します。

拡張はされましたが、まだファイルシステムには反映されていません。

resize2fs コマンドで拡張内容をファイルシステムに反映させます。

無事ストレージ容量を目一杯使える形になりました。


参考サイト:LVM を空き容量いっぱいまで拡張する
https://www.ytyng.com/blog/lvm-partition-extend-full-remain-volume/

LinuxUbuntu

昨今、Dockerやら仮想マシンやら、クラウドやら手軽に試せる手段はあるけれど、ちょっと弄っただけで放置状態のミニPCにLinuxを入れてテスト環境とか作ろうとか思った次第。

ミニPC

使うミニPCは Beeink の U59 というモデル。 ( Amazon )
昨今のミニPCは Intel U100 を始め性能がグンと上がりましたが、それより前の Celeron モデルです。
とはいえメモリが16GB ありストレージも512GB なので十分すぎる性能です。

Ubuntu Server

Linuxディストリビューションは数あれど、Ubuntu を選んだのは
・CentOS関係(RedHat系) はお仕事でちょっと弄ったことがあるので別のものを試してみたい。
・Ubuntuなら情報源がたくさんあるだろう。
という感じで選択。
Ubuntuはデスクトップ用途で使われることが多いけれど、GUIは使わないので Serverタイプを選びます。

OSのインストール

このあたりは特別な手法はなくて

公式サイトからイメージを取得
・WindowsPCから Rufus でインストールメディアの作成。
・作成したインストールメディアからインストール開始。

って流れです。

インストールオプションについては IPアドレスを固定にして、SSHでログインできるようにしたのみで、あとはデフォルトのままで進めました。

インストール完了

SSHでログインできたので、ひとまずOSのインストールは完了です。

あれこれ環境を作っていくのはまた次回。