在服务器上安装 Mysql8 , 需要先将安装包在外网下载后拷贝到内网,有两种方式最常用
https://downloads.mysql.com/archives/community/
解压
tar xvf mysql-8.0.32-1.el8.x86_64.rpm-bundle.tar
安装 rpm 包
rpm -ivh mysql-community-common-8.0.32-1.el8.x86_64.rpm
rpm -ivh mysql-community-client-plugins-8.0.32-1.el8.x86_64.rpm
rpm -ivh mysql-community-libs-8.0.32-1.el8.x86_64.rpm
rpm -ivh mysql-community-client-8.0.32-1.el8.x86_64.rpm
rpm -ivh mysql-community-icu-data-files-8.0.32-1.el8.x86_64.rpm
rpm -ivh mysql-community-server-8.0.32-1.el8.x86_64.rpm
创建用户组和用户
groupadd mysql
useradd -g mysql mysql
初始化 Mysql
mysqld --initialize --console
修改权限
chown -R mysql:mysql /var/lib/mysql/
启动 mysql
systemctl start mysqld
查看初始密码
cat /var/log/mysqld.log | grep localhost
登陆 mysql ,使用刚查看的初始密码
mysql -uroot -p
修改密码复杂度
set global validate_password_policy=LOW;
set global validate_password_length=6;
查看密码复杂度是否修改成功
SHOW VARIABLES LIKE 'validate_password%';
修改密码
ALTER USER 'root'@'localhost' IDENTIFIED BY '123456';
flush privileges;
开启远程访问
grant all privileges on *.* to 'root'@'%' identified by '123456' with grant option;
flush privileges;
https://downloads.mysql.com/archives/community/
解压
tar xvf mysql-8.0.32-linux-glibc2.12-x86_64.tar.xz -C /usr/local
重命名文件夹
cd /usr/local/
mv mysql-8.0.32-linux-glibc2.12-x86_64 mysql8
创建用户组和用户
groupadd mysql
useradd -g mysql mysql
创建 data 数据存储目录
mkdir -p /usr/local/mysql8/data
授权用户
chown -R mysql.mysql /usr/local/mysql8/
初始化数据库 , 记住初始密码
cd /usr/local/mysql8/bin
./mysqld --user=mysql --basedir=/opt/mysql/mysql8 --datadir=/opt/mysql/mysql8/data/ --initialize --lower-case-table-names=1
添加服务
cp -a ./support-files/mysql.server /etc/init.d/mysql
chmod +x /etc/init.d/mysql
chkconfig --add mysql
ln -s /usr/local/mysql8/bin/mysql /usr/bin
新建文件 my.cnf
vim /etc/my.cnf
[mysqld]
#设置 mysql 的安装目录
basedir=/usr/local/mysql8/
#设置 mysql 数据库的数据的存放目录
datadir=/usr/local/mysql8/data
# 设置客户端默认字符集
character-set-server=utf8mb4
# 创建新表时将使用的默认存储引擎
default-storage-engine=INNODB
# 设置是否区分大小写
lower_case_table_names=1
# 默认使用 mysql_native_password 插件认证
default_authentication_plugin=mysql_native_password
# 注释 mysqld_safe 下的所有配置 系统会输出到 datadir 目录下
#[mysqld_safe]
#log-error=/var/log/mysqld.log
#pid-file=/var/run/mysqld/mysqld.pid
启动数据库服务
services mysql start
登录 mysql 并修改密码
mysql -uroot -p
# 修改密码
alter user 'root'@'localhost' identified by '123456';
# 刷新权限
flush privileges;
开启远程访问
grant all privileges on *.* to 'root'@'%' identified by '123456' with grant option;
flush privileges;
Linux 通用包安装过程中出现环境缺失问题,由于是内网,所以需要先将环境依赖包拷贝到内网中
/lib64/libc.so.6: version `GLIBC_XXX` not found
需要升级 glibc 到 2.28 版本,但升级过程中又出现错误
These critical programs are missing or too old: make bison compiler
Check the INSTALL file for required versions.
需要升级 gcc 和 make ,同时挂载 yum 源
注: 之前在网上查找解决方案将 gcc 升级到了 11.2.0 还是失败,原因是 gcc11.2.0 版本太高,无法编译 glibc2.28, 需要安装 gcc8.2.0
文末是网上找的 gcc 卸载教程
下载 iso 镜像并上传到服务器中
https://mirrors.aliyun.com/centos/
挂载镜像
mount CentOS-7-x86_64-DVD-1810.iso /mnt/
新建 repo 文件
mv /etc/yum.repos.d /etc/yum.repos.d.bak
mkdir /etc/yum.repos.d
cd /etc/yum.repos.d
vim media.repo
[yum]
name=CentOS7
baseurl=file:///mnt
enabled=1
gpgcheck=1
gpgkey=file:///mnt/RPM-GPG-KEY-CentOS-7
重新加载 yum 源
yum clean all
下载 gcc 安装包
https://mirrors.tuna.tsinghua.edu.cn/gnu/gcc/gcc-8.2.0/gcc-8.2.0.tar.gz
解压
tar -zvxf gcc-8.2.0.tar.gz -C /usr/local
查看所需依赖及版本信息
cd /usr/local/gcc-8.2.0
vim ./contrib/download_prerequisites
下载这四个依赖包
http://www.mirrorservice.org/sites/sourceware.org/pub/gcc/infrastructure/
下载完成后将依赖包放在指定目录下并解压
cd /usr/local/gcc-8.2.0
tar -xf gmp-6.1.0.tar.bz2
tar -xf mpfr-3.1.4.tar.bz2
tar -xf mpc-1.0.3.tar.gz
tar -xf isl-0.18.tar.bz2
建立软连接
ln -sf gmp-6.1.0 gmp
ln -sf mpfr-3.1.4 mpfr
ln -sf mpc-1.0.3 mpc
ln -sf isl-0.18 isl
安装 gcc , 大约需要两个小时
mkdir build
cd build
../configure --prefix=/usr/local/gcc-8.2.0 --enable-bootstrap --enable-checking=release --enable-languages=c,c++ --disable-multilib
make -j 2
make install
更新软连接
yum -y remove gcc g++
ln -s /usr/local/gcc-8.2.0/bin/gcc /usr/bin/gcc
ln -s /usr/local/gcc-8.2.0/bin/g++ /usr/bin/g++
查看版本号
gcc -v
g++ -v
下载 make 安装包
http://ftp.gnu.org/gnu/make/
解压
tar -xzvf make-4.2.tar.gz
安装 make
cd make-4.2
./configure
make
make install
更新软连接
rm -rf /usr/bin/make
cp ./make /usr/bin/
查看版本号
make -v
下载 glibc 安装包
https://mirror.bjtu.edu.cn/gnu/libc/
解压
tar -xf glibc-2.28.tar.xz -C /usr/local
安装 glibc , 大约需要半个小时
cd /usr/local/glibc-2.28/
mkdir build
cd build/
yum install -y bison
../configure --prefix=/usr --disable-profile --enable-add-ons --with-headers=/usr/include --with-binutils=/usr/bin
make -j 2
make install
查看是否包含 GLIBC_XXX 版本
strings /usr/lib64/libstdc++.so.6 | grep GLIBC
下载高版本动态库 libstdc++.so.6.0.26
该博主提供免费下载链接【 https://blog.csdn.net/weixin_43227196/article/details/110946066 】
新建软连接
cd /usr/lib64
mv libstdc++.so.6 libstdc++.so.6.bak
ln -s libstdc++.so.6.0.26 libstdc++.so.6
查看是否包含 GLIBC_XXX 版本
strings /usr/lib64/libstdc++.so.6 | grep GLIBC
通过编译源码的方式安装之后,卸载是比较麻烦的,需要手动删除安装的每个文件。如果在编译时,通过 ../configure --prefix=XXXX
指定了安装目录比较简单,直接删除那一整个目录即可。没有指定直接安装在默认目录 /usr/local 下,需要使用特殊方法。
1.重新编译源码,但这次需要加上指定目录,比如使用临时目录 /tmp/gcc
../configure --prefix=/tmp/gcc --enable-bootstrap --enable-checking=release --enable-languages=c,c++ --disable-multilib
2.通过遍历这个临时目录下的文件,删除对应在/usr/local下的文件
find /tmp/gcc -type f | sed -e s,/tmp/gcc,, | (while read F; do rm -f "$F"; done)
3.遍历临时目录下的目录,并删除对应的空目录
find /tmp/gcc -depth -type d -not -empty | sed -e s,/tmp/gcc,, | (while read F; do rmdir -p --ignore-fail-on-non-empty "$F"; done)