Create TOC

레이블이 MySQL인 게시물을 표시합니다. 모든 게시물 표시
레이블이 MySQL인 게시물을 표시합니다. 모든 게시물 표시

2019년 12월 26일

Raspbian/docker + mariadb

Raspbian에서 mariadb를 docker로 올리는 방법을 기술한다.

docker-compose.yml

/docker/mariadb/config에 설정을 저장하는 것으로 설정 파일을 구성한다. 이 경로는 원하는 곳으로 바꾸면 된다.

root의 초기 비밀 번호는 ROOT_ACCESS_PASSWORD 로 설정했다.

db 관리를 위해 adminer도 같이 설치한다. mariadb가 구동되는 ip를 x.x.x.x 라고 가정했다.

version: "3"

services:
    mariadb:
        container_name: mariadb
        image: linuxserver/mariadb
        ports:
            - '3306:3306/tcp'
        environment:
            - TZ=Asia/Seoul
            - PUID=1001
            - PGID=1001
            - MYSQL_ROOT_PASSWORD=ROOT_ACCESS_PASSWORD
        volumes:
            - '//docker/mariadb/config/:/config/'
        restart: unless-stopped

    adminer:
        container_name: adminer
        image: adminer
        ports:
            - '8080:8080/tcp'
        environment:
            - TZ=Asia/Seoul
            - ADMINER_DEFAULT_SERVER=x.x.x.x
            - ADMINER_PLUGINS=tables-filter tinymce
        restart: unless-stopped

실행

docker-compose 명령으로 실행한다.

$ sudo docker-compose up -d

실행이 잘 되면 바로 root의 비밀번호를 변경한다.

$ sudo docker exec -it mariadb mysqladmin -u root -p password '새비밀번호'
Enter password:

이제 http://x.x.x.x:8080 으로 접속하면 웹으로 db를 관리할 수 있다.

2001년 3월 18일

MySQL

사용자 계정 추가하기

# mysql --user=root mysql
mysql> GRANT ALL PRIVILEGES ON *.* TO monty@localhost IDENTIFIED BY 'something' WITH GRANT OPTION;
mysql> GRANT ALL PRIVILEGES ON *.* TO monty@"%" IDENTIFIED BY 'something' WITH GRANT OPTION;
mysql> GRANT RELOAD,PROCESS ON *.* TO admin@localhost;
mysql> GRANT USAGE ON *.* TO dummy@localhost;

위 GRANT 문에서는 세 명의 사용자를 설정한다.

  • monty:어느 곳에서든 서버에 연결할 수 있는 완전한 슈퍼유저이지만 비밀번호를 사용해야 한다. 우리는 monty@localhost 와 monty@"%"를 사용한 GRANT 문에 대해서 반드시 논의를 해 야 한다. localhost 목록을 추가하지 않으면, mysql_install_db 에 의해 생성된 localhost 의 익명 사용자 목록(등록?)이 로컬 호스트에서 접속할때 우선권을 갖는다. 왜냐하면 지정된 Host 필드 값이 있으며 정열 순서에서 먼저 오기 때문이다. (** 승인 테이블의 정열 순서가 특정한 Host를 지정한 것부터 시작하는 것을 기억하자.)
  • admin:비밀번호 없이 localhost에서 접속할 수 있으며 reload와 process 관리자 권한을 승인받은 사용자. 이경우 사용자가 mysqladmin processlist 뿐만 아니라 mysqladmin reload, mysqladmin refresh, mysqladmin flush-* 명령을 실행할 수 있다.데이터 베이스와 관련된 권한은 승인되지 않았다. 이것은 추가적인 GRANT 문을 사용해 나중에 승인할 수 있다.
  • dummy:비밀번호없이 연결할 수 있지만 오직 localhost에서만 연결 가능한 사용자. 권한 유형(privilege type)이 USAGE 이기 때문에 전체적인 권한이 'N'로 설정되어 있다. USAGE 는 아무런 권한도 설정하지 않는다. 나중에 데이터베이스와 관련된 권한을 승인할 수 있다.