开发者
mysql 8.0.20安装操作
mysql 8.0.20安装操作
新人帖
发表于2023/08/29
1.6k9

一、安装前准备

1、关闭防火墙并取消开机自启动

停止防火墙。

systemctl stop firewalld.service

关闭防火墙。

systemctl disable firewalld.service

查看防火墙。

systemctl status firewalld.service

2、关闭SELIinux

设置SELinux成为permissive模式,临时关闭selinux。

setenforce 0

查看selinux状态,确认为Disabled模式。

getenforce

永久关闭selinux的方法:

执行vim /etc/sysconfig/selinux命令,打开SELinux文件,把"SELINUX=enforcing" 改为 "SELINUX=disabled"。

保存文件,并重启服务器。

确认SELinux是否关闭,如果SELinux status参数显示为disabled即为关闭状态。

/usr/sbin/sestatus -v

3、创建用户组和用户

创建mysql用户组。

groupadd mysql

创建mysql用户。

useradd -g mysql mysql

设置mysql用户密码。Huawei@123

passwd mysql

4、搭建数据盘

非性能测试时,直接执行创建数据目录。

mkdir /data

第一次搭建数据盘(挂载单独硬盘操作):

mkdir /data

ls /dev/nvme*

mkfs.xfs -f /dev/nvme0n1

du -sh /dev/nvme0n1

mount /dev/nvme0n1 /data/

df -h

非第一次搭建数据盘(挂载单独硬盘操作):

umount /data/

ls /dev/nvme*

mkfs.xfs -f /dev/nvme0n1

du -sh /dev/nvme0n1

mount /dev/nvme0n1 /data/

df -h

注意:

如果执行umount /data/时报错,如下图所示。

执行下面的操作解决。

yum -y provides fuser

yum -y install psmisc-*

fuser -km /data/ 该操作需要执行多次,直到没有回显为止

umount /data/

df -h

5、创建数据目录

创建数据目录/data和进程所需的相关目录。

mkdir -p /data/mysql

cd /data/mysql

mkdir data tmp run log

修改数据目录/data的用户组和用户权限为mysql:mysql。

chown -R mysql:mysql /data

ll /

二、安装mysql 8.0.20

1、安装依赖包

yum -y install bison ncurses ncurses-devel libaio-devel openssl openssl-devel gmp gmp-devel mpfr mpfr-devel libmpc libmpc-devel wget tar gcc gcc-c++ git rpcgen cmake m4

2、安装cmake

系统自带的CMake软件不能满足当前数据库版本的编译要求,需要升级CMake版本至3.4.3或者以上,本文以升级到3.5.2版本为例。

下载CMake 3.5.2。

CMake 3.5.2下载地址:https://cmake.org/files/v3.5/cmake-3.5.2.tar.gz

将软件包上传至服务器/home目录,并解压。

cd /home

tar -zxvf cmake-3.5.2.tar.gz

进入解压后目录。

cd cmake-3.5.2

升级CMake。

./bootstrap

make -j

make install

确认CMake的版本是否为3.5.2。

/usr/local/bin/cmake --version

3、编译和安装mysql 8.0.20

如果编译安装失败,需要执行如下命令清理环境,然后参照该章节的步骤重新解压并编译安装。

rm -rf /home/mysql-8.0.20

下载源码包。

下载MySQL源码包(includes Boost Headers)。

下载网站地址:https://downloads.mysql.com/archives/community/

直接下载地址:

wget https://downloads.mysql.com/archives/get/p/23/file/mysql-boost-8.0.20.tar.gz

将mysql-boost-8.0.20.tar.gz上传至服务器“/home”目录下,并解压。

cd /home

tar -zxvf mysql-boost-8.0.20.tar.gz

进入“/home/mysql-8.0.20”源码文件夹,并建立一个编译目录。

cd /home/mysql-8.0.20

mkdir build

进入编译目录,配置MySQL。

cd build

cmake .. -DBUILD_CONFIG=mysql_release -DCMAKE_INSTALL_PREFIX=/usr/local/mysql -DMYSQL_DATADIR=/data/mysql/data -DWITH_BOOST=/home/mysql-8.0.20/boost/boost_1_70_0

关键参数说明

参数

说明

DBUILD_CONFIG

设置为mysql_release的含义是指CMake编译参数采用Mysql官方发布release版本时的编译参数。

DCMAKE_INSTALL_PREFIX

用于指定软件的安装路径,本文安装路径为:/usr/local/mysql。文档中的安装路径只是参考,根据客户实际情况进行配置。

DMYSQL_DATADIR

创建数据库时,数据文件存放的路径。本次安装路径为:/data/mysql/data。

DWITH_BOOST

解压MySQL源码包后,解压文件中boost_1_70_0文件夹所在路径。例如,本文解压在“/home”目录下,则路径为:/home/mysql-8.0.20/boost/boost_1_70_0。

编译MySQL。

make -j

说明:

-j96 参数充分利用多核CPU优势,加快编译速度,参数-j后数字为CPU核数,可用“cat /proc/cpuinfo | grep processor | wc -l”进行查看,此数值应小于等于CPU核数。

安装MySQL。

make install

ls /usr/local/mysql/

查看数据库版本。

/usr/local/mysql/bin/mysql --version

三、运行

编译安装方式安装:软件安装目录默认为“/usr/local/mysql”

1、修改配置文件

编辑my.cnf文件。

rm -f /etc/my.cnf

