【MySQL】MySQL8安装
1. MySQL8安装
安装环境
- 操作系统:
CentOS7 - MySQL版本:
8.0.28 - 安装方式:
二进制Generic - 软件路径:
/app/database - 数据路径:
/data/3306 - 日志路径:
/binlog/3306
MySQL Community Server 社区版官网下载链接
MySQL :: Download MySQL Community Server (Archived Versions)
2. MySQL三种安装方式
- 源码安装:编译安装,可定制化高,安装难度大时间长,不适合小白,不推荐
rpm包安装:安装简单方便,但仅限rpm系列Linux系统,可定制化不高,生产不推荐- 二进制安装:解压即用,不限平台,官方已编译,可定制,推荐
3. 二进制版本安装
3.1 二进制安装包说明

二进制版本会有三个安装包下载
- Compressed TAR Archive:主要安装包,如果没有特殊要求只下载这个包
- Compressed TAR Archive, Test Suite:测试包,一般用不着
- TAR:包含以上两个包
3.2 MySQL二进制版本软件目录说明
解压后目录如下
drwxr-xr-x. 2 7161 31415 4096 Dec 18 2021 bin # mysql所有可执行程序命令,登陆、备份等等
drwxr-xr-x. 2 7161 31415 55 Dec 18 2021 docs # mysql文档
drwxr-xr-x. 3 7161 31415 4096 Dec 18 2021 include # 依赖库
drwxr-xr-x. 6 7161 31415 201 Dec 18 2021 lib # 函数库
-rw-r--r--. 1 7161 31415 276595 Dec 18 2021 LICENSE
drwxr-xr-x. 4 7161 31415 30 Dec 18 2021 man # 帮助文件
-rw-r--r--. 1 7161 31415 666 Dec 18 2021 README
drwxr-xr-x. 28 7161 31415 4096 Dec 18 2021 share
drwxr-xr-x. 2 7161 31415 77 Dec 18 2021 support-files # 脚本存放目录
3.3 安装前环境准备
3.3.1 检查是否已安装MySQL
# 查看rpm是否有安装
rpm -qa | grep -i mysql # -i 忽略大小写
# 或者
yum list installed | grep mysql
# 查看mysql服务是否在运行
systemctl status mysqld.service
# 卸载mysql
yum remove mysql-xxx mysql-xxx mysql-xxx mysqk-xxxx
# 删除mysql相关文件 慎用!!
find / -name mysql | xargs rm -rf
mv /etc/my.cnd /etc/my.cnd_backup
在安装之前最好检查一下,如果有务必删除干净,包括日志文件和数据文件。
3.3.2 创建MySQL用户和组
useradd -s /sbin/nologin mysql
id mysql
3.3.3 创建主要目录
- 软件目录:存放MySQL软件
- 数据目录:存放MySQL数据,推荐使用端口号作为目录名称
- 日志目录:存放binlog日志,推荐使用端口号作为目录名称
注意:生产环境下软件目录、数据目录、日志目录不要单独存放在一个磁盘下!
mkdir -p /app/database # 软件目录
mkdir -p /data/3306 # 数据目录
mkdir -p /binlog/3306 # 日志目录
设置目录权限给mysql用户
chown -R mysql:mysql /app /data /binlog
3.3.4 下载并解压
注意:千万不要下载到32位的包,一走眼就很容易搞混!一定是glibc2.12-x86_64
wget https://downloads.mysql.com/archives/get/p/23/file/mysql-8.0.28-linux-glibc2.12-x86_64.tar.xz
tar -xf mysql-8.0.28-linux-glibc2.12-x86_64.tar.xz
3.4 安装
3.4.1 设置环境变量
# 做软连接,文件名太长不方便后续设置。不推荐修改文件名,修改了不能很快的知道mysql版本
ln -s mysql-8.0.28-linux-glibc2.12-x86_64/ mysql
# 编辑当前用户环境变量文件
vim ~/.bash_profile
# 新增修改如下内容
MYSQL_HONE=/app/database/mysql
PATH=$PATH:$HOME/bin:$MYSQL_HONE/bin
export PATH
# 让环境变量生效
source ~/.bash_profile
# 验证
# mysql -V
mysql Ver 8.0.28 for Linux on x86_64 (MySQL Community Server - GPL)
3.4.2 初始化系统表
系统表是mysql运行必备的表,不可缺失!本次初始化选择手动设置密码方式
mysqld --initialize-insecure --user=mysql --basedir=/app/database/mysql --datadir=/data/3306
# 参数说明
--initialize-insecure: reate the default database and exit. Create a super userwith empty password.
--initialize:Create the default database and exit. Create a super userwith a random expired password and store it into the log.
# 以上这两参数任选其一,区分就是一个自动生成密码,一个没有密码需要手动设置
--user=name: Run mysqld daemon as user.
--basedir=name: Path to installation directory. All paths are usuallyresolved relative to this
--datadir=name: Path to the database root directory
注意:初始化数据目录一定是空目录!否则初始化失败
3.4.3 设置MySQL配置文件
配置文件路径:/etc/my.cnf
以下配置文件仅供参考!根据实际机器配置来修改具体设置。
[mysqld]
user=mysql
basedir=/app/database/mysql
datadir=/data/3306
server_id=6
socket=/tmp/mysql.sock
bind-address = 0.0.0.0
# connect
max_connections = 1000
max_connect_errors = 200
# charset
character_set_server = utf8mb4
# InnoDB Settings
innodb_buffer_pool_size = 2G
innodb_read_io_threads = 15
innodb_write_io_threads = 15
# innodb_flush_log_at_trx_commit = 0
innodb_buffer_pool_instances = 8
innodb_log_file_size = 1G
innodb_log_buffer_size = 64M
# innodb_flush_method = O_DIRECT
innodb_page_cleaners = 16
# session memory settings
read_buffer_size = 32M
read_rnd_buffer_size = 32M
sort_buffer_size = 64M
tmp_table_size = 64M
join_buffer_size = 128M
thread_cache_size = 64
# slow log
slow_query_log = 1
slow_query_log_file = slow.log
long_query_time = 10
min_examined_row_limit = 100
log-queries-not-using-indexes
log_throttle_queries_not_using_indexes = 10
log_timestamps = system
# log settings
log_error = error.log
# client settings
[mysql]
prompt = (\\u@\\h) [\\d]>\\_
socket=/tmp/mysql.sock
no-auto-rehash
3.4.3 准备MySQL启动脚本
启动脚本存放在support-files目录下的mysql.server,将启动脚本拷贝到/etc/init.d方便运行管理
CentOS7有两种启动方式,一个是init.d,一个是systemctl,这里只用第一种,第二种方式具体参考百度或者官网。
cp mysql.server /etc/init.d/mysqld
3.4.5 启动MySQL
如果没有意外的话,可以启动成功。有一种情况会启动失败,启动脚本中设置的启动路径不在环境变量里,此时需要设置软连接到脚本中对应的路径。
/etc/init.d/mysqld start
3.4.6 验证
# /etc/init.d/mysqld status
SUCCESS! MySQL running (11794)
# mysql
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 1397
Server version: 8.0.28 MySQL Community Server - GPL
Copyright (c) 2000, 2022, Oracle and/or its affiliates.
Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
(root@localhost) [(none)]>
3.5 安装完成后的尾收工作
3.5.1 设置管理员密码
mysqladmin -uroot password "WeiMin@123"
3.5.2 CentOS7设置开机自启动
设置开机自启动的方式有很多,这里用最简单的一种。
注意:
- 开机自启动的前提是启动脚本必须存放在
/etc/init.d目录下!! - 生产环境最好重启验证!!
# 设置开机自启动
chkconfig --add mysqld
# 查看mysqld是否在列表中
chkconfig --list
mysqld 0:off 1:off 2:on 3:on 4:on 5:on 6:off
netconsole 0:off 1:off 2:off 3:off 4:off 5:off 6:off
network 0:off 1:off 2:on 3:on 4:on 5:on 6:off
3.5.3 CentOS7关闭防火墙、关闭开机自启动防火墙
iptables -F
systemctl disable firewalld.service
3.5.4 关闭selinux、修改selinux配置文件永久关闭
setenforce 0
# vim /etc/selinux/config
SELINUX=disabled
3.6 忘记root密码处理办法
—skip-grant-tables:跳过授权表,关闭用户认证—skip-networking:跳过远程登录,只能本地登陆
# 1. 关闭数据库
/etc/init.d/mysqld stop
# 2. 启动数据库到维护模式,并放到后台
mysqld_safe --skip-networking --skip-grant-tables &
# 3. 登陆mysql并修改密码
flush privileges;
alter user root@'localhost' identified by 'Admin@123';
# 4. 关闭数据库,启动验证
/etc/init.d/mysqld stop
mysql -uroot -pAdmin@123
3.7 启动数据库方式
启动有两种方式,不建议使用命令执行!!
- 执行官方提供的启动脚本
- 设置
systemctl脚本
本质上启动脚本执行的是mysqld_safe --datadir=/data/3306 --pid-file=/data/3306/mysql.pid 这条命令,所以手动执行这条命令也可以启动mysql
# ps -ef | grep mysqld
root 6067 1 0 03:18 pts/0 00:00:00 /bin/sh /app/database/mysql/bin/mysqld_safe --datadir=/data/3306 --pid-file=/data/3306/mysql.pid
mysql 6519 6067 1 03:18 pts/0 00:00:01 /app/database/mysql/bin/mysqld --basedir=/app/database/mysql --datadir=/data/3306 --plugin-dir=/app/database/mysql/lib/plugin --user=mysql --log-error=error.log --pid-file=/data/3306/mysql.pid --socket=/tmp/mysql.sock

