速卖通素材
努力

2G数据库编译安装MySQL5.7?

服务器

MySQL 5.7 在 2GB 内存服务器上的编译安装指南

在仅有 2GB 内存的服务器上编译安装 MySQL 5.7 需要特别注意内存使用和优化配置。以下是详细步骤:

准备工作

  1. 系统要求

    • 确保系统是 64 位架构(32 位系统内存限制会更严格)
    • 至少有 2GB 可用磁盘空间(编译过程需要额外空间)
  2. 安装依赖项

    # CentOS/RHEL
    sudo yum install -y gcc gcc-c++ cmake make ncurses-devel openssl-devel bison
    
    # Ubuntu/Debian
    sudo apt-get install -y gcc g++ cmake make libncurses5-dev libssl-dev bison

编译安装步骤

  1. 下载源码包

    wget https://dev.mysql.com/get/Downloads/MySQL-5.7/mysql-5.7.44.tar.gz
    tar -zxvf mysql-5.7.44.tar.gz
    cd mysql-5.7.44
  2. 配置编译选项(针对低内存优化)

    cmake . -DCMAKE_INSTALL_PREFIX=/usr/local/mysql 
    -DMYSQL_DATADIR=/usr/local/mysql/data 
    -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 
    -DWITH_SSL=system 
    -DENABLED_LOCAL_INFILE=1 
    -DENABLE_DTRACE=0 
    -DDEFAULT_CHARSET=utf8mb4 
    -DDEFAULT_COLLATION=utf8mb4_general_ci 
    -DWITH_EMBEDDED_SERVER=0 
    -DWITH_DEBUG=0 
    -DWITH_BOOST=./boost
  3. 编译并安装

    make -j2  # 使用2个线程编译以避免内存耗尽
    sudo make install

内存优化配置

  1. 创建配置文件 /etc/my.cnf

    [mysqld]
    basedir=/usr/local/mysql
    datadir=/usr/local/mysql/data
    port=3306
    socket=/tmp/mysql.sock
    user=mysql
    
    # 内存优化设置
    key_buffer_size=32M
    innodb_buffer_pool_size=128M
    innodb_log_buffer_size=8M
    query_cache_size=0  # 在低内存环境下禁用查询缓存
    max_connections=50  # 限制连接数
    table_open_cache=200
    tmp_table_size=16M
    max_heap_table_size=16M
    sort_buffer_size=256K
    read_buffer_size=128K
    read_rnd_buffer_size=256K
    join_buffer_size=128K
    thread_stack=192K
    
    # 其他设置
    skip-name-resolve
    log-error=/usr/local/mysql/data/mysql-error.log
    pid-file=/usr/local/mysql/data/mysql.pid
  2. 初始化数据库

    sudo groupadd mysql
    sudo useradd -r -g mysql -s /bin/false mysql
    sudo mkdir -p /usr/local/mysql/data
    sudo chown -R mysql:mysql /usr/local/mysql
    
    cd /usr/local/mysql
    sudo bin/mysqld --initialize --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data
  3. 启动MySQL

    sudo cp support-files/mysql.server /etc/init.d/mysqld
    sudo chmod +x /etc/init.d/mysqld
    sudo service mysqld start

注意事项

  1. 编译过程中如果内存不足,可以尝试:

    • 创建交换分区:sudo fallocate -l 2G /swapfile && sudo mkswap /swapfile && sudo swapon /swapfile
    • 使用 make -j1 单线程编译(虽然更慢但内存需求更低)
  2. 首次启动后,使用临时密码登录并修改密码:

    grep 'temporary password' /usr/local/mysql/data/mysql-error.log
    mysql -uroot -p
    ALTER USER 'root'@'localhost' IDENTIFIED BY '你的新密码';
  3. 考虑禁用不必要的插件和功能以节省内存。

  4. 生产环境建议至少使用4GB内存服务器以获得更好性能。

未经允许不得转载:轻量云Cloud » 2G数据库编译安装MySQL5.7?