mariadb 컨테이너 실행

mariadb 컨테이너 실행

1. mariadb 컨테이너 실행

 - #1. 이미지 다운로드 : docker pull mariadb

 - #2. 컨테이너 실행

    - docker run -d --name db -p 3307:3306 --env MARIADB_ROOT_PASSWORD=1234 --rm mariadb:latest

        ※ MARIADB_ROOT_PASSWORD는 컨테이너 내부에서 사용할 mysql root 계정의 비밀번호

 - #3. DB 생성을 위한 컨테이너 내부 진입 : docker exec -it db bash

 - #4. mysql 보안 설정 : /usr/bin/mariadb-secure-installation

    - 첫 번째 : 위에서 설정한 root 비밀번호

    - 두, 세 번째 : n

    - 나머지 : y

 - #5. mysql 접속 후, 원격 접속용 계정 생성 및 권한 부여 (mysql -u root -p1234로 접속)

    - GRANT ALL PRIVILEGES ON *.* TO korea@`%` IDENTIFIED BY 'korea1234';

    - SQLyog로 컨테이너 DB에 원격 접속

        - host : 리눅스 IP

        - port : 3307

        - user : korea

        - password : korea1234

 - #6. sql 작성 및 실행

DROP DATABASE IF EXISTS site1;
CREATE DATABASE site1;
use site1;

CREATE TABLE article (
    id INT UNSIGNED NOT NULL PRIMARY KEY AUTO_INCREMENT,
    reg_date DATETIME NOT NULL,
    update_date DATETIME NOT NULL,
    title VARCHAR(100) NOT NULL,
    `body` TEXT NOT NULL
);

INSERT INTO article
SET reg_date = NOW(),
update_date = NOW(),
title = '제목1',
`body` = '내용1';

INSERT INTO article
SET reg_date = NOW(),
update_date = NOW(),
title = '제목2',
`body` = '내용2';

INSERT INTO article
SET reg_date = NOW(),
update_date = NOW(),
title = '제목3',
`body` = '내용3';

SELECT * FROM article;

 

 - #7. DB에 접근하는 php-fpm 컨테이너의 artice_list.php 파일의 내용을 수정

    - vim /work/scripts/artice_list.php

<meta charset="UTF-8" />
<?php
$db_conn = mysqli_connect('172.17.0.1:3307', 'site1', 'korea1234', 'site1');

$sql = "
SELECT *
FROM article
ORDER BY id DESC
";

$rs = mysqli_query($db_conn, $sql);

$articles = [];

while ( $article = mysqli_fetch_assoc($rs) ) {
    $articles[] = $article;
}
?>

<ul>
    <?php foreach ( $articles as $article ) { ?>
    <li><?=$article['id']?>/<?=$article['reg_date']?>/<?=$article['title']?></li>
    <?php } ?>
</ul>

 

 - #8. 호스트 PC의 mysql 서비스 내리기 : sudo systemctl stop mysql

 - #9. 브라우저로 결과 확인