LoginSignup
3
4

【備忘録】ラスパイ上にSQLサーバーを立てて別PCからアクセスできるようにする -作業目安20分-

Last updated at Posted at 2024-04-01

概要

ラズパイにSQLサーバーを立ててローカルネットワーク上の別PCからwebアクセス出来るようにする。

◇参考リンク
Raspberry PiをSQLサーバーにして、Python3からMySQLのデータを検索して表示させるまで
https://qiita.com/p3ishnm2/items/078d8d7a47ee3b7abc31

インストールするパッケージ一覧

  • mariadb :データベースシステム
  • Apatch2 :webサーバーソフトウェア
  • php :スクリプト言語 
  • phpMyAdmin :webアプリケーション

実施内容

0.既存パッケージを更新する
1.ラズベリーパイ上にデータベースを構築する
2.構築したデータベースをwebページから操作可能にする
3.ネットワーク上の別PCからアクセス可能にする

0.既存パッケージの更新

パッケージをインストールする前に既存パッケージの更新をしておきましょう。

$sudo apt-get -y update
$sudo apt-get -y upgrade

1.ラズベリーパイ上にデータベースを構築する

データベースシステムmariadbをインストールする。

$ sudo apt update
$ sudo apt install -y mariadb-server

mariaDBを起動し、接続する。

$ sudo systemctl start mariadb
$ sudo mariadb

別PCからアクセス可能な新規ユーザーを作成する。
※コマンド内のユーザ名とパスワード部分は任意のものに書き換えて下さい。

create user 'ユーザ名'@'%' identified by 'パスワード';

2.構築したデータベースをwebページから操作可能にする

下記パッケージ3つをインストールする。

  • webサーバーソフトウェア Apatch2
  • スクリプト言語 php
  • webアプリケーション phpMyAdmin
$ sudo apt install apache2
$ sudo apt install php
$ sudo apt install phpmyadmin

phpmyadminをインストール中、下記のように設定するwebサーバを選択する画面が表示されるのでapache2をスペースで選択してEnter。
image.png

続いてこちらは<はい>を選択してEnter
image.png

インストール完了するとラズパイ上のwebブラウザから下記のリンクにアクセスができるようになっているはず。(1で作成したアカウントを使ってログインも可能。)

http://localhost/phpmyadmin/
※ログインできない場合はlocalhost部分を127.0.0.1に書き換える。
http://127.0.0.1/phpmyadmin/

image.png

3.ネットワーク上のPCからのアクセスも可能にする

デフォルト状態だと、外部PCからのアクセスができない。
(bind-addressという項目によってローカルホスト上(127.0.0.1)、つまりラズパイ上からのみしかアクセスできない設定になっている)

下記のコマンドで設定ファイルを開く

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

bind-addressをコメントアウトするとすべてのIPアドレスから接続ができるようになる。

#bind-address     =127.0.0.1

bind-address項目を追加すれば、特定のIPアドレスからのみ接続できるようにも設定可能。

bind-address     =127.0.0.1
bind-address     =[アクセス許可したいIPアドレス]

これでSQL webサーバーの構築が完了。
別PCのブラウザより下記のアドレスにアクセスできるはず。
※[ラズパイのIPアドレス部分]は書き換えること。

http://[ラズパイのIPアドレス]/phpmyadmin
image.png

メモ

1.sudo matribdbコマンドエラー

sudo matribdb コマンドでデータベースに接続しようとした時、"ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (2)"というエラーが出た。
image.png

matribdbのサービスを起動させていないと発生するエラーのようです。
”1.ラズベリーパイ上にデータベースを構築する”に記述の通り、sudo systemctl start mariadbコマンドでmatribdbを起動させてから接続すること。

2.myphpadmin上でのエラー

本記事完了後、テーブル作成→表示する所でエラー発生しました。
調べるのに手こずったので備忘録新規作成しました。

Warning in ./libraries/sql.lib.php#613
count(): Parameter must be an array or an object that implements Countable

3
4
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
4