1. 程式人生 > 實用技巧 >編譯安裝MySQL-5.7.22版本

編譯安裝MySQL-5.7.22版本

官網下載所需版本

  • wget https://dev.mysql.com/get/Downloads/MySQL-5.7/mysql-boost-5.7.22.tar.gz  

安裝依賴包

  • yum -y install make gcc-c++ cmake bison-devel ncurses-devel perl-Data-Dumper boost boost-doc boost-devel  

解壓

  • tar -zxf mysql-boost-5.7.22.tar.gz -C /usr/local/
    cd /usr/local/  &&   mv mysql-5.7.22  mysql
    mkdir /usr/local/mysql/mydata
    mkdir /usr/local/mysql/conf
    useradd -s /sbin/nologin -M mysql
    chown -R mysql:mysql /usr/local/mysql*

編譯安裝

  • cmake -DCMAKE_INSTALL_PREFIX=/usr/local/mysql \
     -DMYSQL_DATADIR=/usr/local/mysql/mydata  \
     -DSYSCONFDIR=/usr/local/mysql/conf \
     -DMYSQL_USER=mysql -DWITH_MYISAM_STORAGE_ENGINE=1 \
     -DWITH_INNOBASE_STORAGE_ENGINE=1 \
     -DMYSQL_UNIX_ADDR=/usr/local/mysql/mysql.sock \
     -DMYSQL_TCP_PORT=3306 -DEXTRA_CHARSETS=all \
     -DDEFAULT_CHARSET=utf8 -DDEFAULT_COLLATION=utf8_general_ci \
     -DWITH_DEBUG=0 -DMYSQL_MAINTAINER_MODE=0 \
     -DWITH_SSL:STRING=bundled -DWITH_ZLIB:STRING=bundled \
     -DWITH_SYSTEMD=1 -DDOWNLOAD_BOOST=1 -DWITH_BOOST=./boost


    make && make install 

初始化

  • /usr/local/mysql/bin/mysqld --initialize-insecure --user=mysql --datadir=/usr/local/mysql/mydata --basedir=/usr/local/mysql

修改配置檔案

  • vim /usr/local/mysql/conf/my.cnf

    [mysqld] basedir=/usr/local/mysql datadir=/usr/local/mysql/mydata socket=/usr/local/mysql/mysql.sock log_error=/var/log/mysql.log user=mysql slow_query_log=ON slow_query_log_file=/var/log/mysql/slow_query.log long_query_time=1 [client] socket=/usr/local/mysql/mysql.sock



    touch /var/log/{slow_query,mysql}.log ##建立日誌檔案
  • slow_query_log=ON 這個是開啟慢查詢。注意ON需要大寫
  • slow_query_log_file 這個是儲存慢查詢的日誌檔案。這個檔案不存在的話,需要自己建立
  • long_query_time 這個是設定慢查詢的時間,我設定的為1秒

配置systemd管理

  • vim /usr/lib/systemd/system/mysqld.service
    
    [Unit]
    Description=MySQL Server
    Documentation=man:mysqld(8)
    Documentation=http://dev.mysql.com/doc/refman/en/using-systemd.html
    After=network.target
    After=syslog.target
    
    [Install]
    WantedBy=multi-user.target
    [Service]
    User=mysql
    Group=mysql
    ExecStart=/usr/local/mysql/bin/mysqld --defaults-file=/usr/local/mysql/conf/my.cnf
    LimitNOFILE = 5000

配置環境變數 && 啟動mysql服務

  • echo 'export PATH=/usr/local/mysql/bin:$PATH' >>/etc/profile
    source /etc/profile
    
    systemctl  start  mysqld
    systemctl  enable mysqld
    
    netstat -lntp |grep 3306