ここの手順で Ubuntu の設定をすると MySQL データベース管理システムがインストールされています.このページでは MySQL を使った検索方法などを確認しよう.
ここでは MySQL データベースサーバ(IP アドレス 192.168.56.101)にリモートホスト(IP アドレス 192.168.56.100) から接続する方法について説明します.
まず,クライアント(リモートホスト)の IP アドレスを次のコマンドで確認します.
vagrant@ubuntu2204 ~ $ ip a ⏎
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
link/ether 08:00:27:33:5e:cb brd ff:ff:ff:ff:ff:ff
altname enp0s3
inet 10.0.2.15/24 metric 100 brd 10.0.2.255 scope global dynamic eth0
valid_lft 85959sec preferred_lft 85959sec
inet6 fe80::a00:27ff:fe33:5ecb/64 scope link
valid_lft forever preferred_lft forever
3: eth1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
link/ether 08:00:27:f9:0b:ce brd ff:ff:ff:ff:ff:ff
altname enp0s8
inet 192.168.56.100/24 brd 192.168.56.255 scope global eth1
valid_lft forever preferred_lft forever
inet6 fe80::a00:27ff:fef9:bce/64 scope link
valid_lft forever preferred_lft forever
vagrant@ubuntu2204 ~ $
サーバのIPアドレスも同じコマンドで確認します.
vagrant@ubuntu2204 ~ $ ip a ⏎
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
link/ether 08:00:27:33:5e:cb brd ff:ff:ff:ff:ff:ff
altname enp0s3
inet 10.0.2.15/24 metric 100 brd 10.0.2.255 scope global dynamic eth0
valid_lft 76867sec preferred_lft 76867sec
inet6 fe80::a00:27ff:fe33:5ecb/64 scope link
valid_lft forever preferred_lft forever
3: eth1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
link/ether 08:00:27:ae:98:a7 brd ff:ff:ff:ff:ff:ff
altname enp0s8
inet 192.168.56.101/24 brd 192.168.56.255 scope global eth1
valid_lft forever preferred_lft forever
inet6 fe80::a00:27ff:feae:98a7/64 scope link
valid_lft forever preferred_lft forever
vagrant@ubuntu2204 ~ $
サーバ側の操作で root ユーザで MySQL にログインします.ユーザ情報が格納されているのは mysql データベースです.
vagrant@ubuntu2204 ~ $ mysql -u root -p ⏎ Enter password: # パスワードを入力(表示されない) Welcome to the MySQL monitor. Commands end with ; or \g. Your MySQL connection id is 8 Server version: 8.0.31-0ubuntu0.22.04.1 (Ubuntu) Copyright (c) 2000, 2022, Oracle and/or its affiliates. Oracle is a registered trademark of Oracle Corporation and/or its affiliates. Other names may be trademarks of their respective owners. Type 'help;' or '\h' for help. Type '\c' to clear the current input statement. mysql> SHOW DATABASES; ⏎ +--------------------+ | Database | +--------------------+ | information_schema | | mysql | | performance_schema | | sys | | testDB | +--------------------+ 5 rows in set (0.01 sec) mysql>
ユーザの一覧を確認します.利用するデータベースを USE
で指定しなくとも,データベース名.テーブル名
でデータを取得できます.dbuser
というユーザが登録されていますが,localhost からのアクセスしか許可されていません.
mysql> SELECT User, Host FROM mysql.user; ⏎
+------------------+-----------+
| User | Host |
+------------------+-----------+
| dbuser | localhost |
| debian-sys-maint | localhost |
| mysql.infoschema | localhost |
| mysql.session | localhost |
| mysql.sys | localhost |
| root | localhost |
+------------------+-----------+
6 rows in set (0.00 sec)
mysql>
リモートからアクセスできるように IP アドレスを指定して dbuser
を作成し,パスワードを設定します.さらに,testDB データベースの全てのテーブルに権限を与えます.
mysql> CREATE USER 'dbuser'@'192.168.56.100' IDENTIFIED BY 'hogehogehoge'; ⏎ Query OK, 0 rows affected (0.04 sec) mysql> GRANT ALL PRIVILEGES ON testDB.* TO 'dbuser'@'192.168.56.100'; ⏎ Query OK, 0 rows affected (0.01 sec) mysql> FLUSH PRIVILEGES; ⏎ Query OK, 0 rows affected (0.02 sec) mysql>
ユーザが登録できていることを確認します.
mysql> SELECT User, Host FROM mysql.user; ⏎ +------------------+----------------+ | User | Host | +------------------+----------------+ | dbuser | 192.168.56.100 | | dbuser | localhost | | debian-sys-maint | localhost | | mysql.infoschema | localhost | | mysql.session | localhost | | mysql.sys | localhost | | root | localhost | +------------------+----------------+ 7 rows in set (0.00 sec) mysql>
クライアントから接続します.このときサーバの IP アドレスを -h
引数で指定します.
vagrant@ubuntu2204 ~ $ mysql -h 192.168.56.101 -u dbuser -p ⏎ Enter password: # パスワードを入力(表示されない) Welcome to the MySQL monitor. Commands end with ; or \g. Your MySQL connection id is 11 Server version: 8.0.31-0ubuntu0.22.04.1 (Ubuntu) Copyright (c) 2000, 2022, Oracle and/or its affiliates. Oracle is a registered trademark of Oracle Corporation and/or its affiliates. Other names may be trademarks of their respective owners. Type 'help;' or '\h' for help. Type '\c' to clear the current input statement. mysql> SHOW DATABASES; ⏎ +--------------------+ | Database | +--------------------+ | information_schema | | performance_schema | | testDB | +--------------------+ 3 rows in set (0.01 sec) mysql> USE testDB; ⏎ Reading table information for completion of table and column names You can turn off this feature to get a quicker startup with -A Database changed mysql> SELECT id, body, MATCH(body) AGAINST("自然言語" IN NATURAL LANGUAGE MODE) as score FROM mecab_articles; ⏎ +----+--------------------------------------------------------------------------------------------------+---------------------+ | id | body | score | +----+--------------------------------------------------------------------------------------------------+---------------------+ | 1 | 今日の天気は雨です | 0 | | 2 | 明日の天気も雨でしょう | 0 | | 3 | 明日の天気も晴れでしょう | 0 | | 4 | 今日の天気は晴れです | 0 | | 5 | 勤務先の社内自然言語処理勉強会での発表資料です | 0.5901209115982056 | | 6 | この文書は自然言語処理の基本として類似文書推薦について説明します | 0.5901209115982056 | | 7 | この資料はジャズのライブについてまとめた資料です | 0 | | 8 | 自然言語処理の基本を説明します | 0.5901209115982056 | | 9 | We consider a software rejuvenation schedule. | 0 | | 10 | We propose an extended warranty service contract. | 0 | | 11 | This model evaluates the quality characteristics of software. | 0 | | 12 | 複数の言語に対応した software 開発を勉強します | 0.22764469683170319 | +----+--------------------------------------------------------------------------------------------------+---------------------+ 12 rows in set (0.01 sec) mysql> EXIT ⏎ Bye vagrant@ubuntu2204 ~ $