操作系统: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;
标签:MySQL8,make,glibc2.28,二进制,usr,so.6,mysql,--,local From: https://www.cnblogs.com/NanZhiHan/p/17488337.html