Raspberry Pi & Python 開発ブログ ☆彡

Raspberry PiとPythonの基本的な使い方をわかりやすく解説。初心者、入門者必見!!

Raspberry PiにMariadb(MySQLデータベース)をインストールする

mariadb install

ブログ管理者のP.Hです!

今回はRaspberry Piでデータベース(MySQL)にアクセスする方法を紹介します。いろいろな種類のデータベースがありますが、お手軽なMySQL(Mariadb)を使ってみようと思います。

ブログ管理者のP.Hです!

それでは、Mariadbのインストール手順を紹介します。

MySQLデータベース(Mariadb)のインストール

下記のコマンドでSQLサーバーをインストールします。途中でrootのパスワード入力画面が表示されますので、入力してください。

$ sudo apt-get install mariadb-server

unix_sokectプラグインの無効化

デフォルトでrootユーザーに、unix_socketプラグインが適用されています。このプラグインが適用されていると、データベースにログインするとき,linuxのユーザー名も同じでないとログインできなくなってしまいます。下記コマンドでプラグインを無効化します。

注意事項

  • mysqlサーバーにログイン後は、コマンドの最後に";"があるので注意してください。
$ sudo mysql -u root
MariaDB [(none)]> USE mysql;
MariaDB [mysql]> UPDATE user SET plugin='' WHERE User='root';
MariaDB [mysql]> exit
$ sudo systemctl restart mysql

コマンドの説明をしておきます。

  • sudo mysql -u root ⇒ mysql -u ユーザー名 -p パスワード でmysqlサーバーにログインする(-u はuser、-p はpassword)
  • USE mysql ⇒ デフォルトで既に存在するmysqlデータベースにとりあえず接続
  • UPDATE user SET plugin='' WHERE User='root'; ⇒ plugin=''でプラグインを無効化。元に戻したい場合は、plugin="unix_socket"でコマンドを実行する

rootのパスワード設定

rootユーザーにパスワードを設定しておきましょう。下記コマンドで設定します。今回、パスワードはpasswordにしました。
※上記でunix_socketプラグインを無効化したので、sudoなしでログインできます。

$ mysql -u root
MariaDB [(none)]> update mysql.user set password=password('password') where user = 'root';
MariaDB [mysql]> exit
$ sudo systemctl restart mysql

これで、rootユーザーのパスワードがpasswordに変更されました。ログインできるか確認してみましょう。`` mysql -u root -pとコマンドを打って、パスワード入力する、

$  mysql -u root -p
Enter password:

もしくは下記のコマンドでもログインできます。-pとpasswordの間にスペースはありません。

$  mysql -u root -ppassword

データベースの作成

データベースを1つ作成してみます。まず、下記のコマンドでログインします。

$ mysql -u root -p

続けて、下記のコマンドを入力します。データベースの一覧が表示されます。

MariaDB [(none)]> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| mysql              |
| performance_schema |
+--------------------+

動作確認用で"testdb"という名前のデータベースを追加します。

MariaDB [(none)]> CREATE SCHEMA testdb DEFAULT CHARACTER SET utf8mb4;

もう一度、"show databases;"コマンドを入力してください。

MariaDB [(none)]> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| mysql              |
| performance_schema |
| testdb             |
+--------------------+

testdbというデータベースが追加されていますね。今回は、ここまでにします。このままコマンドでデータベースを構築していくこともできるのですが、大変なのでMySQL WorkbenchというWindowsソフトを使ってデータベースを構築していく方法を次回、紹介したいと思います。