SQLまとめ
説明
ここではSQLに関する記事をまとめておきます。
リンクが無いものは後で追加予定です。
SQLServer
’の入った文字列のINSERT・UPDATE
wakao-institute.hatenablog.com
【Ubuntu】【SQLServer】UbuntuにSQLServerをインストール
UbuntuにSQLServerをインストールする方法を説明します。
下記サイトを参考にしています。
docs.microsoft.com* ①OS書き込みツールのインストール
パブリック リポジトリの GPG キーをインポートする。
wget -qO- https://packages.microsoft.com/keys/microsoft.asc | sudo apt-key add -
DNSの設定によってはwgetが働かない場合があるので、
その場合は/etc/resolv.conf
のnameserverを8.8.8.8
にするなどしてくださいSQL Server Ubuntu リポジトリを登録する。
sudo add-apt-repository "$(wget -qO- https://packages.microsoft.com/config/ubuntu/20.04/mssql-server-preview.list)"
次のコマンドを実行して SQL Server をインストールする。
sudo apt-get update
sudo apt-get install -y mssql-server次のコマンドを実行して SQL Server のセットアップをする。
sudo /opt/mssql/bin/mssql-conf setup
セットアップ中にSQLServerのエディションやパスワードを聞かれるので、事前に考えておいてください
SQLServerのエディション確認 Choose an edition of SQL Server: 1) Evaluation (free, no production use rights, 180-day limit) 2) Developer (free, no production use rights) 3) Express (free) 4) Web (PAID) 5) Standard (PAID) 6) Enterprise (PAID) - CPU Core utilization restricted to 20 physical/40 hyperthreaded 7) Enterprise Core (PAID) - CPU Core utilization up to Operating System Maximum 8) I bought a license through a retail sales channel and have a product key to enter. Enter your edition(1-8): 2
パスワード設定 Enter the SQL Server system administrator password: Confirm the SQL Server system administrator password: Configuring SQL Server...
サービスが実行されていることを確認する。
systemctl status mssql-server --no-pager
下記のようにActiveになっていればOKです。
サービス確認 ● mssql-server.service - Microsoft SQL Server Database Engine Loaded: loaded (/lib/systemd/system/mssql-server.service; enabled; vendor preset: enabled) Active: active (running) since Sat 2022-08-13 08:01:06 UTC; 5min ago Docs: https://docs.microsoft.com/en-us/sql/linux Main PID: 3366 (sqlservr) Tasks: 179 Memory: 853.3M CPU: 23.093s CGroup: /system.slice/mssql-server.service tq3366 /opt/mssql/bin/sqlservr mq3396 /opt/mssql/bin/sqlservr
ここまで設定すればSSMSからログインできるようになります。
項目 | 設定内容 |
---|---|
サーバーの種類 | データベースエンジン |
サーバー名 | SQLServerをインストールしたIPアドレス |
認証 | SQL Server 認証 |
ログイン | ログインアカウント(初期設定時はSA) |
パスワード | ログインパスワード(SAの場合はSetUp時に設定したパスワード) |
PCにOSを書き込む
PC本体にUbuntuServerを入れる方法を下記手順で説明します。
①OSのダウンロード・USBインストールメディアの作成
②PC本体へのOS書き込み
USBインストールメディアの作成にあたってRufusを使用しています。
※今回の被検体
* ①OSのダウンロード・USBインストールメディアの作成
- 書き込みたいOSのダウンロード
今回はUbuntuServerを使いたいので、下記サイトからダウンロードします。
jp.ubuntu.com - USBインストールメディアの作成
Rufusを起動し、書き込むUSB・ダウンロードしてきたOSを指定し、書き込みをスタートします。
書き込みに40分ほど時間がかかります。
あまりにも長いのでPC本体の写真撮ったりディスプレイ拭いたりしてました。
* ②PC本体へのOS書き込み
【Ubuntu】【Lxd】Lxdコンテナの作成・初期設定
Lxdコンテナの作成・初期設定方法を記載します。
* ネットワークのブリッジ設定
- Lxdコンテナの作成
lxc launch
コマンドでコンテナを作成します。コマンド
lxc launch OS コンテナ名問題なければ下記のように帰ってきます。
lxc list
でコンテナが作成されていれば成功です。例 ubuntu@ubuntu:~$ lxc launch ubuntu:20.04 test Creating test Retrieving image: Unpack: 100% (314.76MB/s) Starting test ubuntu@ubuntu:~$
lxc list +------+---------+--------------------+------+-----------+-----------+ | NAME | STATE | IPV4 | IPV6 | TYPE | SNAPSHOTS | +------+---------+--------------------+------+-----------+-----------+ | test | RUNNING | 192.168.1.5 (eth0) | | CONTAINER | 0 | +------+---------+--------------------+------+-----------+-----------+
Lxdコンテナに入る
lxc exec
コマンドでコンテナ内部に入ります。コマンド
lxc exec コンテナ名 bash内部に入ると端末の左側の表示が変わります。rootでログインされています。
コマンド ubuntu@ubuntu:~$ lxc exec test bash root@test:~#
パッケージのアップデートをする
下記コマンドでパッケージをアップデートします。コマンド apt update apt upgrade
ネットワーク設定をする
netplanの設定を書き換えてネットワーク設定をします。
初回時はファイルがないので新規作成してください/etc/netplan/99-cloud-init.yaml network: ethernets: eth0: dhcp4: false addresses: [設定したいIPアドレス/16] gateway4: ルータのIPアドレス eth1: dhcp4: true
私は下記のように設定しました。
例 /etc/netplan/99-cloud-init.yaml network: ethernets: eth0: dhcp4: false addresses: [192.168.10.1/16] gateway4: 192.168.1.1 eth1: dhcp4: true
下記コマンドで設定を反映させます。コマンド
netplan apply
【Ubuntu】【Lxd】Lxdネットワークブリッジの設定
Lxdのネットワークブリッジの設定方法を記載します。
* ネットワークのブリッジ設定
bridge-utilsのインストール
sudo apt install bridge-utils
IPv4 フォワーディングを有効にする
/etc/sysctl.conf
内の#net.ipv4.ip_forward=1
のコメントを外すことで有効になります。/etc/sysctl.conf # See http://lwn.net/Articles/277146/ #Note: This may impact IPv6 TCP sessions too #net.ipv4.tcp_syncookies=1 # Uncomment the next line to enable packet forwarding for IPv4 net.ipv4.ip_forward=1
下記コマンドで設定を反映させます。コマンド
sudo sysctl -p- netplanの設定を書き換える
※注意 古いOSだと
netplan
ではなくinterfaces
での設定になります。その場合は別のサイトを参考にしてください。/etc/netplan/99-cloud-init.yaml
にネットワーク設定を記載します。
初回時はファイルがないので新規作成してください。/etc/netplan/99-cloud-init.yaml network: ethernets: eth0: dhcp4: false dhcp6: false version: 2 bridges: br0: interfaces: [eth0] dhcp4: false addresses: [固定IPで設定するアドレス/16] gateway4: ルータ・ハブのIPアドレス nameservers: addresses: [ルータ・ハブのIPアドレス,8.8.8.8,8.8.4.4] optional: true
下記は私は下記のように設定しました。
例 /etc/netplan/99-cloud-init.yaml network: ethernets: eth0: dhcp4: false dhcp6: false version: 2 bridges: br0: interfaces: [eth0] dhcp4: false addresses: [192.168.1.2/16] gateway4: 192.168.1.1 nameservers: addresses: [192.168.1.1,8.8.8.8,8.8.4.4] optional: true
下記コマンドで設定を反映させます。コマンド
sudo netplan applyこの時ネットワークが切れることもあるので注意してください。(特にSSHでアクセスしている場合)
- Lxdのプロファイルを変更する
lxc profile edit default
内にnictype
とparent
を追加します。
ブリッジするのでnetwork
があった場合は消しておいてください。lxc profile edit default eth0: name: eth0 nictype: bridged parent: br0 type: nic
確認すると下記のようになります。
lxc profile device show default eth0: name: eth0 nictype: bridged parent: br0 type: nic root: path: / pool: lxdfs type: disk
【Ubuntu】【Lxd】Lxdのストレージ変更
Lxdのストレージ変更方法を説明します
* はじめに
今回はストレージが下記の状態からスタートします。
ubuntu@ubuntu:~$ lxc storage list +---------+--------+--------------------------------------------+-------------+---------+---------+ | NAME | DRIVER | SOURCE | DESCRIPTION | USED BY | STATE | +---------+--------+--------------------------------------------+-------------+---------+---------+ | default | btrfs | /var/snap/lxd/common/lxd/disks/default.img | | 1 | CREATED | +---------+--------+--------------------------------------------+-------------+---------+---------+
* ①Lxdの新規ストレージ作成
- Lxdの新規ストレージ作成
lxc storage createを実行します。コマンド
lxc storage create ストレージ名 ファイルシステム source=ファイルパス項目 説明 ストレージ名 ストレージ名に設定したい任意の文字列 ファイルシステム ストレージのファイルシステム
以下から選べる
・dir
・ceph
・ceph
・btrfs
・lvm
・zfsファイルパス ストレージに使用するファイルパス 私は今回btrfsのファイルシステムにしたいので下記コマンドを実行しました。
例
lxc storage create lxdfs btrfs source=/dev/sda失敗時
Error: Failed to format block device: Failed to run: mkfs.btrfs -L lxdfs /dev/sda: /dev/sda appears to contain an existing filesystem (btrfs). ERROR: use the -f option to force overwrite of /dev/sda外付けHDDを設定しようとして上記MSGがでて失敗した場合は、下記コマンドでシグネチャを消去してください。
sudo wipefs -a /dev/sda
www.commandlinux.com設定に成功するとストレージが下記になります。
lxc storage list
+---------+--------+--------------------------------------------+-------------+---------+---------+ | NAME | DRIVER | SOURCE | DESCRIPTION | USED BY | STATE | +---------+--------+--------------------------------------------+-------------+---------+---------+ | default | btrfs | /var/snap/lxd/common/lxd/disks/default.img | | 1 | CREATED | +---------+--------+--------------------------------------------+-------------+---------+---------+ | lxdfs | btrfs | 780e0376-19ad-490f-b373-fa5728a22dfc | | 0 | CREATED | +---------+--------+--------------------------------------------+-------------+---------+---------+ - Lxdのデフォルトプロファイルの保存先を変更
lxc profile editでデフォルトプロファイルの保存先を変更します。lxc profile edit default
エディターが開くのでpoolのdefaultを今回作成したストレージに変更します。default
config: {} description: Default LXD profile devices: eth0: name: eth0 network: lxdbr0 type: nic root: path: / pool: default type: disk name: default used_by: []私は下記のように設定しました。
例
config: {} description: Default LXD profile devices: eth0: name: eth0 network: lxdbr0 type: nic root: path: / pool: lxdfs type: disk name: default used_by: []設定変更後は同じコマンドで変更が保存されてるか確認してください。(私はよく保存を忘れます。。。)
この段階でstorage listを確認するとUSED BYが前回と変わっています。
lxc storage list
+---------+--------+--------------------------------------------+-------------+---------+---------+ | NAME | DRIVER | SOURCE | DESCRIPTION | USED BY | STATE | +---------+--------+--------------------------------------------+-------------+---------+---------+ | default | btrfs | /var/snap/lxd/common/lxd/disks/default.img | | 0 | CREATED | +---------+--------+--------------------------------------------+-------------+---------+---------+ | lxdfs | btrfs | 780e0376-19ad-490f-b373-fa5728a22dfc | | 1 | CREATED | +---------+--------+--------------------------------------------+-------------+---------+---------+ - 不要になったLxdストレージの削除
lxc storage deleteでストレージを削除します。コマンド
lxc storage delete ストレージ名私は今回下記を実行しました。成功するとdeletedと表示されます。
例 ubuntu@ubuntu:~$ lxc storage delete default Storage pool default deleted
storage listを確認するとストレージが削除されています。
lxc storage list +-------+--------+--------------------------------------+-------------+---------+---------+ | NAME | DRIVER | SOURCE | DESCRIPTION | USED BY | STATE | +-------+--------+--------------------------------------+-------------+---------+---------+ | lxdfs | btrfs | 780e0376-19ad-490f-b373-fa5728a22dfc | | 1 | CREATED | +-------+--------+--------------------------------------+-------------+---------+---------+
【Ubuntu】【Lxd】Lxdの初期設定
Lxdの初期化設定方法を記載します。
* ①Lxd のインストール
- Lxdをインストールする
sudo snap install lxd
sudo apt install lxd-client
* ②Lxdの初期化
- Lxd initの実行
ubuntu@ubuntu:~$ lxd init Would you like to use LXD clustering? (yes/no) [default=no]: Do you want to configure a new storage pool? (yes/no) [default=yes]: Name of the new storage pool [default=default]: Name of the storage backend to use (btrfs, dir, lvm, ceph) [default=btrfs]: Create a new BTRFS pool? (yes/no) [default=yes]: Would you like to use an existing empty block device (e.g. a disk or partition)? (yes/no) [default=no]: Size in GB of the new loop device (1GB minimum) [default=5GB]: Would you like to connect to a MAAS server? (yes/no) [default=no]: Would you like to create a new local network bridge? (yes/no) [default=yes]: What should the new bridge be called? [default=lxdbr0]: What IPv4 address should be used? (CIDR subnet notation, “auto” or “none”) [default=auto]: What IPv6 address should be used? (CIDR subnet notation, “auto” or “none”) [default=auto]: Would you like the LXD server to be available over the network? (yes/no) [default=no]: Would you like stale cached images to be updated automatically? (yes/no) [default=yes]: Would you like a YAML "lxd init" preseed to be printed? (yes/no) [default=no]:
特にこだわりがなければdefaultでOKです。