UbuntuにMySQLをインストールして、ApacheのPHPからアクセスするまで
UbuntuにMySQLをインストールし、Apache上のPHPから接続するまでの作業記録。
過去の記事(Qiitaから移行)
この記事は公開当時の知識・環境に基づいて書いたものです。現在の仕様に合わせた更新・動作確認は行っておらず、内容の正確性や動作を保証するものではありません。
環境
Ubuntu 20.04.3 Apache 2.4.41 PHP 7.4.3
MySQLのインストール
https://qiita.com/houtarou/items/a44ce783d09201fc28f5
こちらを参考にしました。 こちらのコマンドを入力します
$ sudo apt install mysql-server mysql-client
Rootユーザーの設定
$ sudo mysql_secure_installation
| 質問 | 答え |
|---|---|
| Press y|Y for Yes, any other key for No: | y |
| Please enter 0 = LOW, 1 = MEDIUM and 2 = STRONG: 2 | 後述※1 |
| Do you wish to continue with the password provided?(Press y|Y for Yes, any other key for No) : | y |
| Remove anonymous users? (Press y|Y for Yes, any other key for No) : | y |
| Disallow root login remotely? (Press y|Y for Yes, any other key for No) : | y |
| Remove test database and access to it? (Press y|Y for Yes, any other key for No) : | y |
※1 パスワードの強度についてです。0が一番弱く、2が強いです。 パスワードマネージャー等で強固なパスワードを管理できる方は2で大丈夫ですが、自信のない方は0にしましょう(とはいっても、2にするのが推奨です)
テスト用ユーザーの作成
次のように入力してMySQLを起動します
$ sudo mysql -u root
ユーザー作成
MySQL内でユーザーを作成します
mysql> CREATE USER 'ユーザー名'@'localhost' IDENTIFIED BY 'パスワード';
権限付与
ここでは分かりやすく全権限を付与していますが、通常は必要な物のみ与えるようにしましょう。
https://www.dbonline.jp/mysql/user/index6.html
mysql> GRANT all on *.* to 'ユーザー名'@'localhost';
テスト用テーブルの作成
mysqlの画面で次の文を実行してください。
create database test;
use test;
create table students(id int,name varchar(20));
insert into students (id,name) values (1,'Taro'),(2,'Hanako');
PHPの環境
PHPのライブラリをダウンロードします
$ sudo apt install php7.4-mysql
$ sudo systemctl restart apache2
ファイルの作成
次の内容を適宜変更し、アップロードします
<?php
$link = mysqli_connect('localhost', 'ユーザー名', 'パスワード', 'test');
$query = "SELECT id, name FROM students;";
if ($result = mysqli_query($link, $query)) {
foreach ($result as $row) {
echo($row['id'].$row['name']);
}
}
mysqli_close($link);
アクセスして、1Taro2Hanakoと表示されたら成功です。お疲れ様でした。