先去官网上下载mysql8的离线安装包
下载地址:https://dev.mysql.com/downloads/mysql/
归档版本:https://downloads.mysql.com/archives/community/
我们选择community server下载,版本此次选择mysql 8.0.43 。
查看glibc版本
ldd --version
直接调用glibc
/lib/x86_64-linux-gnu/libc.so.6 或者 /lib64/libc.so.6
查看到glibc 2.28
# 检查并移除系统自带mariadb和mysql
[root@localhost ~]# rpm -qa | grep mariadb
mariadb-common-10.3.39-1.p02.ky10.x86_64
mariadb-connector-c-3.0.6-9.ky10.x86_64
mariadb-errmessage-10.3.39-1.p02.ky10.x86_64
mariadb-server-10.3.39-1.p02.ky10.x86_64
mariadb-10.3.39-1.p02.ky10.x86_64
[root@localhost ~]# rpm -qa | grep mysql
qt5-qtbase-mysql-5.11.1-20.p01.ky10.x86_64
python2-mysqlclient-1.3.12-8.ky10.x86_64
# 移除
sudo yum remove \
mariadb-server \
mariadb \
mariadb-common \
mariadb-connector-c \
mariadb-errmessage \
-y# 下载压缩包 选择linux generic glibc2.28
wget https://downloads.mysql.com/archives/get/p/23/file/mysql-8.0.43-linux-glibc2.28-x86_64.tar.xz
# 解压
tar xf mysql-8.0.43-linux-glibc2.28-x86_64.tar.xz -C /usr/local
# 创建软连接
ln -s /usr/local/mysql-8.0.43-linux-glibc2.28-x86_64/ /usr/local/mysql
# 创建数据目录及用户
groupadd mysql
useradd -g mysql -s /sbin/nologin mysql
mkdir -p /var/log/mysql
chown -R mysql.mysql /usr/local/mysql
chown -R mysql.mysql /var/log/mysql配置环境变量
echo 'export MYSQL_HOME=/usr/local/mysql' >> /etc/profile
echo 'export PATH=$MYSQL_HOME/bin:$PATH' >> /etc/profile
source /etc/profile修改配置文件
cat > /etc/my.cnf << 'EOF'
[mysqld]
port=3306
basedir=/usr/local/mysql
datadir=/usr/local/mysql/data
socket=/usr/local/mysql/data/mysql.sock
innodb_file_per_table=on
character-set-server=utf8mb4
log-error=/var/log/mysql/mysql.log
pid-file=/usr/local/mysql/data/mysql.pid
[client]
port=3306
socket=/usr/local/mysql/data/mysql.sock
default-character-set=utf8mb4
EOF
chmod 644 /etc/my.cnf执行数据库初始化
/usr/local/mysql/bin/mysqld --defaults-file=/etc/my.cnf --user=mysql --initialize初始化完成后,/var/log/mysql/mysql.log 会自动生成默认 root 密码
也可以使用--initialize-insecure 参数会生成空密码
创建systemd启动文件
cat > /etc/systemd/system/mysql.service << 'EOF'
[Unit]
Description=MySQL Server
Documentation=man:mysqld(8)
Documentation=http://dev.mysql.com/doc/refman/en/using-systemd.html
After=network.target
After=syslog.target
[Install]
WantedBy=multi-user.target
[Service]
User=mysql
Group=mysql
Type=notify
# Disable service start and stop timeout logic of systemd for mysqld service.
TimeoutSec=0
# Execute pre and post scripts as root
PermissionsStartOnly=true
# Start main service
ExecStart=/usr/local/mysql/bin/mysqld $MYSQLD_OPTS
# Use this to switch malloc implementation
EnvironmentFile=-/etc/sysconfig/mysql
# Sets open_files_limit
LimitNOFILE = 10000
Restart=on-failure
RestartPreventExitStatus=1
# Set enviroment variable MYSQLD_PARENT_PID. This is required for restart.
Environment=MYSQLD_PARENT_PID=1
PrivateTmp=false
EOF# 配置生效
systemctl daemon-reload
#启动mysqld服务
systemctl start mysql
#查看mysqld服务状态
systemctl status mysql
#开机启动mysqld服务
systemctl enable mysql修改密码与远程登录
mysql -u root -p
ALTER USER 'root'@'localhost' IDENTIFIED BY '新密码';
CREATE USER 'root'@'%' IDENTIFIED BY '新密码';
GRANT ALL PRIVILEGES ON *.* TO 'root';
flush privileges;