MariaDBインストールメニュー

11243 ワード

データディレクトリ基準


≪アクション|Actions|oem_src≫:冗長性を実現するためにデータ・パーティション内に作成されます.
[root@mbv-selfdb2 data]# pwd
/data
[root@mbv-selfdb2 data]# ll
total 4
drwxr-xr-x 5 maria dba 4096 Sep 17 09:38 MARIA_DATA
drwxr-xr-x 2 maria dba 25 Aug 13 11:12 MARIA_LOG
開発:/boxパーティション内で作成
[asmanager@mbv-devselfDB box]$ pwd
/box
[asmanager@mbv-devselfDB box]$ ll
total 4
drwxr-xr-x 4 maria dba 34 Dec 9 03:01 backup
drwxr-xr-x. 2 root root 6 Jun 11 15:06 DBA
drwxr-xr-x. 5 maria dba 4096 Sep 16 16:17 MARIA_DATA
drwxr-xr-x. 2 maria dba 25 Sep 16 09:57 MARIA_LOG

ポート標準


開発:3306
テスト:4306
運用:5306

MariaDBのインストール


1アカウントの作成


1.1システムアカウントの作成


作成
  • ユーザーおよびグループ
  • groupaddを使用してdbaグループを作成します.
  • useraddを使用してmariaアカウント-gオプションを作成し、グループをdbaに設定します.
  • maria userのHOMEはシステムのデフォルト設定に従います.(/MARIA)
  • MariaDB管理アカウントはmaria:dbaに基づいています.
  • [root@adb1 ~]# groupadd dba
    [root@adb1 ~]# useradd -g dba maria
    [root@adb1 ~]# cat /etc/group |grep dba
    dba:x:500:
    [root@adb1 ~]# cat /etc/passwd |grep maria
    maria:x:500:500::/MARIA/:/bin/bash

    1.2マリア勘定科目環境変数の設定

    [maria@jv0574 ~]$ vi ~/.bashrc
    
    * 해당구문 추가 
    export PATH=$PATH:/MARIA/mariadb/bin
    
    * 수정내용 적용
    source ~/.bashrc

    2.インストールディレクトリの作成と権限の設定


  • /box->開発
  • /data->運営
  • ## 디렉토리 생성
    #mkdir -p /MARIA/mariadb
    #mkdir -p /box/MARIA_LOG/{general,relay,error,slow,binarylog}
    #mkdir -p /box/{MARIA_DATA,MARIA_TEMP}
    
    
    ## 권한 설정
    root@jv0574 [/box/MARIA_LOG]chown -R maria:dba /MARIA/ /box/MARIA_DATA/ /box/MARIA_LOG/ /box/MARIA_TEMP/

    3.MariaDBのインストール


    3.1インストールファイルのダウンロード


    https://mariadb.com/kb/en/postdownload/mariadb-server-10-2-14/
    https://downloads.mariadb.org/mariadb
  • tarでファイルインストールのデータディレクトリとmyを圧縮します.cnfファイルを直接生成する必要があります.
  • 3.2解凍と配線

    ## 압축풀기
    root@jv0574 [/home/joinsiam]tar zxvf mariadb-10.2.14-linux-systemd-x86_64.tar.gz
    ## 경로 설정
    root@jv0574 [/home/joinsiam]mv mariadb-10.2.14-linux-systemd-x86_64 /MARIA/mariadb_10.2.14
    ## 링크 생성
    root@jv0574 [/MARIA]ln -s /MARIA/mariadb_10.2.14/ /MARIA/mariadb

    4.MariaDB設定


    4.1 my.cnf設定


    MariaDBのエンジンパラメータの設定はデフォルトですので、サーバの物理メモリサイズに直接関係するバッファ・プールのサイズ(通常は物理メモリの50%に設定)を調整し、次の推奨値を使用することをお勧めします.

  • プロファイルはMariaDB構成で最も重要な部分です.設定ファイルの各項目の詳細については、「

  • 「設定」を参照
    https://mariadb.com/kb/en/server-system-variables/#interactive_timeout

  • my.cnf
  • [client]
    socket=/tmp/mysql.sock
    
    [mysqld]
    user=maria
    
    sql-mode=STRICT_ALL_TABLES,STRICT_TRANS_TABLES,NO_ENGINE_SUBSTITUTION # ANSI_QUOTES 의 경우 신규 프로젝트 생성시만 적용
    lower_case_table_names=1   #데이터베이스 또는 테이블의 대소문자구분하지 않음으로 설정
    basedir=/MARIA/mariadb
    port=3306
    socket=/tmp/mysql.sock
    
    datadir=/box/MARIA_DATA
    tmpdir=/box/MARIA_TEMP
    #secure_file_priv=/tmp # LOAD_FILE()함수 설정
    
    # Character set Config
    character-set-client-handshake=FALSE # skip-character-set-client-handshake
    character-set-server=utf8mb4
    init_connect=SET collation_connection = utf8mb4_general_ci
    init_connect=SET NAMES utf8mb4
    
    
    
    # Common Config
    interactive_timeout=1800 # 콘솔/터미널  timeout 시간, Default Value: 28800
    #max_allowed_packet=128M
    max_connections=1000 # 최대 커넥션 수 WAS의 커넥션풀보다 크게 설정
    skip-name-resolve=1
    
    
    # binlog_cache_size=1M  # 한 트랜잭션 동안 binary log 에 쓸 변경분 캐쉬 크기
    # max_heap_table_size=2048M # MEMORY 스토리지 엔진 변수
    # skip-external-locking #for MyISAM , Aria
    # max_length_for_sort_data=1024 # default 1024
    # tmp_table_size=2048M # default 16M
    table_open_cache=10240 # Maximum number of open tables cached in one table cache instance default 2000
    table_open_cache_instances=16 # default 8
    transaction-isolation= READ-COMMITTED
    open_files_limit = 21515
    
    performance_schema=1 # 관련부분 추가 설정 필요
    
    # Buffer_size Config
    # 유지보수 업체 setting값
    # read_buffer_size=2M # for MyISAM, Aria and MERGE tables
    # join_buffer_size=2M # Default Value: 262144 (256kB) 최소 크기이므로 낮게 설정해도 됨
    # read_rnd_buffer_size=8M # for MyISAM
    # sort_buffer_size=1M # default 2M
    
    
    # Query Cache Disable
    # MySQL 8.0 에서는 사라진 기능
    query_cache_type=0
    query_cache_size=0
    
    # Log Config
    log-bin=/box/MARIA_LOG/binary/mysql-bin
    relay-log=/box/MARIA_LOG/relay/relay-log # 슬레이브의 I/O 쓰레드가 마스터로부터 갱신로그(갱신관련 쿼리를 기록한 데이터)를 수신해서 슬레이브 측에 저장한 것
    expire_logs_days=7 # binary log 저장기한
    max_binlog_size=1G
    sync_binlog=1 #bin log가 쓰일때마다 disk flush
    binlog_format=mixed
    
    log-error=/box/MARIA_LOG/error/mysql.err
    slow_query_log_file=/box/MARIA_LOG/slow/mysql-slow-query.log
    #slow_query_log=1 #slow쿼리 로그 활성화
    #long_query_time=10 # 해당 초 이상의 슬로우 쿼리 기록
    
    #general_log=1
    #general_log_file=/box/MARIA_LOG/general/mysql_general.log
    
    # Innodb config
    innodb_data_home_dir=/box/MARIA_DATA
    # innodb_log_group_home_dir=/box/MARIA_DATA
    innodb_buffer_pool_size = 3G #전체 메모리의 50~80%
    innodb_data_file_path=ibdata1:1024M;ibdata2:1024M;ibdata3:1024M:autoextend
    innodb_file_per_table=1
    innodb_flush_method= O_DIRECT
    # innodb_lock_wait_timeout=50 # lock 대기하는 시간, default 50
    # innodb_log_buffer_size=128M # redo log 버퍼 크기 , default 16M
    # innodb_log_file_size= 512M # redo log 파일 크기, default 96M
    # innodb_log_files_in_group=8
    # innodb_thread_sleep_delay=0
    # innodb_fast_shutdown
    # innodb_autoinc_lock_mode=1
    #innodb_thread_concurrency = 0 # 10.6 버전부터 삭제됨 동시 쓰레드 수 , default 0
    innodb_read_io_threads = 4 # default 4
    innodb_write_io_threads = 4 # default 4
    # innodb_open_files = 8192 # 최대 열어놓을수 있는 .ibd파일 수
    
    # MyISAM Config
    # bulk_insert_buffer_size = 64M
    # key_buffer_size =128M
    # myisam_max_sort_file_size =10G
    # myisam_recover_options
    # myisam_repair_threads= 1
    # myisam_sort_buffer_size =64M
    
    # Replication related settings
    # log_bin_trust_function_creators = 1 # replication환경에서는 이 설정을 해야만 routine 생성 가능
    
    #server-id =1
    
    [mysqldump]
    # quick # buffer쓰지 않고 direct로dump받기
    # max_allowed_packet=512M
    

    「設定」を参照

    * socket :
    >mysql 서버프로세스(mysql)과 클라이언트 프로세스가 통신하기 위해 사용됨
    기동중에만 생성되고 종료시 삭제
    mysqld와 클라이언트 모두 사용가능한 위치에 있어야함
    * performance_schema :
    성능 지표 수집 관련 설정
    > 참고
    https://myinfrabox.tistory.com/194
    
    * skip-name-resolve=1
    >MySQL 서버는 외부로 부터 접속 요청을 받을 경우 인증을 위해 IP 주소를 호스트네임으로 바꾸는 과정을 수행하여 접속시에 불필요한 부하가 발생하게 됩니다. skip-name-resolve를 설정하시고 접속시에 IP 기반으로 접속을 하게 되면 hostname lookup 과정을 생략하게 되어 좀 더 빠르게 접속을 하실 수 있습니다.
    
    # pid-file=/MARIA_DATA/mysql.pid -> 미 설정시 DATA_DIR/HOST_NAME.pid 라는 경로 및 파일명을 갖는다.
    

    5.インストール

    ./scripts/mysql_install_db --defaults-file=/etc/my.cnf --user=maria

    インストールログ

    [maria@jv0574 mariadb]$ ./scripts/mysql_install_db --defaults-file=/etc/my.cnf --user=maria
    Installing MariaDB/MySQL system tables in '/box/MARIA_DATA' ...
    OK
    
    To start mysqld at boot time you have to copy
    support-files/mysql.server to the right place for your system
    
    PLEASE REMEMBER TO SET A PASSWORD FOR THE MariaDB root USER !
    To do so, start the server, then issue the following commands:
    
    '/MARIA/mariadb/bin/mysqladmin' -u root password 'new-password'
    '/MARIA/mariadb/bin/mysqladmin' -u root -h jv0574 password 'new-password'
    
    Alternatively you can run:
    '/MARIA/mariadb/bin/mysql_secure_installation'
    
    which will also give you the option of removing the test
    databases and anonymous user created by default.  This is
    strongly recommended for production servers.
    
    See the MariaDB Knowledgebase at http://mariadb.com/kb or the
    MySQL manual for more instructions.
    
    You can start the MariaDB daemon with:
    cd '/MARIA/mariadb' ; /MARIA/mariadb/bin/mysqld_safe --datadir='/box/MARIA_DATA'
    
    You can test the MariaDB daemon with mysql-test-run.pl
    cd '/MARIA/mariadb/mysql-test' ; perl mysql-test-run.pl
    
    Please report any problems at http://mariadb.org/jira
    
    The latest information about MariaDB is available at http://mariadb.org/.
    You can find additional information about the MySQL part at:
    http://dev.mysql.com
    Consider joining MariaDB's strong and vibrant community:
    https://mariadb.org/get-involved/
    
    

    6.サーバの起動


    6.1 Systemsctlへのログイン後の起動/停止


    6.1.1


    マリアは/etc/systemd/systemディレクトリにいます.サービスファイルの作成
    [Unit]
    
    Description=MariaDB
    
    #After=network.target
    After=syslog.target
    
    
    
    [Install]
    
    WantedBy=multi-user.target
    
    #Alias=maria
    
    
    
    [Service]
    
    Type = forking
    
    # Start main service
    #ExecStart=/MARIA/mariadb/bin/mysqld_safe --user=maria
    #ExecStart=/etc/init.d/maria start
    ExecStart=/MARIA/mariadb/support-files/mysql.server start
    
  • トラブルシューティング
  • ExecStart=/MARIA/mariadb/support-files/mysql.serverstartを起動するときはtype=forkingに設定します.
  • ExecStart=/Maria/mariadb/bin/mysqld safe--user=maria起動時、タイプ=分岐の場合、正常に起動できません.
  • 6.1.1起動/停止指令


  • スタート
    systemctl start maria

  • 中指
    systemctl stop maria

  • ステータスの確認
  • systemctl status maria
  • MariaDBが終了したら、プロセスが終了していることを確認し、エラー・ログを確認してください.
    ps -ef | grep mysql
    vi/box/MARIA_LOG/error/mysql.err
  • サーバ再起動時のデータベース起動の設定

  • Systemdを登録し、Centos再起動時にDBを起動する
    root@jv0574 [/etc/systemd/system]systemctl enable maria
    
  • システムd再起動登録確認
  • systemctl is-enable maria
  • cd/etc/systemd/system/multi-user.target.wants
    マリアは対応するディレクトリにいます.サービスが存在する場合、オペレーティングシステムの再起動時にデータベース
  • が自動的に再起動する.
  • トラブルシューティング
  • サービスファイルを変更する場合、systemctl daemon-reloadコマンドで
  • を反映します.
  • systemctl enable mariaとして登録されている場合、Aliaceセクションがサービスファイル名と同じである場合、エラーが発生します.
    ex)サービスファイル名はmariaです.サービスの場合、別名=mariaです.サービス時エラー
  • 注意事項
    chkconfigユーティリティを使用してCentos 6に自動的に登録します.
    Centos 7からSystemclを使用して自動起動することを推奨します.
  • 7.その他の設定


    7.1 mysql secureのインストール


    基本的なセキュリティのために設定されたスクリプト.
    rootパスワード変更/testdbや匿名アカウントの削除などを行います.

    7.1.1 mysql secureインストールファイルの26行の変更

    [maria@adb1 mariadb]#vi bin/mysql_secure_installation 
    …
    basedir=/MARIA/mariadb
    …
    

    7.1.2 mysql secureインストールの実行

    [maria@jv0574 bin]$ mysql_secure_installation

    7.1 METADATA LOCK INFOプラグインのインストール


    The METADATA_LOCK_INFO plugin creates the METADATA_LOCK_INFO table in the INFORMATION_SCHEMA database. This table shows active metadata locks. The table will be empty if there are no active metadata locks.
    root@jv0574 [/MARIA/mariadb/bin]./mysql -uroot -p
    MariaDB [(none)]> INSTALL SONAME 'metadata_lock_info'
    MariaDB [(none)]> SELECT * FROM information_schema.metadata_lock_info;