mysql8.0安装(linux下,二进制安装)

【0】环境

OS:Centos7.8

SF:Mysql8.0+最新版

【1】下载解压

【1.1】下载

官网:https://dev.mysql.com/downloads/mysql/

linux:wget https://cdn.mysql.com//Downloads/MySQL-8.0/mysql-8.0.21-linux-glibc2.17-x86_64-minimal.tar.xz

  mysql8.0安装(linux下,二进制安装)

 

 

 我们这里要一个最小安装版就好了

  mysql8.0安装(linux下,二进制安装)

 

 

那么,我这里实际下载演示的文件的是8.0.20

【1.2】上传|解压|软链接

(1)构造目录上传文件

mkdir /soft
#上传,无论是rz,或者其他客户端工具,或者用的linux下载直接copy/mv,把文件放到/soft 目录下

(2)解压目录

在8.0.16之后使用了xz压缩方式,而不是传统的gz压缩方式,所以解压代码略有不同

#以前的 .gz的压缩表使用 -zxvf,现在 .xz的压缩包使用 -Jxvf
tar
-Jxvf mysql-8.0.20-linux-x86_64-minimal.tar.xz

(3)生成软链接

为了方便后续引用这个目录,给个软链接,方便书写该目录

ln -s mysql-8.0.20-linux-x86_64-minimal mysql

最终效果

  mysql8.0安装(linux下,二进制安装)

 

 

 【2】环境准备(防火墙|SELINUX|环境变量)

【2.1】关闭SELINUX

SELINUX的三种模式:

  enforcing   :- SELinux security policy is enforced.(强制模式,违反SELinux 规则的行为会被阻止且记录到日志中)
  permissive   :- SELinux prints warnings instead of enforcing.(宽容模式,违反SELinux 规则的行为只会记录到日志中,不会被阻止)
  disabled     :- No SELinux policy is loaded.(关闭SELinux)

查看SELinux状态:

1、/usr/sbin/sestatus -v      ##如果SELinux status参数为enabled即为开启状态
SELinux status:                 enabled

2、getenforce                 ##检查当前限制级别

设置完成后,应该如下:  

  mysql8.0安装(linux下,二进制安装)

这里我们,临时修改为宽容模式,再修改配置文件永久关闭

#1、临时关闭(不用重启机器):
   setenforce 0                  ##设置SELinux 成为permissive模式
                     ##setenforce 1 设置SELinux 成为enforcing模式
#2、修改配置文件需要重启机器:

修改/etc/selinux/config 文件
将SELINUX=enforcing改为SELINUX=disabled

设置完成后,文件应该修改如下:

  mysql8.0安装(linux下,二进制安装)

 

 

 【2.2】关闭防火墙

简单搭建就不做防火墙控制了,后续有兴趣大家可以自行百度如何添加mysql到防火墙白名单;

stop firewalld
status firewalld

最终效果如下:

  mysql8.0安装(linux下,二进制安装)

 

 

【2.3】环境变量 

我们因为软件放到这个路径的  /soft/mysql,所以我们加到环境变量里的路径就是  /soft/mysql/bin

echo "export PATH=${PATH}:/soft/mysql/bin"  
echo "export PATH=${PATH}:/soft/mysql/bin">>/etc/profile
source /etc/profile

设置完后,我们看看mysql命令是否可以直接使用了,如下图,就OK了。 

 mysql8.0安装(linux下,二进制安装)

 

 

【3】安装mysql

【3.1】构建账户与目录

(1)构建账户

groupadd mysql
useradd mysql -g mysql -s /sbin/nologin

(2)构建目录/设置权限

mkdir -p /data/mysql/3306
mkdir -p /data/mysql/3306/data
chmod 755 -R /data/mysql
chown -R mysql:mysql /data/mysql
umask 0022 /data/mysql

【3.2】mysql配置文件

vim /etc/my.cnf

[client]
port = 3306
socket = /data/mysql/3306/mysql.sock
default-character-set=utf8mb4

[mysql]
disable-auto-rehash #允许通过TAB键提示
default-character-set = utf8mb4
connect-timeout = 10

[mysqld]
user=mysql
server-id = 3306
port = 3306
socket = /data/mysql/3306/mysql.sock
pid-file = /data/mysql/3306/mysql.pid
basedir = /soft/mysql
datadir = /data/mysql/3306/data
#bind_address = 10.10.10.11
autocommit = 1

default_authentication_plugin=mysql_native_password
character-set-server=utf8mb4
explicit_defaults_for_timestamp=true
lower_case_table_names=1
back_log=103
max_connections=10000
max_connect_errors=100000
table_open_cache=512
external-locking=FALSE
max_allowed_packet=32M
sort_buffer_size=2M
join_buffer_size=2M
thread_cache_size=51
transaction_isolation=READ-COMMITTED
tmp_table_size=96M
max_heap_table_size=96M



###***logs
long_query_time = 10
slow_query_log = 1
slow_query_log_file=/data/mysql/3306/slow.log

#log-warnings = 1
log_error_verbosity=3

log-error = /data/mysql/3306/mysql.err
log_output = FILE #参数log_output指定了慢查询输出的格式,默认为FILE,你可以将它设为TABLE,然后就可以查询mysql架构下的slow_log表了


#log-queries-not-using-indexes
#log-slow-slave-statements
max_binlog_size = 1G
#max_relay_log_size = 1G

# replication
log-bin=/data/mysql/3306/mysql-bin
#server-id=1
#binlog_format= ROW
#gtid_mode = on
#enforce_gtid_consistency = 1
#log_slave_updates   = 1
#master-info-repository=TABLE
#relay-log-info-repository=TABLE

# innodb storage engine parameters
innodb_buffer_pool_size=500M
innodb_data_file_path=ibdata1:100M:autoextend:max:5G #redo
innodb_temp_data_file_path = ibtemp1:100M:autoextend:max:10G
#innodb_file_io_threads=4 #默认的是4
innodb_log_buffer_size=16M
innodb_log_file_size=256M #undo
innodb_log_files_in_group=2
innodb_lock_wait_timeout=50
innodb_file_per_table=1 #独立表空间

【3.3】mysql 初始化

注意,我这里加了 insecure,不会设置初始mysql 密码

mysqld --defaults-file=/etc/my.cnf --datadir=/data/mysql/3306/data --user=mysql  --initialize-insecure --console 

如果没有报错显示在屏幕上,那多半没有问题了,我们进目录看看有没有问题,数据是否生成,详情如下:

  mysql8.0安装(linux下,二进制安装)

 

 

 再看看错误日志文件,mysql.err 中有没有报错

cat mysql.err|grep "\[error\]"

如下图:没有任何输出就没有问题了。

  mysql8.0安装(linux下,二进制安装)

【3.4】启动 mysql 

mysqld_safe --defaults-file=/etc/my.cnf &

  mysql8.0安装(linux下,二进制安装)

 

 核验 mysql 服务是否启动:如下图,就启动成功了

  mysql8.0安装(linux下,二进制安装)

 

 【3.5】登录mysql,修改密码

直接输入 mysql  就可以进去,因为我们没有配置密码,用了 insecure 选项

  mysql8.0安装(linux下,二进制安装)

 

 修改密码为123456

alter user root@localhost identified with mysql_native_password by 123456;
flush privileges;

  mysql8.0安装(linux下,二进制安装)

 

 然后我们重登验证,直接mysql无法登录了,需要密码了

  mysql8.0安装(linux下,二进制安装)

 

mysql8.0安装(linux下,二进制安装)

上一篇:mysql ORDER BY的使用


下一篇:Redis-nosql入门概述(上)