MySQL8(glibc2.28)二进制安装

操作系统: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

 

在升级glibc后可能出现问题:yum Error:rpmdb open failed 

解决办法:

mkdir /root/backups.rpm
cp -a /var/lib/rpm/ /root/backups.rpm
rm -f /var/lib/rpm/__db*
db_verify /var/lib/rpm/Packages
rpm --rebuilddb
yum clean all

 

 四、升级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                                              #用于MySQL主从复制,每个MySQL实例中必须有唯一的id值
user = mysql                                               #指定运行用户
socket = /tmp/mysql.sock                                   #指定mysql的sock文件地址
basedir = /usr/local/mysql                                 #指定mysql家目录
datadir = /usr/local/mysql/data                            #指定mysql数据目录
lower_case_table_names=1                                   #大小写敏感:默认为0:敏感,1:不敏感.
max_connections = 1500                                     #设置mysql最大连接数
sql_mode = NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES      #STRICT_TRANS_TABLES:事务表执行严格模式,NO_ENGINE_SUBSTITUTION:存储引擎不可用,侧抛出错误。
character-set-server = utf8mb4                             #设置数据库默认字符集
log-bin = mysql-bin                                        #配置binlog日志文件名称,关闭binlog则配置skip-log-bin
expire_logs_days = 7                                       #设置binlog日志保存时间。
log-error = /usr/local/mysql/logs/error.log                #开启错误日志并配置日志地址
general_log = 1                                            #开启查询日志,记录select、insert、update、delete等语句。
general_log_file = /usr/local/mysql/logs/general.log       #配置查询日志地址
slow_query_log = 1                                         #开启慢查询日志
slow_query_log_file = /usr/local/mysql/logs/slow-query.log #配置慢查询日志地址
long_query_time = 1                                        #配置慢查询时间,单位是秒。
innodb_log_group_home_dir = /usr/local/mysql/logs/         #开启事务日志并配置文件目录,默认是在数据目录下的ib_logfile*文件,如果配置默认,就设置文件大小项则开启事务日志。
innodb_log_file_size = 100M                                #设置事务日志文件大小
relay_log = /usr/local/mysql/logs/relay-log                #开启中继日志并设置中继日志数据文件地址
relay_log_info_file = /usr/local/mysql/logs/relay-log.info #设置中继日志信息文件地址
relay_log_index = /usr/local/mysql/logs/relay-log.index    #设置中继日志的索引信息文件地址
innodb_print_all_deadlocks = 1                             #启用慢事务日志,启用后会在错误日志中打印关于死锁的信息。
default-time-zone='+08.00'                               #配置时区
[client]
socket = /tmp/mysql.sock

 

 

 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;

 

13、创建用户

mysql> CREATE USER 'test'@'%' IDENTIFIED BY '123456';
mysql> flush privileges;

 

14、授权新用户

mysql> GRANT ALL PRIVILEGES ON *.* TO 'test'@'%';
mysql> flush privileges;

 

15、配置systemd管理脚本

  vim /usr/lib/systemd/system/mysqld.service

[Unit]
Description=MySQL8

[Service]
Type=simple
ExecStart=/usr/local/mysql/bin/mysqld_safe --defaults-file=/etc/my.cnf

[Install]
WantedBy=multi-user.target

 

16、使用systemd管理数据库和开启开机启动

killall mysqld
systemctl start mysqld systemctl enable mysqld
systemctl status mysqld

 

posted @ 2023-06-18 23:28  难止汗  阅读(2639)  评论(0编辑  收藏  举报