无网络编译安装mysql8.0

在无网络情况下编译安装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://gmplib.org/

https://www.mpfr.org/history.html

ftp://ftp.gnu.org/gnu/mpc/

首先安装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)

https://www.boost.org/

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

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值