zabbix3 mysql8.0_【Zabbix学习笔记】六、LNMP之Mysql8.0.18源码编译安装

Mysql 数据库

是一种关系型数据库管理软件,关系型数据库特点是将数据库保存在不同的二维表(Excel)中,并且将这些表放入不同的数据库中,而不是把所有数据统一放在一个大仓库里,这样的设计增加了Mysql的读取速度,灵活性和可管理性也得到了很大提高。访问及管理Mysql数据库的最常用标准化语言为SQL结构化查询语言。

源码安装mysql,其中两个版本对编译环境有要求

1. mysql从5.5版本开始,不再使用./configure编译,而是使用cmake编译器。

2. mysql从8.0.16版本开始,要求cmake的版本是cmake3以上

3. centos7.6默认安装的是cmake2.8.12.2和gcc4.8.5,这是为考虑向下兼容centos6.2及稳定性,但对编辑安装mysql8.0.16会形成阻碍,所以安装前建议升级cmake到cmake3以上.

环境设置

1.关闭selinux

vi /etc/selinux/config

//修改为

SELINUX=disabled

2.通过 rpm -qa | grep mariadb 命令查看 mariadb 的安装包

7d6f55dd429684c521b4da26294c672d.png

3.通过 rpm -e mariadb-libs-5.5.60-1.el7_5.x86_64 –nodeps 命令卸载mariadb

4.通过 rpm -qa | grep mariadb 命令再次查看 mariadb 的安装包

安装源码准备

gmp-6.1.2.tar.xz,mpfr-4.0.2.tar.gz,mpc-1.1.0.tar.gz,gcc-9.2.0.tar.gz,cmake-3.15.2.tar.gz,mysql-boost-8.0.18.tar.gz,

源码下载

编译安装GCC9.2

安装依赖

yum -y install epel-release

yum -y group install "Development Tools"

MYsql依赖:

yum -y install ncurses-devel openssl openssl-devel bison

2. 安装gcc源码编译依赖 ,先编译gmp->mpfr->mpc,编译: gmp-6.1.2

cd /usr/local/src/

tar -xvf gmp-6.1.2.tar.xz

cd gmp-6.1.2

./configure --prefix=/usr/local/gmp-6.1.2

make -j $(nproc)

make install

cd ../

3. 编译:mpfr-4.0.2

tar -xvf mpfr-4.0.2.tar.gz

cd mpfr-4.0.2

./configure --prefix=/usr/local/mpfr-4.0.2 --with-gmp=/usr/local/gmp-6.1.2

make -j $(nproc)

make install

cd ../

4.编译:mpc-1.1.0

tar -xvf mpc-1.1.0.tar.gz

cd mpc-1.1.0

./configure --prefix=/usr/local/mpc-1.1.0 --with-mpfr=/usr/local/mpfr-4.0.2 --with-gmp=/usr/local/gmp-6.1.2

make -j $(nproc)

make install

# 把mpfr lib 加入 ld.so.conf 不然gcc 编译报错

echo /usr/local/mpfr-4.0.2/lib >> /etc/ld.so.conf

ldconfig

5. 编译安装gcc

cd /usr/local/src/

tar -xvf gcc-9.2.0.tar.gz

cd gcc-9.2.0

./configure --prefix=/usr/local/gcc-9.2.0 \

-enable-threads=posix \

-disable-checking \

-disable-multilib \

-enable-languages=c,c++ \

--with-gmp=/usr/local/gmp-6.1.2 \

--with-mpfr=/usr/local/mpfr-4.0.2 \

--with-mpc=/usr/local/mpc-1.1.0 \

--with-tune=generic \

--with-arch_32=x86-64

make -j $(nproc)

make install -j $(nproc)

###备份旧 gcc 可执行文件

mv /usr/bin/gcc /usr/bin/gcc.old

mv /usr/bin/g++ /usr/bin/g++.old

mv /usr/bin/c++ /usr/bin/c++.old

mv /usr/bin/cpp /usr/bin/cpp.old

mv /usr/bin/gcov /usr/bin/gcov.old

### 创建最新gcc 执行文件软链

