环境说明:
[root@izbp1e0xboek6oko8ni18yz ~]# cat /etc/redhat-release
CentOS Linux release 7.4.1708 (Core)
[root@izbp1e0xboek6oko8ni18yz ~]# uname -a
Linux izbp1e0xboek6oko8ni18yz 3.10.0-693.2.2.el7.x86_64 #1 SMP Tue Sep 12 22:26:13 UTC 2017 x86_64 x86_64 x86_64 GNU/Linux
安装mysql 8
可参考 https://www.linuxidc.com/Linux/2018-04/152010.htm
准备工作 安装依赖 (gcc需要4.8.3及以上版本)
yum -y install wget cmake gcc gcc-c++ ncurses ncurses-devel libaio-devel openssl openssl-devel
1.下载安装安装包
下载链接:点击打开链接 https://dev.mysql.com/downloads/mysql/
或者使用命令下载
root@iZ23iuzu9fvZ:[/usr/local/data/mysqlCluser/mysql-master]wget https://dev.mysql.com/get/Downloads/MySQL-8.0/mysql-boost-8.0.12.tar.gz
2.创建mysql用户
groupadd mysql
useradd -r -g mysql -s /bin/false mysql
3.创建安装目录和数据目录、解压源码包
我把主库安装在了 /usr/local/mysql8Cluster/mysql-master
完成后我的目录结构如下:
[root@izbp1e0xboek6oko8ni18yz mysql-master]# pwd
/usr/local/mysql8Cluster/mysql-master
[root@izbp1e0xboek6oko8ni18yz mysql-master]# ls
data mysql mysql-8.0.12
4.编译&安装
根据自己的环境 自行配置参数。
[root@izbp1e0xboek6oko8ni18yz mysql-8.0.12]# cmake . -DCMAKE_INSTALL_PREFIX=/usr/local/mysql8Cluster/mysql-master/mysql -DMYSQL_DATADIR=/usr/local/mysql8Cluster/mysql-master/data/ -DSYSCONFDIR=/usr/local/mysql8Cluster/mysql-master/ -DMYSQL_TCP_PORT=3310 -DWITH_BOOST=/usr/local/mysql8Cluster/mysql-master/mysql-8.0.12/boost/
#cmake完成成功后 返回结果如下
......
......
-- CMAKE_C_FLAGS_RELWITHDEBINFO: -O2 -ffunction-sections -fdata-sections -fPIC -g -fno-omit-frame-pointer -DDBUG_OFF
-- CMAKE_CXX_FLAGS_RELWITHDEBINFO: -O2 -ffunction-sections -fdata-sections -fPIC -g -fno-omit-frame-pointer -std=c++11 -DDBUG_OFF
-- Configuring done
-- Generating done
-- Build files have been written to: /usr/local/mysql8Cluster/mysql-master/mysql-8.0.12
#执行make 该过程比较耗时,也可能会遇到各种依赖问题,我遇到了gcc版本过低问题
[root@izbp1e0xboek6oko8ni18yz mysql-8.0.12]# make
问题1.编译过程中遇到如下问题 ,原因是内存不足,mysql5.9以上的版本,编译安装需要1G内存,而我的云主机刚好1G内存。解决办法参考https://blog.csdn.net/u010716706/article/details/78638340
..........
.........
.......
[ 33%] Building CXX object sql/CMakeFiles/sql_gis.dir/gis/disjoint.cc.o
[ 33%] Building CXX object sql/CMakeFiles/sql_gis.dir/gis/distance.cc.o
[ 33%] Building CXX object sql/CMakeFiles/sql_gis.dir/gis/distance_sphere.cc.o
[ 33%] Building CXX object sql/CMakeFiles/sql_gis.dir/gis/equals.cc.o
c++: internal compiler error: Killed (program cc1plus)
Please submit a full bug report,
with preprocessed source if appropriate.
See <http://bugzilla.redhat.com/bugzilla> for instructions.
make[2]: *** [sql/CMakeFiles/sql_gis.dir/gis/equals.cc.o] Error 4
make[1]: *** [sql/CMakeFiles/sql_gis.dir/all] Error 2
make: *** [all] Error 2
问题2.gcc 版本太低,gcc版本需要4.8.3及以上。gcc版本低于4.8.3 cmake时报错。升级gcc后还是报相同错误,可参考http://www.jyguagua.com/?p=3261。cmake有缓存可删除重新解压后cmake。(gcc编译了近4个小时)
5.新建配置文件 my.cnf
cat /etc/my.cnf
[mysqld]
server-id=1
port=3306
basedir=/usr/local/mysql
datadir=/data/mysql
##请根据实际情况添加参数
6.目录权限修改
root@iZ23iuzu9fvZ:chown -R mysql:mysql /usr/local/data/mysqlCluser/mysql-master/mysql-8.0.12
root@iZ23iuzu9fvZ:chown -R mysql:mysql /usr/local/data/mysqlCluser/mysql-master/data/
root@iZ23iuzu9fvZ:chmod 755 /usr/local/data/mysqlCluser/mysql-master/mysql-8.0.12/
root@iZ23iuzu9fvZ:chmod 755 /usr/local/data/mysqlCluser/mysql-master/data/
7初始化数据库
bin/mysqld --initialize --user=mysql --datadir=/data/mysql/
bin/mysql_ssl_rsa_setup
8.启动mysql