目录
零、两种方式安装数据库
1、二进制方式安装
--https://www.topunix.com/post-11790.html
2、源码安装(本章)
一、操作系统优化
1、系统安装-克隆并优化
--https://www.topunix.com/post-10615.html
2、系统优化后并快照
3、升级内核版本
(1)内核文件下载
(默认内核为3.10,在安装MySQL8.0.35是需要更高版本的内核)
https://dl.lamp.sh/kernel/el7/kernel-ml-5.10.48-1.el7.x86_64.rpm https://dl.lamp.sh/kernel/el7/kernel-ml-devel-5.10.48-1.el7.x86_64.rpm https://dl.lamp.sh/kernel/el7/kernel-ml-headers-5.10.48-1.el7.x86_64.rpm
(2)安装内核
yum localinstall kernel-* 如果出现如下错误: Error: kernel-ml-tools-libs conflicts with kernel-tools-libs-5.4.129-200.el7.x86_64 Error: kernel-ml-headers conflicts with kernel-headers-5.4.129-200.el7.x86_64 Error: kernel-ml-tools conflicts with kernel-tools-5.4.129-200.el7.x86_64 You could try using --skip-broken to work around the problem You could try running: rpm -Va --nofiles --nodigest 解决方法:按照提示添加 --skip-broken,即 yum localinstall kernel-ml-* --skip-broken
(3)查看内核版本
awk -F\' '$1=="menuentry " {print $2}' /etc/grub2.cfg
(4)重启,选择最新内核版本
从3中查出,从0开始 grub2-set-default 0
(5)重启并查看
uname -r 5.10.48-1.el7.x86_64
二、数据库安装
1、安装包依赖
注意:这里的gcc默认版本较低,后面安装redis6.0.14和MySQL8.0.*,,需要更高级别的,此处的gcc可以先不用安装。(第二个注意的点)
yum install cmake gcc gcc-c++ ncurses-devel.x86_64 lrzsz.x86_64 cmake.x86_64 libaio.x86_64 bison.x86_64 gcc-c++.x86_64 bind-utils wget curl curl-devel perl openssh-clients setuptool sysstat make redhat-lsb* -y yum -y install wget cmake gcc gcc-c++ ncurses ncurses-devel libaio-devel openssl openssl-devel
2、数据库安装包下载
wget https://dev.mysql.com/get/Downloads/MySQL-8.0/mysql-boost-8.0.35.tar.gz wget
3、用户及目录准备
tar -xf mysql-boost-8.0.35.tar.gz cd mysql-8.0.35/ groupadd mysql useradd -r -g mysql -s /sbin/nologin mysql mkdir -p /usr/local/mysql mkdir -p /home/mysql chown -R mysql.mysql /usr/local/mysql/ mkdir -p /mysql/data chown -R mysql.mysql /mysql/data chmod -R 755 /home/mysql/ chmod -R 755 /usr/local/mysql/
4、安装高版本cmake
(1)移除原cmake
yum -y remove cmake
(2)下载cmake包
wget https://cmake.org/files/v3.12/cmake-3.12.1.tar.gzw
(3)方法1:编译安装
--bootstrap配置编译 cd /software tar zxvf cmake-3.12.1.tar.gz cd cmake-3.12.1 ./boostrap --gmake 编译(因为boostrap完成后,让用gmake编译,所以此处不使用make) gmake --gmake install安装(或make install) gmake install --cmake版本查看 cmake --version
(4)方法2:使用二进制包运行(高版本)
cd /usr/local/src/ wget https://github.com/Kitware/CMake/releases/download/v3.15.3/cmake-3.15.3-Linux-x86_64.tar.gz # tar -xf cmake-3.15.3-Linux-x86_64.tar.g # cp -r cmake-3.15.3-Linux-x86_64 /usr/local/cmake
(5)设置环境变量
# vi /etc/profile
export CMAKE_PATH=/usr/local/cmake export PATH=$PATH:$CMAKE_PATH/bin # source /etc/profile # cmake -version
5、升级gcc到11版本
参照:https://www.cnblogs.com/StudyApe/p/16474177.html
centos7 默认的 gcc 默认是4.8.5,但是此版本有些程序无法编译。需要新版GCC编译。
下面是升级新版gcc,配置永久生效命令。
(1)安装依赖
mount /dev/cdrom /mnt mv /etc/yum.repos.d/bak/* /etc/yum.repos.d/ --需要使用在线源 yum -y install centos-release-scl
(2)安装新版本
Yum install devtoolset-11-gcc devtoolset-11-gcc-c++ devtoolset-11-binutils
(3)将新版本位置替换老版本gcc
此方式不需要设置环境变量,简单。
mv /usr/bin/gcc /usr/bin/gcc.bak ln -s /opt/rh/devtoolset-11/root/bin/gcc /usr/bin/gcc mv /usr/bin/g++ /usr/bin/g++.bak ln -s /opt/rh/devtoolset-11/root/bin/g++ /usr/bin/g++ mv /usr/bin/c++ /usr/bin/c++.bak ln -s /opt/rh/devtoolset-11/root/bin/c++ /usr/bin/c++ mv /usr/bin/cpp /usr/bin/cpp.bak ln -s /opt/rh/devtoolset-11/root/bin/cpp /usr/bin/cpp mv /usr/bin/cc /usr/bin/cc.bak ln -s /opt/rh/devtoolset-11/root/bin/cc /usr/bin/cc
(4)版本查看
gcc --version
6、安装数据库
(1)编译
cmake . -DCMAKE_INSTALL_PREFIX=/usr/local/mysql \ -DMYSQL_DATADIR=/mysql/data \ -DSYSCONFDIR=/etc \ -DMYSQL_TCP_PORT=3306 \ -DWITH_BOOST=/software/mysql-8.0.35/boost/boost_1_77_0 \ -DDEFAULT_CHARSET=utf8 \ -DDEFAULT_COLLATION=utf8_general_ci \ -DENABLED_LOCAL_INFILE=ON \ -DWITH_INNODB_MEMCACHED=ON \ -DWITH_INNOBASE_STORAGE_ENGINE=1 \ -DWITH_FEDERATED_STORAGE_ENGINE=1 \ -DWITH_BLACKHOLE_STORAGE_ENGINE=1 \ -DWITH_ARCHIVE_STORAGE_ENGINE=1 \ -DWITHOUT_EXAMPLE_STORAGE_ENGINE=1 \ -DWITH_PERFSCHEMA_STORAGE_ENGINE=1 \ -DFORCE_INSOURCE_BUILD=1
(2)编译安装
make -j 4 --大约30-40分钟(如果是make 非并行,可能需要1-2小时) make install
7、初始化数据库
cd /usr/local/mysql/bin/
/usr/local/mysql/bin/mysqld --initialize --user=mysql --basedir=/usr/local/mysql --datadir=/mysql/data/
8、配置my.cnf
wget https://download.topunix.com/MySQL/config-MySQL8.0/my.cnf.linux.MySQL8.0
vi /etc/my.cnf
[client] port=3306 socket=/tmp/mysql.sock default-character-set=utf8 #user=root #password=123 [mysqld] server-id=1 #skip-grant-tables port=3306 user=mysql max_connections=200 socket=/tmp/mysql.sock basedir=/mysql/app/mysql datadir=/mysql/data pid-file=/mysql/data/mysql.pid init-connect='SET NAMES utf8' character-set-server=utf8 default-storage-engine=INNODB log_error=/mysql/data/mysql-error.log slow_query_log_file=/mysql/data/mysql-slow.log
9、启动测试
/usr/local/mysql/bin/mysqld_safe --defaults-file=/etc/my.cnf --user=mysql &
10、配置自动启动
(1)下载mysql.server启动配置文件
cd /mysql/data wget https://download.topunix.com/MySQL/config-MySQL8.0/mysql.server
(2)修改本机对应配置
vi /mysql/mysql.server
basedir=/mysql/app/mysql datadir=/mysql/data mysqld_pid_file_path=/mysql/data/mysql.pid if test -z "$basedir" then basedir=/mysql/app/mysql bindir=/mysql/app/mysql/bin if test -z "$datadir" then datadir=/mysql/data fi sbindir=/mysql/app/mysql/bin libexecdir=/mysql/app/mysql/bin else bindir="$basedir/bin" if test -z "$datadir" then datadir="/mysql/data" fi sbindir="$basedir/sbin" libexecdir="$basedir/libexec" fi
(3)备份support-files中的mysql.sever,并移入下载的mysql.server
cd /mysql/app/mysql/mysql/support-files/ mv mysql.server mysql.server.bak mv /mysql/data/mysql.server /mysql/app/mysql/support-files/ chown mysql:mysql /mysql/app/mysql/support-files/mysql.server chmod +x /mysql/app/mysql/support-files/mysql.server
(4)下载mysqld配置
cd /mysql/ wget https://download.topunix.com/MySQL/config-MySQL8.0/mysqld.service
(5)修改对应配置(如果mysql.server在其他目录下)
vi /mysql/mysqld.service ExecStart=/mysql/app/mysql/support-files/mysql.server start
(6)拷贝文件到Linux 7的/usr/lib/systemd/system/目录下
# set the auto start on linux server started
cp /mysql/mysqld.service /usr/lib/systemd/system/
(7)配置自动启动
systemctl disable mysqld systemctl enable mysqld
(8)测试停止mysqld服务
systemctl daemon-reload systemctl stop mysqld systemctl start mysqld systemctl status mysqld 注:如果出现stop后无法真正停止,需要手动kill掉进程,重新启动就ok了。