ln -sf /usr/local/gcc-9.2.0/bin/* /usr/bin/

### 删除lib64 目录下.py 文件不然ldconfig 报错

rm -rf /usr/local/gcc-9.2.0/lib64/libstdc++.so.6.0.27-gdb.py

echo /usr/local/gcc-9.2.0/lib64 >> /etc/ld.so.conf

ldconfig

### 复制libstdc++.so.6.0.27 /lib64/

cp /usr/local/gcc-9.2.0/lib64/libstdc++.so.6.0.27 /lib64/

###创建软链 libstdc++.so.6

cd /lib64

ln -sf libstdc++.so.6.0.27 libstdc++.so.6

### 查看是否最新版本

strings /usr/lib64/libstdc++.so.6 | grep GLIBCXX

编译安装cmake3.15.2

cd /usr/local/src

tar zxf cmake-3.15.2.tar.gz

cd cmake-3.15.2

./configure --prefix=/usr/local/cmake

make

make install

–prefix 参数是配置cmake的安装目录

做cmake命令软连接,查看cmake版本

ln -s /usr/local/cmake/bin/cmake /usr/bin/cmake

cmake --version

编译安装mysql8.0.18

1.目录设置

mkdir /usr/local/mysql/{data,tmp,logs} -p

mkdir -p /usr/local/mysql/logs/{mysqld,backup_mysqld}

2. 创建mysql用户,授权

useradd mysql -s /sbin/nologin -M

chown -R mysql:mysql /usr/local

3.进入 /usr/local/src 目录

cd /usr/local/src

4. mysql官网下载mysql-8.0.18,上传MySQL-8.0.18并解压

rz -ary --o-sync

tar -zxvf mysql-boost-8.0.18.tar.gz

yum -y install cmake3

cd mysql-8.0.18

5. 上传boost_1_70_0.tar.gz 到/root/mysql-8.0.18/boost/boost_1_70_0目录或者自动下载

6. 编译安装

cmake3 \

-DDEFAULT_CHARSET=utf8 \

-DDEFAULT_COLLATION=utf8_general_ci \

-DEXTRA_CHARSETS=all \

-DENABLED_LOCAL_INFILE=ON \

-DWITH_INNODB_MEMCACHED=ON \

-DDOWNLOAD_BOOST=1 \

-DWITH_BOOST=/root/mysql-8.0.18/boost/boost_1_70_0 \

-DCMAKE_INSTALL_PREFIX=/usr/local/mysql \

-DMYSQL_DATADIR=/data/mysql \

-DMYSQL_TCP_PORT=3306 \

-DWITHOUT_CSV_STORAGE_ENGINE=1 \

-DWITHOUT_FEDERATED_STORAGE_ENGINE=1 \

-DWITHOUT_ARCHIVE_STORAGE_ENGINE=1 \

-DFORCE_INSOURCE_BUILD=1 \

-DWITH_SSL=system \

-DWITH_ZLIB=system \

-DWITH_DEBUG=1 \

-DCMAKE_CXX_COMPILER=/usr/local/gcc-9.2.0/bin/g++ \

-DCMAKE_C_COMPILER=/usr/local/gcc-9.2.0/bin/gcc

make

make install

编译参数描述

-DCMAKE_INSTALL_PREFIX=/usr/local/mysql:MySQL安装的根目录

-DMYSQL_DATADIR=/data/mysql:数据文件所存放的目录

-DSYSCONFDIR=/etc :MySQL配置文件所在目录

-DMYSQL_USER=mysql:MySQL服务的用户名

-DWITH_MYISAM_STORAGE_ENGINE=1:安装MyISAM引擎

-DWITH_INNOBASE_STORAGE_ENGINE=1:安装InnoDB引擎

-DWITH_ARCHIVE_STORAGE_ENGINE=1:安装Archive引擎

-DWITH_MEMORY_STORAGE_ENGINE=1:安装Memory引擎

-DWITH_FEDERATED_STORAGE_ENGINE=1:安装Federated引擎

-DWITH_PARTITION_STORAGE_ENGINE=1:安装Partition引擎

-DWITH_READLINE=1:MySQL的readline library

-DMYSQL_UNIX_ADDR=/tmp/mysql.sock:sock文件的路径

-DMYSQL_TCP_PORT=3306 :MySQL的监听端口

-DENABLED_LOCAL_INFILE=1:启用加载本地数据

-DENABLE_DOWNLOADS=1:编译时允许自主下载相关文件

-DEXTRA_CHARSETS=all :使MySQL支持所有的扩展字符

-DDEFAULT_CHARSET=utf8mb4:设置默认字符集为utf8mb4

-DDEFAULT_COLLATION=utf8mb4_general_ci:设置默认字符校对

-DWITH_DEBUG=0:禁用调试模式

-DMYSQL_MAINTAINER_MODE=0:是否启用mysql维护器特定的开发环境

-DDOWNLOAD_BOOST=1:允许在线更新boost库

-DWITH_BOOST=../boost:指定boost安装路径

提示错误1:

cmake问题CMake Error:Could not find CMAKE_ROOT!!!core dumped的问题,只要一条命令就可以解决:hash -r

再运行cmake –version即可显示cmake版本信息

提示错误2:

Mysql问题Could NOT find Curses (missing:  CURSES_LIBRARY CURSES_INCLUDE_PATH)1、在根目录输命令find / -name CMakeCache.txt

2、删除mysql下的CMakeCache.txt

3、缺少ncurses-devel包,yum install -y ncurses-devel

提示错误3:

collect2: 错误:ld 返回 1删除mysql下的CMakeCache.txt

7.拷贝到启动脚本并添加执行权限

cp support-files/mysql.server /etc/init.d/mysqld

chmod a+x /etc/init.d/mysqld

8.mysql环境变量配置

export PATH=$PATH:/usr/local/mysql/bin:

echo 'export PATH=$PATH:/usr/local/mysql/bin' >> /etc/profile

10. 使环境变量生效

source /etc/profile

11.初始化&启动数据库

#编辑配置文件

vi /data/conf/my.cnf

#建立软链接

ln -s /data/conf/my.cnf /etc/my.cnf

#初始化数据库

mysqld --defaults-file=/etc/my.cnf --initialize-insecure &

#启动数据库

/etc/init.d/mysqld start

#登陆后修改密码

mysql

alter user root@localhost identified by 'xxx';

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值