Contos7 源码安装mysql8.0.13
1. 添加MySQL用户
groupadd mysql #添加mysql用户组
useradd -r -g mysql -s /bin/false mysql #添加mysql用户
2. 安装相关的依赖库
sudo yum install -y cmake make gcc gcc-c++ bison ncurses ncurses-devel openssl-devel
3. 下载MySQL源码
从github上下载mysql的源码
wget https://cdn.mysql.com//Downloads/MySQL-8.0/mysql-boost-8.0.13.tar.gz
// 解压
tar -zxf mysql-boost-8.0.13.tar.gz
// 切换到源码目录
cd mysql-8.0.13
4. 配置mysql预编译参数
cmake . -DCMAKE_INSTALL_PREFIX=/usr/local/mysql \
-DMYSQL_DATADIR=/data/mysql \
-DWITH_BOOST=/root/mysql-8.0.13/boost \
-DSYSCONFDIR=/etc \
-DEFAULT_CHARSET=utf8mb4 \
-DDEFAULT_COLLATION=utf8mb4_general_ci \
-DENABLED_LOCAL_INFILE=1 \
-DEXTRA_CHARSETS=all
-DCMAKE_INSTALL_PREFIX:安装路径
-DMYSQL_DATADIR:数据存放目录
-DWITH_BOOST:boost源码路径
-DSYSCONFDIR:my.cnf配置文件目录
-DEFAULT_CHARSET:数据库默认字符编码
-DDEFAULT_COLLATION:默认排序规则
-DENABLED_LOCAL_INFILE:允许从本文件导入数据
-DEXTRA_CHARSETS:安装所有字符集
更多预编译配置参数请参考mysql官方文档说明:
https://dev.mysql.com/doc/refman/8.0/en/source-configuration-options.html#cmake-general-options
5. 编译并安装
// -j 参数表示根据CPU核数指定编译时的线程数,可以加快编译速度。默认为1个线程编译,经测试单核CPU,1G的内存,编译完需要将近1个小时。
make -j `grep processor /proc/cpuinfo | wc -l`
make install
6. 初始化系统数据库
cd /usr/local/mysql
chown -R mysql:mysql .
./bin/mysqld --initialize-insecure --user=mysql --basedir=/usr/local/mysql --datadir=/data/mysql
./bin/mysql_ssl_rsa_setup
chown -R root .
chown -R mysql data
7. 配置mysql服务
cp support-files/mysql.server /etc/init.d/mysqld
chkconfig --add mysqld # 添加到系统服务
chkconfig mysqld on # 开机启动
8. 启动服务
service mysqld start # 启动mysql服务
service mysqld stop # 停止mysql服务
service mysqld restart # 重新启动mysql服务
9. 设置数据库密码
# 进入mysql 指令界面
/usr/local/mysql/bin/mysql
# 修改 root@localhost 密码
alter user 'root'@'localhost' IDENTIFIED BY 'yourPassword';
10. 配置mysql环境变量
vim /etc/profile
export PATH=/usr/local/mysql/bin:$PATH
source /etc/profile
11. 错误解决
内存空间不足
错误信息
c++: Internal error: Killed (program cc1plus)
Please submit a full bug report.
See <http://bugzilla.redhat.com/bugzilla> for instructions.
make[2]: *** [sql/CMakeFiles/sql.dir/item_geofunc.cc.o] Error 1
make[1]: *** [sql/CMakeFiles/sql.dir/all] Error 2
make: *** [all] Error 2
解决方案
dd if=/dev/zero of=/swapfile bs=1k count=2048000 --获取要增加的2G的SWAP文件块
mkswap /swapfile -- 创建SWAP文件
swapon /swapfile -- 激活SWAP文件
swapon -s -- 查看SWAP信息是否正确
echo "/var/swapfile swap swap defaults 0 0" >> /etc/fstab -- 添加到fstab文件中让系统引导时自动启动
注意, swapfile文件的路径在/var/下
编译完后, 如果不想要交换分区了, 可以删除:
swapoff /swapfile
rm -fr /swapfile
然后
需要删除CMakeCache.txt文件
然后重新cmake 预编译。然后就可以编译通过