相关限制

关于内存:

  1. 多线程编译时需要大量的内存
  2. 比例要保证 1(cpu):1G内存
  3. 建议使用手动编译,可以控制线程数量
  4. 基于ubuntu 20 lts编写的文档

关于硬盘:

  1. 源码+编译需要占用 20G 的磁盘
  2. 多给一点内存

0x1 编译

apt install -y build-essential cmake bison libncurses5-dev libssl-dev pkg-config libaio-dev

## 直接指定下载带boost的源码
wget https://dev.mysql.com/get/Downloads/MySQL-8.0/mysql-boost-8.0.16.tar.gz
tar xzv -f mysql-boost-8.0.16.tar.gz
cd mysql-8.0.16/

mkdir bld
cd bld
cmake .. -DWITH_BOOST=../boost \
-DBUILD_CONFIG=mysql_release \
-DCPACK_MONOLITHIC_INSTALL=1


## 第一次 尽量多核心
make -j 32
## 第二次 减少核心数量
## make -j 16
make install

## 编译成安装包
## make package

多核心编译方案:

  1. 多核心编译对内存的需求比较高
  2. 可以先多核心编译
  3. 第二次编译时减少线程,编译失败的包

编译时间:

  1. 2x e5_2650v2
  2. 20G内存
  3. 手动编译:不到10分钟

0x2 配置用户

上一步只是把mysql编译出来后进行安装

还需要对用户进行配置才能使用

## 创建mysql用户
groupadd mysql
useradd -r -g mysql -s /bin/false mysql

## 配置存储文件
cd /usr/local/mysql
mkdir mysql-files
chown mysql:mysql mysql-files
chmod 750 mysql-files
 

## 初始化数据库,这一部会生成密码,要记下来
bin/mysqld --initialize --user=mysql

## 生成rsa 证书,使用ssl协议传输指令与结果
bin/mysql_ssl_rsa_setup
## bin/mysqld_safe --user=mysql &


## 安装为服务
cp support-files/mysql.server /etc/init.d/mysql.server

## 配置自动 启动/关闭
ln -s /etc/init.d/mysql.server /etc/rc3.d/S99mysql
ln -s /etc/init.d/mysql.server /etc/rc0.d/K01mysql
/etc/init.d/mysql.server
service mysql.server start

## 第一次登录 强制修改 root密码
bin/mysql -u root -p"prH1;p1ff5RT"
mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY '123456';

0x3 自动登录

  1. 默认配置文件为/etc/my.cnf
  2. 编译安装的 mysql不能本地用户直接登录
  3. 这里直接将root登陆凭据写道 配置文件里
  4. 生产环境不建议这么做
cat >> /etc/my.cnf <<EOF
[client]
user = root
password = 123456
port = 3306
EOF
Last modification:July 14, 2020
如果觉得我的文章对你有用,请随意赞赏