echo -e "[mysqld_safe]\nlog-error=/data/mysql/log/mysql.log\npid-file=/data/mysql/run/mysqld.pid\n[mysqldump]\nquick\n[mysql]\nno-auto-rehash\n[client]\ndefault-character-set=utf8\n[mysqld]\nbasedir=/usr/local/mysql\nsocket=/data/mysql/run/mysql.sock\ntmpdir=/data/mysql/tmp\ndatadir=/data/mysql/data\ndefault_authentication_plugin=mysql_native_password\nport=3306\nuser=mysql\n" > /etc/my.cnf

说明:

其中文件路径(包括软件安装路径basedir、数据路径datadir等)根据实际情况修改。user=mysql是指操作系统层的用户,即创建用户组和用户中创建的用户。

确保my.cnf配置文件修改正确。

cat /etc/my.cnf

修改配置文件/etc/my.cnf的用户组和用户权限为mysql:mysql。

chown mysql:mysql /etc/my.cnf

ll /etc/my.cnf

2、MySQL加入service服务。

chmod 777 /usr/local/mysql/support-files/mysql.server

cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysql

chkconfig mysql on

修改/etc/init.d/mysql的用户组和用户权限为mysql:mysql

chown -R mysql:mysql /etc/init.d/mysql

ll /etc/init.d/mysql

3、配置环境变量。

修改环境变量文件/etc/profile和/usr/local/mysql的用户组和用户权限为mysql:mysql。

chown mysql:mysql /etc/profile

ll /etc/profile

chown -R mysql:mysql /usr/local/mysql

ll /usr/local/mysql

切换到mysql用户。

su - mysql

whoami

安装完成后,将MySQL二进制文件路径到PATH。

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

注意:

其中PATH中的“/usr/local/mysql/bin”路径,为MySQL软件安装目录下的bin文件的绝对路径,请根据实际情况修改。

使环境变量配置生效。

source /etc/profile

查看环境变量。

env

4、初始化数据库。

/usr/local/mysql/bin/mysqld --defaults-file=/etc/my.cnf --initialize

说明(有报错在执行,正常不要执行此步操作):

以上步骤回显倒数第2行中有初始密码,请注意保存,后面会用到。

如果初始化失败,提示“--initialize specified but the data directory has files in it.”则执行下面命令删除数据后重新初始化。

ls /data/mysql/data

rm -rf /data/mysql/data/

初始化完成后,查看数据目录下数据文件/data/mysql/data的用户组和用户权限为mysql:mysql(因为前面/etc/my.cnf文件中配置的操作系统用户是user=mysql)。

ll /data/mysql/data

5、启动数据库(有3种方式)。

启动数据库进程

注意:

如果以root用户(su - root)第一次启动数据库服务(service mysql start),则启动时会提示缺少mysql.log文件而导致失败。切换到mysql用户(su - mysql)启动数据库服务后,会在/data/mysql/log目录下生成mysql.log文件,停止数据库服务(service mysql stop),再次以root用户启动数据库服务则不会报错。

如果采用的镜像站RPM方式安装或编译安装,执行一下三种中一种方式即可。

service mysql start

或者

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

或者

/usr/local/mysql/bin/mysqld_safe --defaults-file=/etc/my.cnf &

查看数据库进程。

ps -ef | grep mysql

查看数据库监测端口。

netstat -anpt

netstat -anpt | grep mysql

netstat -anpt | grep 3306

6、登录数据库。

说明:

提示输入密码时,请输入上面初始化产生的初始密码。

如果采用官网RPM安装方式,则mysql文件在/usr/bin目录下。登录数据库的命令根据实际情况修改。

/usr/local/mysql/bin/mysql -uroot -p -S /data/mysql/run/mysql.sock

配置数据库帐号密码。

说明:

登录数据库以后,修改通过root用户登录数据库的密码。

alter user 'root'@'localhost' identified by "123456";

创建全域root用户(允许root从其他服务器访问)。

create user 'root'@'%' identified by '123456';

进行授权。

grant all privileges on *.* to 'root'@'%';

flush privileges;

退出数据库。

执行\q或者exit退出数据库。

exit

用修改后的密码重新登录数据库。

/usr/local/mysql/bin/mysql -uroot -p -S /data/mysql/run/mysql.sock

退出数据库

exit

7、关闭数据库(可选)。

service mysql stop

查看数据库进程。

ps -ef | grep mysql

四、安装sysbench(可选)

yum -y install unzip unzip automake libtool* mysql-devel

tar -zxvf sysbench-0.5.tar.gz

cd sysbench-0.5

./autogen.sh

./configure

make -j

make install

五、在mysql源码目录,打补丁(打补丁操作)

1、编译安装卸载

关闭数据库进程。

ps -ef | grep mysql

/usr/local/mysql/bin/mysqladmin -uroot -p123456 shutdown -S /data/mysql/run/mysql.sock

源码编译安装只是生成对应的文件,不涉及卸载,直接删除对应的安装目录和数据目录即可

ls /usr/local/mysql

rm -rf /usr/local/mysql

ls /data/mysql

rm -rf /data/mysql

2、重新执行步骤二的第三步,解压缩源码包后,把补丁传到源码包的根目录(/home/mysql-8.0.20)

git apply --whitespace=nowarn -p2 < mtr-pq.patch

git apply --whitespace=nowarn -p2 < code-pq.patch

编译完成运行截图:

image.png

收藏举报
Level 1
0
帖子
0
粉丝
0
获赞