---
title: "UbuntuにMySQLをインストールして、ApacheのPHPからアクセスするまで"
description: "UbuntuにMySQLをインストールし、Apache上のPHPから接続するまでの作業記録。"
url: "https://miyayu.jp/blog/qiita-98baacaf381a2b778ccc/"
pubDate: "2021-11-12"
updatedDate: "2021-11-12"
tags: ["PHP","MySQL","Apache","Ubuntu"]
---

# UbuntuにMySQLをインストールして、ApacheのPHPからアクセスするまで

> **過去の記事（Qiitaから移行）**
>
> この記事は公開当時の知識・環境に基づいて書いたものです。現在の仕様に合わせた更新・動作確認は行っておらず、内容の正確性や動作を保証するものではありません。
>
> 初出：[2021-11-12・Qiita](https://qiita.com/yuu1111main/items/98baacaf381a2b778ccc)

# 環境
Ubuntu 20.04.3
Apache 2.4.41
PHP 7.4.3

# MySQLのインストール
<https://qiita.com/houtarou/items/a44ce783d09201fc28f5>

こちらを参考にしました。
こちらのコマンドを入力します

```shell-session
 $ sudo apt install mysql-server mysql-client
```
## Rootユーザーの設定
```shell-session
 $ sudo mysql_secure_installation
```

|質問|答え|
|--|--|
|Press y&#124;Y for Yes, any other key for No:|y|
|Please enter 0 = LOW, 1 = MEDIUM and 2 = STRONG: 2|後述※１|
|Do you wish to continue with the password provided?(Press y&#124;Y for Yes, any other key for No) :|y|
|Remove anonymous users? (Press y&#124;Y for Yes, any other key for No) :|y|
|Disallow root login remotely? (Press y&#124;Y for Yes, any other key for No) :|y|
|Remove test database and access to it? (Press y&#124;Y for Yes, any other key for No) :|y|

※１
パスワードの強度についてです。0が一番弱く、2が強いです。
パスワードマネージャー等で強固なパスワードを管理できる方は2で大丈夫ですが、自信のない方は0にしましょう(とはいっても、2にするのが推奨です)

## テスト用ユーザーの作成
次のように入力してMySQLを起動します

```shell-session
 $ sudo mysql -u root
```

### ユーザー作成
MySQL内でユーザーを作成します

```sql
mysql> CREATE USER 'ユーザー名'@'localhost' IDENTIFIED BY 'パスワード';
```
### 権限付与
ここでは分かりやすく全権限を付与していますが、通常は必要な物のみ与えるようにしましょう。

<https://www.dbonline.jp/mysql/user/index6.html>

```sql
mysql> GRANT all on *.* to 'ユーザー名'@'localhost';
```
### テスト用テーブルの作成
mysqlの画面で次の文を実行してください。

```sql
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のライブラリをダウンロードします

```shell-session
 $ sudo apt install php7.4-mysql
 $ sudo systemctl restart apache2
```

### ファイルの作成
次の内容を適宜変更し、アップロードします

```php
<?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と表示されたら成功です。お疲れ様でした。
