zoukankan      html  css  js  c++  java
  • percona-server-5.7.18-14安装

    说明

    percona-server-5.7 的安装对硬件配置的要求较高,至少需要4G内存或者2G物理内存+2Gswap。
    编译安装过程中注意所在分区的空间大小,编译安装需要使用到大量的临时空间。

    环境配置

    [root@ ~]# groupadd mysql
    [root@ ~]# useradd -g mysql -M mysql
    
    使用 yum 命令安装以下软件,已安装的可以略去:
    [root@ ~]# yum install -y gcc gcc-c++ gcc-g77 autoconf automake zlib* fiex* libxml* ncurses-devel libmcrypt* libtool-ltdl-devel*  readline-devel 
    
    percona-server 从 5.7 开始要求使用高于2.8版本的 cmake 进行编译
    [root@ ~]# yum update -y cmake
    
    TCMalloc(Thread-Caching Malloc)与标准glibc库的malloc实现一样的功能, 与标准的glibc库的malloc相比,TCMalloc在内存的分配效率和速度要高,可以在高并发的情况下很好的控制内存的使用,提高服务器的性能,降低负载。TCMalloc的安装这里省略

    安装percona-server-5.7.18-14

    编译安装

    [root@ ~]# CPUcount=`cat /proc/cpuinfo  | grep processor | wc -l`
    [root@ ~]# cd /dist/dist
    [root@ dist]# wget https://www.percona.com/downloads/Percona-Server-LATEST/Percona-Server-5.7.18-14/source/tarball/percona-server-5.7.18-14.tar.gz
    [root@ dist]# cd /dist/src
    [root@ src]# tar xf /dist/dist/percona-server-5.7.18-14.tar.gz
    
    percona-server 从 5.7 开始需要使用 boost_1.59.x
    [root@ src]# cd percona-server-5.7.18-14/
    [root@ percona-server-5.7.18-14]#wget https://sourceforge.mirrorservice.org/b/bo/boost/boost/1.59.0/boost_1_59_0.tar.gz
    [root@ percona-server-5.7.18-14]# mkdir  build/
    [root@ percona-server-5.7.18-14]# cd  build/
    [root@ build]# CHOST="x86_64-pc-linux-gnu" CFLAGS="-march=nocona -O2 -pipe" CXXFLAGS="-march=nocona -O2 -pipe" 
    cmake .. 
      -DMYSQL_USER=mysql 
      -DCMAKE_BUILD_TYPE:STRING=Release 
      -DSYSCONFDIR:PATH=/usr/local/mysql 
      -DCMAKE_INSTALL_PREFIX:PATH=/usr/local/mysql 
      -DENABLED_PROFILING:BOOL=ON 
      -DENABLE_DEBUG_SYNC:BOOL=OFF 
      -DMYSQL_DATADIR:PATH=/data/database/mysql 
      -DMYSQL_MAINTAINER_MODE:BOOL=OFF 
      -DWITH_EXTRA_CHARSETS=all 
      -DWITH_BIG_TABLES:BOOL=ON 
      -DWITH_FAST_MUTEXES:BOOL=ON 
      -DENABLE-PROFILING:BOOL=ON 
      -DWITH_SSL:STRING=bundled 
      -DWITH_UNIT_TESTS:BOOL=OFF 
      -DWITH_ZLIB:STRING=bundled 
      -DWITH_PARTITION_STORAGE_ENGINE:BOOL=ON 
      -DWITH_PLUGINS=heap,csv,partition,innodb_plugin,myisam 
      -DEFAULT_COLLATION=utf8_general_ci 
      -DEFAULT_CHARSET=utf8 
      -DENABLED_ASSEMBLER:BOOL=ON 
      -DENABLED_LOCAL_INFILE:BOOL=ON 
      -DENABLED_THREAD_SAFE_CLIENT:BOOL=ON 
      -DENABLED_EMBEDDED_SERVER:BOOL=OFF 
      -DWITH_CLIENT_LDFLAGS:STRING=all-static 
      -DINSTALL_LAYOUT:STRING=STANDALONE 
      -DCOMMUNITY_BUILD:BOOL=ON 
      -DCMAKE_EXE_LINKER_FLAGS="-ltcmalloc" 
      -DWITH_SAFEMALLOC=OFF  
      -DWITH_BOOST=..
    
    5.7版本,不再支持: innodb_additional_mem_pool_size、table_cache 两个参数
    [root@ percona-server-5.7.18-14]# make -j $CPUcount
    [root@ percona-server-5.7.18-14]# make install
    

    初始化配置

    [root@ percona-server-5.7.18-14]# mkdir -p /data/database/mysql
    [root@ percona-server-5.7.18-14]# chown mysql:mysql -R /data/database/mysql
    [root@ percona-server-5.7.18-14]#cd /usr/local/mysql
    # percona-server 5.7 已经木有var目录了!
    [root@ mysql]# ln -s /data/database/mysql  /usr/local/mysql/var
    [root@ mysql]# sed -i '/Initialize script globals/ a export LD_PRELOAD=/usr/local/lib/libtcmalloc.so'  bin/mysqld_safe 	#让MySQL支持tcmalloc
    # 配置文件
    [root@ mysql]# mv /etc/my.cnf /etc/my.cnf.old
    [root@ mysql]# cat > /etc/my.cnf << EOF
    [client]
    port = 3306
    socket = /tmp/mysql.sock
    [mysqld]
    port = 3306
    socket = /tmp/mysql.sock
    skip-external-locking
    key_buffer_size =  16M
    max_allowed_packet = 16M
    max_heap_table_size = 16M
    table_open_cache = 2048 
    sort_buffer_size =  8M
    net_buffer_length = 8K
    read_buffer_size = 8M
    read_rnd_buffer_size = 16M
    myisam_sort_buffer_size = 16M
    back_log = 200
    skip-name-resolve
    query_cache_size = 16M
    join_buffer_size=8M
    bulk_insert_buffer_size=16M
    concurrent_insert=2
    delay_key_write=ON
    delayed_insert_limit=4000
    delayed_insert_timeout=600
    delayed_queue_size=4000
    tmp_table_size = 16M
    thread_cache_size=120
    character-set-server=utf8
    max_connections = 1024
    log_output=FILE
    slow_query_log=1
    slow_query_log_file=/data/database/mysql/slowquery.log
    max_slowlog_size=10m
    max_slowlog_files=20
    long_query_time=1    
    wait_timeout=1814400
    server-id=1
    log-bin=mysql-bin
    expire_logs_days=3
    binlog_format=mixed
    max-binlog-size=128M
    binlog_cache_size = 4M
    skip-slave-start=1
    innodb_file_format=barracuda
    innodb_strict_mode=1
    binlog_direct_non_transactional_updates=1
    innodb_data_home_dir = /data/database/mysql/
    innodb_data_file_path = ibdata1:200M:autoextend
    innodb_log_group_home_dir = /data/database/mysql/ 
    innodb_file_per_table= 1
    innodb_buffer_pool_size = 128M
    innodb_log_file_size = 256M
    innodb_log_buffer_size = 16M
    innodb_lock_wait_timeout = 20
    innodb_adaptive_flushing = 1
    innodb_flush_log_at_trx_commit = 2
    innodb_flush_method = 'O_DIRECT'
    transaction-isolation=READ-COMMITTED
    innodb_rollback_on_timeout = On
    innodb_read_io_threads = 5
    innodb_write_io_threads = 5
    innodb_io_capacity=500
    innodb_thread_concurrency = 8
    innodb_log_files_in_group = 3
    innodb_max_dirty_pages_pct = 90
    innodb_fast_shutdown = 1
    innodb_status_file=1
    open-files-limit = 10240
    memlock
    datadir = /data/database/mysql/
    tmpdir = /data/database/mysql/  
    [mysqldump]
    quick
    max_allowed_packet = 16M
    [mysql]
    no-auto-rehash
    [isamchk]
    key_buffer = 16M
    sort_buffer_size = 16M
    read_buffer = 2M
    write_buffer = 2M
    [myisamchk]
    key_buffer = 16M
    sort_buffer_size = 16M
    read_buffer = 2M
    write_buffer = 2M
    [mysqlhotcopy]
    interactive-timeout
    EOF
    
    5.7版本的,不再支持: innodb_additional_mem_pool_size、table_cache 两个参数

    生成初始数据库

    5.7版本使用 bin/mysqld --initialize 进行初始化
    [root@ mysql]#/usr/local/mysql/bin/mysqld --initialize --basedir=/usr/local/mysql/ --datadir=/usr/local/mysql/var/ --user=mysql
    
    MySQL数据库初始化完成以后,会产生一个 root@localhost 用户,从MySQL 5.7开始,root用户的密码不再是空,而是随机产生一个密码。初始化过程中将随机生成root密码:
    [Note] A temporary password is generated for root@localhost: KJ1foE6BFX;3
    
    这个密码在第一次登录时会被要求重制。

    启动数据库

    [root@ ~]# /usr/local/mysql/bin/mysqld_safe  & 
    
    数据库启动时,可能会启动失败并提示没有错误日志文件,手动创建并授权即可
    2017-06-30T06:24:07.752061Z mysqld_safe Logging to '/data/database/mysql//localhost.err'.
    2017-06-30T06:24:07.761038Z mysqld_safe error: log-error set to '/data/database/mysql//localhost.err', however file don't exists. Create writable for user 'mysql'.
    
    [1]+  Exit 1                  /usr/local/mysql/bin/mysqld_safe
    [root@ ~]# touch /data/database/mysql//localhost.err
    [root@ ~]# chown mysql:mysql /data/database/mysql//localhost.err
  • 相关阅读:
    OMNETPP: tictoc
    OMNETPP安装
    Unified SR
    SCM
    DC tunnel
    AIMD
    AQM
    MANAGER POJ1281 C语言
    Pascal Library C语言 UVALive3470
    The 3n + 1 problem C语言 UVA100
  • 原文地址:https://www.cnblogs.com/wshenjin/p/7099574.html
Copyright © 2011-2022 走看看