MySQL8(glibc2.28)二进制安装

发布时间 2023-06-18 23:32:38作者: 难止汗

操作系统:centos7.9

安装数据库:mysql-8.0.33-linux-glibc2.28

一、升级gcc(传送阵:升级gcc

1、添加mysql8依赖库软连接

mv /lib64/libstdc++.so.6 /lib64/libstdc++.so.6_old
ln -s /usr/local/gcc/lib64/libstdc++.so.6 /lib64/libstdc++.so.6

2、查看GLIBC_2.28是否更新成功

strings  /lib64/libstdc++.so.6 | grep ^CXXABI

 

centos7版本系统 glibc版本为:2.17,如果使用glibc2.28版本需要进行编译安装升级,如果使用glibc2.17,则不用进行二、三步骤。

二、升级make,升级glibc需要使用高版本make

1、下载make

cd /usr/local/src
wget http://ftp.gnu.org/gnu/make/make-4.3.tar.gz

2、解压、编译安装

tar -xzvf make-4.3.tar.gz
cd make-4.3
./configure --prefix=/usr/local/make
make
make install

3、更换make版本

mv /usr/bin/make /usr/bin/make_old
cp /usr/local/make/bin/make /usr/bin/make
make -v

 

三、升级glibc

1、下载glibc2.28

cd /usr/local/src
wget http://ftp.gnu.org/gnu/glibc/glibc-2.28.tar.gz

2、安装依赖

yum install -y bison 

3、解压、编译安装

cd glibc-2.28
mkdir build 
cd build
../configure --prefix=/usr --disable-profile --enable-add-ons --with-headers=/usr/include --with-binutils=/usr/bin
make && make install

编译报错:

  1)、在配置编译时报错:These critical programs are missing or too old: compiler

  解决方法:说明gcc版本过低,检查第一步,最好使用删除之前gcc版本的方式。

  2)、在make install时,报错/usr/bin/ld: cannot find -lnss_test2

  解决方法:

#修改文件大概128行
vim /usr/local/src/glibc-2.28/scripts/test-installation.pl
    #将 && $name ne "nss_test1" && $name ne "libgcc_s" 
    #改为:
    && $name ne "nss_test1" && $name ne "libgcc_s" && $name ne "nss_test2"

  然后重新执行make install

4、检查更新是否成功

strings /lib64/libc.so.6|grep ^GLIBC

 

 四、升级ncurses

1、下载ncurses

cd /usr/local/src
wget https://mirrors.aliyun.com/gnu/ncurses/ncurses-6.3.tar.gz

2、解压、编译安装

tar zxf ncurses-6.3.tar.gz
cd ncurses-6.3
./configure --prefix=/usr/local/ncurses --with-shared
#--with-shared  生成共享库
make
make install

3、添加依赖库软连接

ln -s /usr/local/ncurses/lib/libncurses.so.6 /lib64/libncurses.so.6

 

五、安装mysql8

1、下载二进制包

cd /usr/local/src
wget https://cdn.mysql.com//Downloads/MySQL-8.0/mysql-8.0.33-linux-glibc2.28-x86_64.tar.gz

2、解压

tar zxf mysql-8.0.33-linux-glibc2.28-x86_64.tar.gz -C /usr/local

 3、修改安装目录名称

mv /usr/local/mysql-8.0.33-linux-glibc2.28-x86_64/ /usr/local/mysql

4、创建用户

groupadd mysql
useradd -g mysql mysql -s /sbin/nologin

5、创建数据、日志目录

mkdir /usr/local/mysql/{data,logs}

6、修改权限

chown -R mysql:mysql /usr/local/mysql/{data,logs}

7、根据需求修改配置文件

[mysqld]
port = 3306
server-id = 1
user = mysql
socket = /tmp/mysql.sock
basedir = /usr/local/mysql
datadir = /usr/local/mysql/data
log-bin = mysql-bin
log-error = /usr/local/mysql/logs/error.log
#大小写敏感:默认为0,敏感.
#lower_case_table_names=1
max_connections = 1500
expire_logs_days =7
sql_mode = NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES

 8、配置环境变量

vi /etc/profile.d/mysql.sh
    #添加以下配置
    export PATH=/usr/local/mysql/bin:$PATH

source /etc/profile.d/mysql.sh

9、初始化数据库,启动数据库

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

初始化/启动数据库报错:

  1)、mysqld: /lib64/libstdc++.so.6: version `CXXABI_1.3.11' not found (required by mysqld)

  说明libstdc++.so.6版本未更新成功,检查第一步。

  2)、mysqld: /lib64/libc.so.6: version `GLIBC_2.28' not found (required by mysqld)

  说明glibc升级有问题,检查第三步。

10、登录数据库

mysql -uroot -p

登录数据库报错:

  1)、mysql: error while loading shared libraries: libncurses.so.6: cannot open shared object file: No such file or directory

   解决方法:检查第四步

  2)、 mysql: error while loading shared libraries: libtinfo.so.6: cannot open shared object file: No such file or directory

   解决方法:ln -s /lib64/libtinfo.so.5 /lib64/libtinfo.so.6

11、修改密码

mysql> alter user 'root'@'localhost' identified by '123456';
mysql> flush privileges;

12、开启远程登录

mysql> update mysql.user set host='%' where user='root';
mysql> flush privileges;