3.8 关闭数据库方式
有三种方式正常关闭数据库,不建议使用kill来强行关闭数据库(被强奸的感觉)
- 登陆数据,执行
shutdown命令关闭 - 启动脚本关闭,
/etc/init.d/mysqld stop systemctl关闭,前提是设置了脚本,命令和就是服务的关闭命令,没有特别的地方。
【MySQL】MySQL8安装的更多相关文章
- mysql8.0.20安装教程,mysql下载安装教程8.0.20
mysql8.0.20下载安装教程 mysql8.0.20安装教程 mysql安装包+mysql学习视频+mysql面试指南视频教程 下载地址: 链接:https://pan.baidu.com/s ...
- MySQL 的安装与使用(一)
一.Windows 上安装 MySQL 1.Windows 上安装 MySQL 相对来说会较为简单,地那就链接 https://cdn.mysql.com//Downloads/MySQL-8.0/m ...
- Linux学习笔记之MySql的安装(CentOS)
一.移除mariadb 由于CentOS默认安装了mariadb,所以在安装MySql之前先移除mariadb,使用命令:yum remove mariadb-libs.x86_64,如下图所示: 二 ...
- Mysql8安装与配置
网上的教程有很多,基本上大同小异.但是安装软件有时就可能因为一个细节安装失败.我也是综合了很多个教程才安装好的,所以本教程可能也不是普遍适合的. 安装环境:win7 1.下载zip安装包: MySQL ...
- MySQL卸载安装8.0.*
一.卸载 1. 本人安装目录在C盘Program Files文件中(删除MySQL文件夹) 2. 找到C盘Program Data隐藏文件夹中的MySQL并删除(删除提示MySQL在运行的话可以去任务 ...
- MySQL数据库安装配置
1,下载MySQL 打开MySQL的官网www.mysql.com,发现有一个DOWNLOADS 点击它,进入到MySQL的下载页面,在页面的底部有一个MySQL Community Edition, ...
- mysql 编译安装 window篇
传送门 # mysql下载地址 https://www.mysql.com/downloads/ # 找到MySQL Community Edition (GPL) https://dev.mysql ...
- mysql的安装和配置
1.mydql的安装 重装wind7系统之后,mysql软件自动卸载了.现在学习需要使用mysql,还是要安装mysql.我首先通过下载安装包的方式安装,按照教程,但是出现缺失.dll文件,我下载安装 ...
- Windows中压缩版的MySQL的安装、配置
本次笔记是根据mysql-8.0.13-winx64版本编写: 1.将下载的压缩包解压到自己想放的目录 2.右键计算机 -> 属性 -> 高级系统设置 -> 环境变量 -> 系 ...
- mysql 8 安装及更改密码
一 下载ZIP版的安装文件, 二 解压缩至指定的目录,如:d:\mysql8.0 三 在所在目录下,新建mysql.ini文件 [mysql] # 设置mysql客户端默认字符集 default-ch ...
随机推荐
- 《Java并发编程的艺术》读书笔记:一、并发编程的目的与挑战
发现自己有很多读书笔记了,但是一直都是自己闷头背,没有输出,突然想起还有博客圆这么个好平台给我留着位置,可不能荒废了. 此文读的书是<Jvava并发编程的艺术>,方腾飞等著,非常经典的一本 ...
- 【SSM】学习笔记(二)——SpringMVC入门
原视频链接:https://www.bilibili.com/video/BV1Fi4y1S7ix/?p=43&spm_id_from=pageDriver&vd_source=8ae ...
- 京东云开发者|京东云RDS数据迁移常见场景攻略
云时代已经来临,云上很多场景下都需要数据的迁移.备份和流转,各大云厂商也大都提供了自己的迁移工具.本文主要介绍京东云数据库为解决用户数据迁移的常见场景所提供的解决方案. 场景一:数据迁移上云 数据迁移 ...
- 记录在linux上单机elasticsearch8和kibana8
目录 1.背景 2.es对jdk和操作系统的要求等 3.安装步骤 3.1 下载对应版本的es 3.2 创建es账户 3.3 修改es配置 3.3.1 修改es配置 3.3.3 修改jvm配置 3.4 ...
- python进阶(26)collections标准库
前言 这个模块实现了特定目标的容器,以提供Python标准内建容器dict ,list ,set , 和tuple 的替代选择. 这个模块提供了以下几个函数 函数 作用 namedtuple() 创建 ...
- 833(DIV2)——C题题解
题目链接 题目大意: 给定n个数,你可以对数值为0的数改变其为任意值,问最后前缀和为0的个数的最大值. 思路: 这题比较可惜,自己的思路没有问题,但是他少了一些东西.对数组进行前缀和处理,我们可以发现 ...
- day02-实现01
实现01 1.实现任务阶段1 编写mytomcat,该服务器能给浏览器返回"你好,我是服务器!"的简单信息. 根据之前的tomcat框架整体分析,我们将浏览器发送请求,tomcat ...
- Spark通过打jar包形式提交任务
idea构建项目 创建一个maven项目,配置pom依赖,以及scala编译插件. 注意一定要保证,你的scala版本和spark版本和要提交的集群版本一致,要不很多莫名其妙的问题,scala如果你在 ...
- c#对接每人计平台获取数据
使用c#对接到晓舟科技的客流统计设备.那么需要先注册一个平台的账号 地址:http://mrd.meirenji.cn/login;JSESSIONID=323cbd18-29ed-4232-8c04 ...
- .net如何优雅的使用EFCore
EFCore是微软官方的一款ORM框架,主要是用于实体和数据库对象之间的操作.功能非常强大,在老版本的时候叫做EF,后来.net core问世,EFCore也随之问世. 本文我们将用一个控制台项目Ho ...