ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • mysql 5.7 한 서버에 여러 인스턴스 실행하기
    Linux 2018. 7. 9. 13:35

    개발중이거나 테스트의 목적으로. 한 서버에 여러개의 mysql 을 한 서버에 가동해야할 필요가 있을때가 있다.

    mysql 가동시 메모리를 많이 사용하므로 가동할 인스턴스의 수만큼 메모리를 충분히 확보해 두어야 한다.

    (mysql 설치에 대한 부분은 이 문서에서 다루지 않는다.)


    1. /etc/my.cnf 파일을 편집기로 연다.

    
    

    # vi /etc/my.cnf 


    #------------------------------------------------------------------------------

    [mysqld@1]

    #------------------------------------------------------------------------------

    user=mysql

    server-id=101

    port=3307

    datadir=/abc/mysql_repo_3307

    socket=/var/lib/mysql/mysql_3307.sock

    log-error=/abc/mysql_repo_3307/error.log


    character-set-client-handshake=FALSE

    init_connect="SET collation_connection = utf8mb4_general_ci"

    init_connect="SET NAMES utf8mb4"

    character-set-server = utf8mb4

    collation-server = utf8mb4_general_ci

    interactive_timeout = 2592000

    wait_timeout = 2592000

    max_user_connections = 100

    max_connections = 100

    innodb_buffer_pool_size = 100M

    innodb_file_per_table = 1



    #------------------------------------------------------------------------------

    [mysqld@2]

    #------------------------------------------------------------------------------

    user=mysql

    server-id=102

    port=3308

    datadir=/abc/mysql_repo_3308

    socket=/var/lib/mysql/mysql_3308.sock

    log-error=/abc/mysql_repo_3308/error.log


    character-set-client-handshake=FALSE

    init_connect="SET collation_connection = utf8mb4_general_ci"

    init_connect="SET NAMES utf8mb4"

    character-set-server = utf8mb4

    collation-server = utf8mb4_general_ci

    interactive_timeout = 2592000

    wait_timeout = 2592000

    max_user_connections = 100

    max_connections = 100

    innodb_buffer_pool_size = 100M

    innodb_file_per_table = 1

                       

    datadir, socket, log-error 등 환경에 맞추어 다른 인스턴스와 겹치지 않도록 값을 설정해 준다.

    (단, 설정 제목[] 의 형태는 반드시 [mysql@?????]의 형식으로 지정한다. ?부분은 문자열도 가능하다.)





    2. mysql 인스턴스 가동

    
    

    # systemctl start mysqld@1

    # systemctl start mysqld@2


    설정 제목으로 인스턴스를 가동한다. 이때 에러가 발생하지 않아야 하며, 에러 발생시엔 환경설정에 

    지정했던 log-error 파일을 편집기로 열어 메시지를 확인하고 문제사항을 처리해 주어야 한다.





    3. 각 인스턴스에 접속


    # mysql -u root -h 127.0.0.1 -P3306 -p

    인스턴스의 포트번호를 지정하여 인스턴스에 접속 할 수 있다.




Designed by Tistory.