centos 7コンパイルインストールmysql 5.7

8800 ワード

MySQL-5.7特性:
  • より良い性能はマルチコアCPU、ソリッドステートハードディスク、ロックに対してより良い最適化を持っており、毎秒100 W QPSはMySQLの追求ではなく、次のバージョンで200 W QPSにアクセスできるかどうかがユーザーの関心である.
  • より良いInnoDBストレージエンジン
  • より堅牢なレプリケーション機能
  • レプリケーションは、データが完全に失われないスキームをもたらし、従来の金融顧客も選択することができます.MySQLデータベース.また、GTIDのオンラインスムーズアップグレードも可能になります.
  • より良いオプティマイザ
  • オプティマイザ・コードの再構築の意味は、このバージョンおよび以降のバージョンで大きな改善をもたらし、Oracle政府はMySQL以前の最大の難題を解決しています.
  • 原生JSONタイプのサポート
  • より良い地理情報サービスは
  • をサポートする.
  • InnoDB原生サポート地理位置タイプ、サポートGeoJSON、サポートGeoHash特性
  • sysライブラリ
  • を追加
  • 以降はDBAが最も頻繁にアクセスするライブラリMySQL 5.7がデータベースオプションとして「OneinStack」
  • に追加されました.
    インストールの準備
    依存パッケージのインストール
    [root@localhost ~]# yum -y install gcc gcc-c++ ncurses ncurses-devel cmake bison
    

    対応するソースパッケージのダウンロード
    [root@localhost ~]# wget https://sourceforge.net/projects/boost/files/boost/1.59.0/boost_1_59_0.tar.gz
    [root@localhost ~]# wget http://cdn.mysql.com/Downloads/MySQL-5.7/mysql-5.7.13.tar.gz
    

    公式ダウンロードリンクでダウンロードすることもできます.
    新しいMySQLユーザーとユーザーグループ
    [root@localhost ~]# groupadd -r mysql && useradd -r -g mysql -s /sbin/nologin -M mysql 
    

    プリコンパイル
    [root@localhost ~]# tar -zxvf boost_1_59_0.tar.gz
    [root@localhost data]# md5sum mysql-5.7.13.tar.gz 
    8fab75dbcafcd1374d07796bff88ae00  mysql-5.7.13.tar.gz
    [root@localhost ~]# tar -zxvf mysql-5.7.13.tar.gz
    [root@localhost data]# mkdir -p /data/mysql
    [root@localhost data]# cd mysql-5.7.13
    [root@localhost data]# mkdir build
    [root@localhost data]# cd build
    [root@localhost data]# cmake ../ -DCMAKE_INSTALL_PREFIX=/usr/local/mysql \
    -DMYSQL_DATADIR=/data/mysql \
    -DWITH_BOOST=../../boost_1_59_0 \
    -DSYSCONFDIR=/etc \
    -DWITH_INNOBASE_STORAGE_ENGINE=1 \
    -DWITH_PARTITION_STORAGE_ENGINE=1 \
    -DWITH_FEDERATED_STORAGE_ENGINE=1 \
    -DWITH_BLACKHOLE_STORAGE_ENGINE=1 \
    -DWITH_MYISAM_STORAGE_ENGINE=1 \
    -DENABLED_LOCAL_INFILE=1 \
    -DENABLE_DTRACE=0 \
    -DDEFAULT_CHARSET=utf8mb4 \
    -DDEFAULT_COLLATION=utf8mb4_general_ci \
    -DWITH_EMBEDDED_SERVER=1
    

    コンパイルインストール
    [root@localhost mysql-5.7.13]# make -j `grep processor /proc/cpuinfo | wc -l`
    #         ,          make install
    [root@localhost mysql-5.7.13]# make install
    

    起動スクリプトを設定し、起動してから起動します.
    [root@localhost mysql-5.7.13]# ls -lrt /usr/local/mysql
    [root@localhost mysql-5.7.13]# cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqld
    [root@localhost mysql-5.7.13]# chmod +x /etc/init.d/mysqld
    [root@localhost mysql-5.7.13]# systemctl enable mysqld
    mysqld.service is not a native service, redirecting to /sbin/chkconfig.
    Executing /sbin/chkconfig mysqld on
    

    プロファイル
    /etc/my.cnf,     
    [root@localhost mysql-5.7.13]# cat > /etc/my.cnf << EOF
    [client]
    port = 3306
    socket = /dev/shm/mysql.sock
    [mysqld]
    port = 3306
    socket = /dev/shm/mysql.sock
    basedir = /usr/local/mysql
    datadir = /data/mysql
    pid-file = /data/mysql/mysql.pid
    user = mysql
    bind-address = 0.0.0.0
    server-id = 1
    init-connect = 'SET NAMES utf8mb4'
    character-set-server = utf8mb4
    #skip-name-resolve
    #skip-networking
    back_log = 300
    max_connections = 1000
    max_connect_errors = 6000
    open_files_limit = 65535
    table_open_cache = 128
    max_allowed_packet = 4M
    binlog_cache_size = 1M
    max_heap_table_size = 8M
    tmp_table_size = 16M
    read_buffer_size = 2M
    read_rnd_buffer_size = 8M
    sort_buffer_size = 8M
    join_buffer_size = 8M
    key_buffer_size = 4M
    thread_cache_size = 8
    query_cache_type = 1
    query_cache_size = 8M
    query_cache_limit = 2M
    ft_min_word_len = 4
    log_bin = mysql-bin
    binlog_format = mixed
    expire_logs_days = 30
    log_error = /data/mysql/mysql-error.log
    slow_query_log = 1
    long_query_time = 1
    slow_query_log_file = /data/mysql/mysql-slow.log
    performance_schema = 0
    explicit_defaults_for_timestamp
    #lower_case_table_names = 1
    skip-external-locking
    default_storage_engine = InnoDB
    #default-storage-engine = MyISAM
    innodb_file_per_table = 1
    innodb_open_files = 500
    innodb_buffer_pool_size = 64M
    innodb_write_io_threads = 4
    innodb_read_io_threads = 4
    innodb_thread_concurrency = 0
    innodb_purge_threads = 1
    innodb_flush_log_at_trx_commit = 2
    innodb_log_buffer_size = 2M
    innodb_log_file_size = 32M
    innodb_log_files_in_group = 3
    innodb_max_dirty_pages_pct = 90
    innodb_lock_wait_timeout = 120
    bulk_insert_buffer_size = 8M
    myisam_sort_buffer_size = 8M
    myisam_max_sort_file_size = 10G
    myisam_repair_threads = 1
    interactive_timeout = 28800
    wait_timeout = 28800
    [mysqldump]
    quick
    max_allowed_packet = 16M
    [myisamchk]
    key_buffer_size = 8M
    sort_buffer_size = 8M
    read_buffer = 4M
    write_buffer = 4M
    EOF
    

    mysqlの環境変数を追加
    [root@localhost mysql-5.7.13]# echo -e '

    export PATH=/usr/local/mysql/bin:$PATH
    ' >> /etc/profile && source /etc/profile

    データベースの初期化
    [root@localhost mysql-5.7.13]# mysqld --initialize-insecure --user=mysql --basedir=/usr/local/mysql --datadir=/data/mysql
    

    注意:
    1、MySQL以前バージョンmysql_install_dbはmysql_basedir/scriptで
    2、MySQL 5.7直接mysqlに置いたinstall_db/binディレクトリの下にあります.
    3、"–initialize"は廃棄され、ランダムパスワード(~/.mysql_secret)が生成された.
    4、「–initialize-insecure」はパスワードを生成しません
    5、「–datadir」ディレクトリの下にデータファイルがない
    データベースの起動
    [root@localhost mysql-5.7.13]# systemctl start mysqld
    [root@localhost mysql-5.7.13]# systemctl status mysqld
    ● mysqld.service - LSB: start and stop MySQL
       Loaded: loaded (/etc/rc.d/init.d/mysqld; bad; vendor preset: disabled)
       Active: active (running) since Mon 2018-09-03 15:37:30 CST; 20min ago
         Docs: man:systemd-sysv-generator(8)
      Process: 106256 ExecStart=/etc/rc.d/init.d/mysqld start (code=exited, status=0/SUCCESS)
        Tasks: 27
       Memory: 49.9M
       CGroup: /system.slice/mysqld.service
               ├─106269 /bin/sh /usr/local/mysql/bin/mysqld_safe --datadir=/data/mysql --pid-file=/data/mysql/mysql.pid
               └─107105 /usr/local/mysql/bin/mysqld --basedir=/usr/local/mysql --datadir=/data/mysql --plugin-dir=/usr/local/mysql/lib/plugin --user=mysql --log-error=/data/mysql/mysql-error.log --open...
    
    Sep 03 15:37:28 localhost.localdomain systemd[1]: Starting LSB: start and stop MySQL...
    Sep 03 15:37:30 localhost.localdomain mysqld[106256]: Starting MySQL.. SUCCESS!
    Sep 03 15:37:30 localhost.localdomain systemd[1]: Started LSB: start and stop MySQL.
    

    MySQLサービスプロセスとポートの表示
    [root@localhost mysql-5.7.13]# ps -ef | grep mysql
    root     23940     1  0 11:15 ?        00:00:00 /bin/sh /usr/local/mysql/bin/mysqld_safe --datadir=/data/mysql --pid-file=/data/mysql/mysql.pid
    mysql    24776 23940  0 11:15 ?        00:00:00 /usr/local/mysql/bin/mysqld --basedir=/usr/local/mysql --datadir=/data/mysql --plugin-dir=/usr/local/mysql/lib/plugin --user=mysql --log-error=/data/mysql/mysql-error.log --open-files-limit=65535 --pid-file=/data/mysql/mysql.pid --socket=/dev/shm/mysql.sock --port=3306
    [root@localhost mysql-5.7.13]# netstat -tunpl | grep 3306
    tcp        0      0 0.0.0.0:3306            0.0.0.0:*               LISTEN      24776/mysqld
    

    データベースrootユーザーパスワードの設定
    MySQLはOracleデータベースと同様に、デフォルトではrootユーザー(現在のLinuxホスト上のrootユーザーとはまったく関係ありません)を所有しており、SQL Myデータベースのセキュリティ構成を設定した後、rootユーザーのパスワードを初期化します.調製中、yを入力すればいいです.ここではMySQL 5のみを説明する.7.13バージョンでは、ユーザーパスワードポリシーは低レベルLOW、中レベルMEDIUM、超強力STRONGの3種類に分けられ、中レベルMEDIUMレベルの使用を推奨します.
    [root@localhost mysql-5.7.13]# mysql_secure_installation
    

    一般的な操作
    MySQLデータベースのダイナミックリンクライブラリをシステムリンクライブラリに共有する
    通常、MySQLデータベースはPHPのようなサービスによって呼び出されるので、MySQLコンパイル後のlibライブラリファイルを現在のLinuxホストリンクライブラリ/etc/ldに追加する必要があります.so.conf.d/の下で、MySQLサービスは他のサービスによって呼び出されます.
     [root@localhost mysql-5.7.13]# ldconfig |grep mysql
    [root@localhost mysql-5.7.13]# echo "/usr/local/mysql/lib" > /etc/ld.so.conf.d/mysql.conf
    [root@localhost mysql-5.7.13]# ldconfig
    [root@localhost mysql-5.7.13]# ldconfig -v |grep mysql
    ldconfig:     /libx32    stat   :          
    ldconfig:       “/usr/lib”
    ldconfig:       “/usr/lib64”
    ldconfig:     /usr/libx32    stat   :          
    /usr/lib64/mysql:
        libmysqlclient.so.18 -> libmysqlclient.so.18.0.0
    /usr/local/mysql/lib:
        libmysqlclient.so.20 -> libmysqlclient.so.20.3.0
    

    その他のMySQLデータベース・ユーザーの作成
    [root@localhost mysql-5.7.13]# mysql -uroot -p
    Enter password: 
    Welcome to the MySQL monitor.  Commands end with ; or \g.
    Your MySQL connection id is 4
    Server version: 5.7.13-log Source distribution
    
    Copyright (c) 2000, 2016, Oracle and/or its affiliates. All rights reserved.
    
    Oracle is a registered trademark of Oracle Corporation and/or its
    affiliates. Other names may be trademarks of their respective
    owners.
    
    Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
    mysql>