环境搭建
镜像下载
docker pull centos:centos7
启动容器
docker run --net bridge --privileged -itd --cpus=4 centos:centos7 /usr/sbin/init
登录容器
docker exec -it 「id」 /bin/bash
依赖安装
sudo yum install -y epel-release
sudo yum install -y wget bzip2 automake autoconf libtool make bison libaio \
libaio-devel git openssl openssl-devel curl-devel lrzsz libffi-devel \
ncurses-devel zip unzip perl-core perl-JSON perl-Digest-MD5 \
&& $SUDO yum clean all
Cmake 3.5以上安装
wget https://github.com/Kitware/CMake/releases/download/v3.23.3/cmake-3.23.3.tar.gz
tar -zxf cmake-3.23.3.tar.gz
cd cmake-3.23.3
./bootstrap
make && make install
Gcc & g++ 依赖
5.7:
yum install -y http://mirror.centos.org/centos/7/extras/x86_64/Packages/centos-release-scl-rh-2-3.el7.centos.noarch.rpm
yum install -y http://mirror.centos.org/centos/7/extras/x86_64/Packages/centos-release-scl-2-3.el7.centos.noarch.rpm
yum install devtoolset-7-gcc-c++
source /opt/rh/devtoolset-7/enable
8.0.30:
yum install -y http://mirror.centos.org/centos/7/extras/x86_64/Packages/centos-release-scl-rh-2-3.el7.centos.noarch.rpm
yum install -y http://mirror.centos.org/centos/7/extras/x86_64/Packages/centos-release-scl-2-3.el7.centos.noarch.rpm
yum install devtoolset-11-gcc-c++
source /opt/rh/devtoolset-11/enable
** 如果编译遇到以下问题:
make[3]: *** No rule to make target `/usr/lib/x86_64-linux-gnu/libssl.so', needed by `runtime_output_directory/comp_err'. Stop.
使用ln -s /usr/lib64 /usr/lib/x86_64-linux-gnu解决
打容器镜像
固化环境,将容器打成镜像
docker commit [OPTIONS] CONTAINER [REPOSITORY[:TAG]]
- 代码文件传入镜像
使用docker cp
MySQL 5.7 编译启动
编译
1. 进入源代码根目录
2. 创建编译目录
mkdir bld
3. 使用 cmake 编译
cd bld
cmake .. -DDOWNLOAD_BOOST=1 -DWITH_BOOST=../boost/boost_1_59_0 -DWITH_SSL=system -DWITH_UNIT_TESTS=OFF \
-DBUILD_CONFIG=mysql_release -DCMAKE_INSTALL_PREFIX=../mysql-install
make
make install
启动
创建配置文件,mysql_9888.cnf。位置随意,配置文件里的路径根据个人环境修改
# 配置文件,mysql_9888.cnf
[mysqld]
port=9888
socket=/tmp/mysql_9888.sock
datadir={your_path}/data
log_error={your_path}/log/error.log
basedir={mysql-install_path}
server-id=131 #here use ip tail
gtid_mode=on
binlog_checksum=none
enforce_gtid_consistency=on
启动命令
# 初始化并启动
cd {your_path}/mysql-install
mkdir log
./bin/mysqld --defaults-file={your_path}/mysql_9888.cnf --initialize
./bin/mysqld_safe --defaults-file={your_path}/mysql_9888.cnf &
./bin/mysql --socket=/tmp/mysql_9888.sock -uroot # 密码在error.log中
# 修改密码
mysql> set password for root@localhost = password(newpwd);
# 创建用户
mysql> create user myname@'%' identified by '******';
mysql> grant all on *.* to myname@'%' with grant option;
MySQL 8.0 编译启动
编译
1. 进入源代码根目录
2. 创建编译目录
mkdir bld
3. 使用 cmake 编译
cd bld
cmake .. -DDOWNLOAD_BOOST=1 -DWITH_BOOST=../boost/boost_1_79_0 -DWITH_SSL=system -DWITH_UNIT_TESTS=OFF \
-DBUILD_CONFIG=mysql_release -DCMAKE_INSTALL_PREFIX=../mysql-install
make
make install
启动
启动命令与5.7相似