以mysql-8.0.32版本为例,将 mysql-8.0.32-linux-glibc2.12-x86_64.tar.xz 、my.cnf上传至/opt/software目录。
安装文件百度网盘下载地址:
mysql-8.0.32:https://pan.baidu.com/s/1gtPYEa2aT0V2-1Q3-KKxlQ
mysql-8.0.35:https://pan.baidu.com/s/1t6WlPVOvIQmnYFsBljHvVw
配置文件my.cnf:https://pan.baidu.com/s/15zyxx-XZWw8JcS6XUz-X6Q
提取码:8206
如果服务器可以访问网络可以通过wget下载,以下地址是阿里开源镜像下载对应版本
//wget方式命令示例:
wget https://mirrors.aliyun.com/mysql/MySQL-8.0/mysql-8.0.27-1.el7.x86_64.rpm-bundle.tar?spm=a2c6h.25603864.0.0.297d70b2wQNs1G
根据系统最大分区规划数据文件目录
数据文件目录:/data/mysql/mysql3306
软件安装目录:/data/app/mysql
检查是否存在系统自带mysql、mariaDB,若存在,则需要先卸载。
[root@CentOS7-0003 ~]# rpm -qa | grep mariadb
mariadb-libs-5.5.64-1.el7.x86_64
[root@CentOS7-0003 ~]# sudo rpm -e mariadb-libs --nodeps
[root@CentOS7-0003 ~]# rpm -qa | grep mariadb
[root@CentOS7-0003 ~]# rpm -qa | grep mysql
1.4、yum源配置
若网络源不可用,则需要挂载镜像,配置本地yum源。
yum源配置参考:Linux系统Yum配置
[root@CentOS7-0003 ~]# yum -y install gcc gcc-c++ glibc glibc-devel libgcc libstdc++ libstdc++-devel libaio libaio-devel make sysstat dos2unix nfs-utils vim unzip zip openssh-clients telnet numactl libnl libnl-devel libnfnetlink
// limits.conf 添加如下配置
[root@CentOS7-0003 ~]# vim /etc/security/limits.conf
mysql soft nproc 16384
mysql hard nproc 16384
mysql soft nofile 65536
mysql hard nofile 65536
mysql soft stack 1024000
mysql hard stack 1024000// sysctl.conf添加如下配置
[root@CentOS7-0003 ~]# vim /etc/sysctl.conf
vm.swappiness = 5
// 关闭防火墙
$ systemctl stop firewalld
$ systemctl disable firewalld
//关闭selinux,修改配置如下(原配置为SELINUX=enforcing)
[root@CentOS7-0003 ~]# vim /etc/selinux/config
SELINUX=disabled
//路径及相关内存参数按实际情况调整。
[root@CentOS7-0003 ~]# cp /opt/software/my.cnf /etc
[root@CentOS7-0003 ~]# groupadd mysql
[root@CentOS7-0003 ~]# useradd -r -g mysql -s /bin/false mysql
[root@CentOS7-0003 ~]# echo 'export PATH=$PATH:/usr/local/mysql/bin' >> /root/.bash_profile
[root@CentOS7-0003 ~]# source /root/.bash_profile
[root@CentOS7-0003 ~]# mkdir -p /data/app/mysql
[root@CentOS7-0003 ~]# mkdir -p /data/mysql/mysql3306/{data,log,tmp}
[root@CentOS7-0003 ~]# mkdir -p /data/mysql/mysql3306/log/{relaylog,binlog}
[root@CentOS7-0003 ~]# chown -R mysql:mysql /data/mysql/mysql3306
[root@CentOS7-0003 ~]# cd /opt/software
[root@CentOS7-0003 software]# tar -xvf mysql-8.0.32-linux-glibc2.12-x86_64.tar.xz -C /data/app/mysql[root@CentOS7-0003 software]# cd /usr/local/
[root@CentOS7-0003 local]# ln -s /data/app/mysql/mysql-8.0.32-linux-glibc2.12-x86_64 mysql
[root@CentOS7-0003 local]# mysqld --initialize --user=mysql
// 记录临时密码,第一个问号后面串就是初始化密码。bFe*#(!r82sg[root@CentOS7-0003 local]# cat /data/mysql/mysql3306/log/error.log | grep password
[root@CentOS7-0003 local]# cd /usr/local/mysql
[root@CentOS7-0003 local]# cp support-files/mysql.server /etc/init.d/mysql
// 修改启动脚本,设置数据库目录、数据库目录,pid目录
[root@CentOS7-0003 local]# vim /etc/init.d/mysql
basedir=/usr/local/mysql
datadir=/data/mysql/mysql3306/data
mysqld_pid_file_path=/data/mysql/mysql3306/data/mysql.pid
// 在$bindir/mysqld_safe 后面添加,注意 --defaults-file 要放在第一个
--defaults-file=/etc/my.cnf
[root@CentOS7-0003 local]# /etc/init.d/mysql start
[root@CentOS7-0003 local]# mysql -uroot -p --用初始化时记录的临时密码登录(见2.8)
SQL> alter user 'root'@'localhost' identified by 'Aa@123';
Query OK, 0 rows affected (0.04 sec)SQL> flush privileges;
Query OK, 0 rows affected (0.01 sec)SQL> exit;
//设置root用户可以通过远程链接,如果需要使用链接工具链接,就需要设置,看个人需要。8.0以上版本不支持创建用户和授权一起执行,需要分开。
[root@CentOS7-0003 local]# mysql -uroot -p
SQL> CREATE USER 'root'@'%' IDENTIFIED BY 'Aa@123';
Query OK, 0 rows affected (0.05 sec)SQL> GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' WITH GRANT OPTION;
Query OK, 0 rows affected (0.03 sec)SQL> FLUSH PRIVILEGES;
Query OK, 0 rows affected (0.03 sec)//验证远程登录
mysql -uroot -p -h