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
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 【杭电多校比赛记录】2025“钉耙编程”中国大学生算法设计春季联赛(1)