在无网络情况下编译安装mysql8.0
安装工具包,均从光盘镜像中安装
先安装bzip2用来解压bz2压缩文件,光盘镜像中安装
yum -y install bzip gcc gcc-c++ m4 #(需要旧版本gcc来编译新版本)
然后安装一部分小工具包
yum -y install ncurses ncurses-devel libaio-devel openssl openssl-devel
首先安装gcc编译环境 gcc-5.3.0.tar.bz2,(编译8.0最低要求编译环境)
gcc使用手工编译安装
gcc依赖包为 gmp-6.1.2.tar.bz2 mpfr-3.1.3.tar.bz2 mpc-1.0.3.tar.gz
https://www.mpfr.org/history.html
首先安装gmp
tar -jxvf gmp-6.1.2.tar.bz2
cd gmp-6.1.2
./configure
make -j4
make install
在安装mpfr (版本不能太高,版本如果太高在安装mpc的时候会出现问题)
tar -jxvf mpfr-3.1.3.tar.bz2
cd mpfr-3.1.3
./configure --with-gmp-include=/usr/include --with-gmp-lib=/usr/lib
make -j4
make install
最后安装mpc
tar -zxvf mpc-1.0.3.tar.gz
cd mpc-1.0.3
./configure --with-mpfr-include=/usr/include --with-mpfr-lib=/usr/lib --with-gmp-include=/usr/include --with-gmp-lib=/usr/lib
make -j4
make install
开始安装gcc
tar -jxvf gcc-5.3.0.tar.bz2
cd gcc-5.3.0
unset CPLUS_INCLUDE_PATH LIBRARY_PATH
./configure --with-gmp-include=/usr/include --with-gmp-lib=/usr/lib --with-mpfr-include=/usr/include --with-mpfr-lib=/usr/lib --with-mpc-include=/usr/include --with-mpc-lib=/usr/lib --enable-languages=c,c++ --enable-threads=posix --disable-multilib
make -j8
rpm -e gcc gcc-c++ #(卸载旧版本gcc环境)
make install
ln -s /usr/local/bin/gcc /usr/bin/gcc
ln -s /usr/bin/gcc /usr/bin/cc
ln -s /usr/local/bin/g++ /usr/bin/g++
安装gcc之后要安装cmake
安装cmake之前先装libstdc++
yum install libstdc++
cp /usr/local/lib64/libstdc++.so.6.0.21 /usr/lib64
cd /usr/lib64
rm -f libstdc++.so.6
ln -s libstdc++.so.6.0.21 libstdc++.so.6
strings /usr/lib64/libstdc++.so.6 | grep GLIBCXX #(查看一下有没有21)
问题提示:Error when bootstrapping CMake:
Cannot find appropriate C compiler on this system.
Please specify one using environment variable CC.
See cmake_bootstrap.log for compilers attempted.
缺少C编译环境
问题提示:Error when bootstrapping CMake:
Cannot find appropriate C++ compiler on this system.
Please specify one using environment variable CXX.
缺少C++编译环境
以上两个问题都是gcc 没有安装好
需要查看一下gcc和g++命令的版本,还要/etc/profile中的环境变量
然后继续安装cmake
tar -zxvf cmake-3.14.1.tar.gz
cd cmake-3.14.1
./configure
gmake
make install
最后才开始安装mysql8.0
首先安装boost_1.68.0,在安装mysql的时候提示的是这个版本,如果是1.69会出现找不到boost
问题提示:CMake Error at cmake/boost.cmake:81 (MESSAGE)
mkdir /usr/local/boost
cd /usr/local/boost/
tar -zxvf boost_1_68_0.tar.gz
tar -zxvf mysql-boost-8.0.15.tar.gz -C /usr/local/
再继续安装mysql
创建mysql用户
groupadd mysql
useradd -r -g mysql -s /bin/false mysql
创建安装目录和数据目录
mkdir -p /usr/local/mysql
mkdir -p /data/mysql
cmake的时候要加上-DCMAKE_CXX_COMPILER=/usr/local/bin/c++,否则会出现找不到c++命令
问题提示:c++: error trying to exec 'cc1plus': execvp: No such file or directory
cd /usr/local/mysql-8.0.15/
cmake . -DCMAKE_CXX_COMPILER=/usr/local/bin/c++ -DCMAKE_INSTALL_PREFIX=/usr/local/mysql -DMYSQL_DATADIR=/usr/local/mysql/data -DSYSCONFDIR=/etc -DMYSQL_TCP_PORT=3306 -DWITH_BOOST=/usr/local/boost -DFORCE_INSOURCE_BUILD=1
make -j8
make install
编译mysql的时候会出现SYS_gettid未定义,这时候需要再他指定文件中添加一个#include <sys/syscall.h>
编译mysql的时候会出现os_compare_and_swap_thread_id未定义,这时候按照他下面给出的建议,将指定文件中的os_compare_and_swap_thread_id改为os_compare_and_swap_lint然后重新编译
不同版本gcc编译的时候情况不同,以上两个问题均为gcc8.3版本出现
配置my.cnf文件
cat /etc/my.cnf
[mysqld]
server-id=1
port=3306
basedir=/usr/local/mysql
datadir=/data/mysql
##请根据实际情况添加参数
修改目录权限
chown -R mysql:mysql /usr/local/mysql
chown -R mysql:mysql /data/mysql
chmod 755 /usr/local/mysql -R
chmod 755 /data/mysql -R
初始化数据库
/usr/local/mysql/bin/mysqld --initialize --user=mysql --basedir=/usr/local/mysql
mkdir /var/lib/mysql
chown mysql:mysql -R /var/lib/mysql
/usr/local/mysql/bin/mysql_ssl_rsa_setup
启动mysql
mkdir /var/log/mariadb
chown mysql:mysql -R /var/log/mariadb
mkdir /var/run/mariadb
chown mysql:mysql -R /var/run/mariadb
touch /var/log/mariadb/mariadb.log
chown mysql:mysql -R /var/log/mariadb/mariadb.log
如果没有的话可能会出现,当然先查看/var/log/mariadb/mariadb.log,再确定是否是这个问题
启动命令
/usr/local/mysql/bin/mysqld_safe --user=mysql &
这里放另外一个启动错误
登录mysql首先做一个软连接
ln -s /var/lib/mysql/mysql.sock /tmp/mysql.sock
如果没有的话会出现登录失败
/usr/local/mysql/bin/mysql -uroot -p
再输入初始化的时候出现的密码
修改账号密码
bin/mysql -uroot -p
mysql> alter user 'root'@'localhost' identified by "123456";
mysql> show databases;
+--------------------+
| Database |
+--------------------+
| information_schema |
| mysql |
| performance_schema |
| sys |
+--------------------+
4 rows in set (0.00 sec)
创建软链接(非必要)
ln -s /usr/local/mysql/bin/* /usr/local/bin/
添加到启动(非必要)
cp support-files/mysql.server /etc/init.d/mysql.server