第一章 5.7 数据库安装部署

@[toc]

提示:安装部署流程图

在这里插入图片描述

第一章 MySQL 5.7 安装部署

书籍
https://www.jb51.net/books/618504.html SQL优化最佳实践:构建高效率Oracle数据库的方法与技巧
https://www.jb51.net/books/615884.html 数据库查询优化器的艺术:原理解析与SQL性能
https://www.jb51.net/books/593759.html 数据库系统概论(第5版) (王珊/萨师煊著
https://www.jb51.net/books/593753.html  SQL必知必会(第4版) 中文pdf完整版
https://www.jb51.net/books/590898.html 数据库设计与关系理论 (戴特 著)
https://www.jb51.net/books/620683.html Redis从入门到高可用 分布式实践课程 完整视频教程
官网:https://www.mysql.com
文档:https://dev.mysql.com/doc/refman/8.0/en/connecting-disconnecting.html
文档:https://dev.mysql.com/doc/refman/8.0/en/what-is-mysql.html   
文档:https://dev.mysql.com/doc/refman/8.0/en/features.html
文档:https://dev.mysql.com/doc/refman/5.7/en/mysql-nutshell.html

1.下载(二进制)

2.点击社区版


在这里插入图片描述

3.选择稳定版本


在这里插入图片描述

4.点击社区版本

在这里插入图片描述

5.选择版本

在这里插入图片描述

6.选择5.7版本系列的,二进制版

在这里插入图片描述

7.下载mysql二进制包

在这里插入图片描述
解析页面:
Product Version 产品版本
Operating System 操作系统
OS Version 操作系统版本(32.x/64.x)
Test Suite 测试套件
*, Compressed TAR Archive 以这个后缀名结尾的,是tar包
*, TAR 以这个结尾的包,包含测试安装包和正式安装包

8.点击Download之后,会弹出一个框,让你选择存储安装包的路径

在这里插入图片描述

9.下载完成之后,会出现这么一个包。


在这里插入图片描述

2..MySQL 安装

2.1 版本选择

(1).5.6版本

版本5.6 选择-5.6.38

(2)5.7版本

5.7.20

(3)8.0版本

注意i:

  1. 一般选择官方主流版本:5.6,5.7
  2. GA(稳定发布版)
  3. 6-12月的产品版本

2.2 环境部署

2.1 部署

(1)处理原始环境

1.查询maridb包

rpm -qa |grep mariadb

2.2.卸载mariadb包

yum remove mariadb-libs-5.5.60-1.el7_5.x86_64 -y

(2)创建用户以及相对目录

1.创建用户

useradd -s /sbin/nologin -M mysql 

2.创建上传目录

mkdir -p /server/tools

3.创建安装目录

mkdir -p  /application/mysql

4.数据存放目录

mkdir -p /data/mysql/data

(3)建立新的数据磁盘

1.新增磁盘
2.重启后,查看新增磁盘
mkfs.xfs /dev/sdc
3.查看磁盘UUID
blkid
4.写入开机自启动
vim /etc/fstab 
UUID="b7fde522-aa37-412a-9584-8313a673c5cc" /data xfs defaults 0 0
5.自动挂载
mount -a
6.检查
df -h

(3)安装

1.上传安装包
-rw-r--r--. 1 root root 644869837 Oct  8 08:35 mysql-5.7.26-linux-glibc2.12-x86_64.tar.gz
2.解压安装包
tar xf mysql-5.7.26-linux-glibc2.12-x86_64.tar.gz
3.建立软连接
ln -s mysql-5.7.26-linux-glibc2.12-x86_64 mysql

(4)设置环境变量

1.备份配置文件
cp -a /etc/profile /etc/profile-install-mysql.abk
2.修改全局配置文件
vim /etc/profile
export PATH=/application/mysql/bin:$PATH------软件安装路径
3.生效配置文件
source /etc/profile
4.检查环境变量
mysql -V

(5)授权安装目录以及数据目录

1.授权安装目录
 chown -R mysql.mysql /application/*
2.授权数据目录
 chown -R mysql.mysql /data/application/mysql

(6)解决依赖

1.查询依赖处于那个包

yum search libaio 

2.安装依赖包

yum install libaio-devel.x86_64 -y

3.如何选择依赖包

···
[root@db01 /etc/init.d]# yum search libaio
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
* base: mirrors.aliyun.com
* extras: mirrors.aliyun.com
* updates: mirrors.aliyun.com
=============================== N/S matched: libaio ================================
libaio.i686 : Linux-native asynchronous I/O access library
libaio.x86_64 : Linux-native asynchronous I/O access library
libaio-devel.i686 : Development files for Linux-native asynchronous I/O access
libaio-devel.x86_64 : Development files for Linux-native asynchronous I/O access

注意:下载deverl结尾的,必须存在的

2.2 单实例配置

1.单实例配置文件

cat > /etc/my.cnf <<EOF
[mysqld]
user=mysql                
basedir=/usr/local/mysql   
datadir=/data/mysql/data  
server_id=51
socket=/tmp/mysql.sock    
[mysql]
socket=/tmp/mysql.sock
EOF
注意:
[mysqld]--------------------->服务端
user=mysql                 ###用户
basedir=/usr/local/mysql   ###安装路径
datadir=/data/mysql/data   ###数据路径
server_id=51
socket=/tmp/mysql.sock     ###启动文件
[mysql]----------------------->客户端
socket=/tmp/mysql.sock

2.3 单实例启动文件

2.单实例启动文件

2.1 sys-v 启动模式

1.进入安装路径下找到【mysql.server】
2.随后复制启动文件-到/etc/init.d下,并改名为mysqld
命令:cp mysql.server  /etc/init.d/mysqld

2.2 systemd 启动模式

cat > /etc/systemd/system/mysqld.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
ExecStart=/usr/local/mysql/bin/mysqld --defaults-file=/etc/my.cnf
LimitNOFILE = 5000
EOF
注意:ExecStart=/usr/local/mysql/bin/mysqld --defaults-file=/etc/my.cnf ###安装路径以及配置文件路径

2.3 初始化数据库-版本初始化

2.3.1.版本号-5.7系列

mysqld --initialize-insecure --user=mysql --basedir=/application/mysql --datadir=/data/mysql/data

2.3.2.版本号-5.6系列

mysql_install_db  --user=mysql --basedir=/usr/local/mysql --datadir=/data/mysql/data

2.3.3.参数说明

--initialize-insecur   :没有限制密码程度
mysql_install_db       :初始化命令
--user                 :用户
--basedir              :安装路径
--datadir              :数据路径

2.4 多实例配置

(1)准备多个目录

mkdir -p /data/330{7,8,9}/data

(2)授权

chown -R mysql.mysql /data/*

(3)准备配置文件

1.多实例3307的配置文件

cat > /data/3307/my.cnf <<EOF
[mysqld]
basedir=/application/mysql
datadir=/data/3307/data
socket=/data/3307/mysql.sock
log_error=/data/3307/mysql.log
port=3307
server_id=7
log_bin=/data/3307/mysql-bin
EOF

2.多实例3308的配置文件

cat > /data/3308/my.cnf <<EOF
[mysqld]
basedir=/application/mysql
datadir=/data/3308/data
socket=/data/3308/mysql.sock
log_error=/data/3308/mysql.log
port=3308
server_id=8
log_bin=/data/3308/mysql-bin
EOF

3.多实例3309的配置文件

cat > /data/3309/my.cnf <<EOF
[mysqld]
basedir=/application/mysql
datadir=/data/3309/data
socket=/data/3309/mysql.sock
log_error=/data/3309/mysql.log
port=3309
server_id=9
log_bin=/data/3309/mysql-bin
EOF

(4)多实例初始化

1.移除单实例文件

mv /etc/my.cnf /etc/my.cnf.bak

2.初始化三套数据库

1.初始化模板
mysqld --initialize-insecure 
--user=用户
--datadir=数据目录
--basedir=安装目录
2.命令初始化
mysqld --initialize-insecure  --user=mysql --datadir=/data/3307/data --basedir=/application/mysql
mysqld --initialize-insecure  --user=mysql --datadir=/data/3308/data --basedir=/application/mysql
mysqld --initialize-insecure  --user=mysql --datadir=/data/3309/data --basedir=/application/mysql

2.5 多实例启动文件

1.systemd 启动模式

1.2.移动到systemd路径

cd /etc/systemd/system

1.3.配置多实例启动文件

cp mysqld.service mysqld3307.service
cp mysqld.service mysqld3308.service
cp mysqld.service mysqld3309.service

1.4.修改启动文件内容

1.修改启动文件内容
# 修改为:
ExecStart=/application/mysql/bin/mysqld  --defaults-file=/data/3307/my.cnf
vim mysqld3308.service
# 修改为:
ExecStart=/application/mysql/bin/mysqld  --defaults-file=/data/3308/my.cnf
vim mysqld3309.service
# 修改为:
ExecStart=/application/mysql/bin/mysqld  --defaults-file=/data/3309/my.cnf

2.4.检查多实例启动文件

1.检查3309实例
grep "ExecStart" mysqld3309.service
ExecStart=/application/mysql/bin/mysqld --defaults-file=/data/3309/my.cnf
2.检查3309实例
grep "ExecStart" mysqld3308.service
ExecStart=/application/mysql/bin/mysqld --defaults-file=/data/3308/my.cnf
3.检查3309实例
grep "ExecStart" mysqld3307.service
ExecStart=/application/mysql/bin/mysqld --defaults-file=/data/3307/my.cnf

3.Mysql基础管理

3.1启动/状态检查/关闭

3.1.1单实例启动命令

(1) sys-v 启动模式

1.启动
/etc/init.d/mysqld start
2.检查状态
/etc/init.d/mysqld status
3.重启
/etc/init.d/mysqld restart
4.停止
/etc/init.d/mysqld stop

(2)systemd 启动模式

1.启动
systemcatl start mysqld
2.检查状态
systemctl status mysqld
3.重启
systemctl restart mysqld
4.停止
systemctl stop mysqld

3.1.2 多实例启动命令

提示: 启动多实例需要删除或者重名 -单实例配置文件-my.cnf,要不然会造成冲突。

(1) sys-v 启动模式

1.启动
需要自行编写脚本,

(2)systemd 启动模式

1.启动
systemcatl start mysqld3307
systemcatl start mysqld3308
systemcatl start mysqld3309
2.检查状态
systemcatl status mysqld3307
systemcatl status mysqld3308
systemcatl status mysqld3309
3.重启
systemcatl restart mysqld3307
systemcatl restart mysqld3308
systemcatl restart mysqld3309
4.停止
systemcatl stop mysqld3307
systemcatl stop mysqld3308
systemcatl stop mysqld3309

3.1.3 检查启动

1.单实例

1.直接登陆方式
mysql -uroot -p
2.命令方式
mysqladmin ping -p
3.查看端口
netstart -lntup|grep306
4.其他

2.多实例

netstat -lnp|grep 330
mysql -S /data/3307/mysql.sock -e "select @@server_id"
mysql -S /data/3308/mysql.sock -e "select @@server_id"
mysql -S /data/3309/mysql.sock -e "select @@server_id"

3.2 设置初始密码

3.2.1 单实例初始密码

1.命令

mysqladmin -uroot -p password 123

2.参数说明

mysqladmin :命令
-u        : 用户
-p【小写】   : 原始密码
-P【大写】  :指定不同实例端口
password   : 新式密码

3.内部修改命令(5.7)

1.版本系列-5.7
mysql> alter user root@localhost identified by '456';
mysql> desc mysql.user;
mysql> select user,host ,authentication_string from mysql.user;
2.版本系列-5.6
mysql> select user,host ,password from mysql.user;

3.2.1 多实例

1.命令

mysqladmin -uroot password '123' -S /data/3306/mysql.sock

2.参数说明

mysqladmin :命令
-u        : 用户
-p         : 原始密码
-S        : 指定实例文件
password   : 新式密码

3.内部修改命令(5.7)

1.版本系列-5.7
mysql> alter user root@localhost identified by '456';
mysql> desc mysql.user;
mysql> select user,host ,authentication_string from mysql.user;
2.版本系列-5.6
mysql> select user,host ,password from mysql.user;

3.3 项目案例

1.管理员忘记密码【单实例】

(1) 关闭数据库

systemctl stop mysqld

(2) 启动到"安全模式"

mysqld --skip-grant-tables --skip-networking &

(3) 刷新授权表,

flush privileges;

(4)改密码

alter user root@'localhost' identified by '1';

(5) 正常启动数据

pkill mysqld
systemctl start mysqld

2.管理员忘记密码【多实例】

(1) 关闭数据库

1.关闭所有数据库
pkill mysqld 
2.关闭指定修改数据库
systemctl stop mysqlXXX

(2) 启动到"安全模式"

mysqld --skip-grant-tables --skip-networking --defaults-file=/data/3307/my.cnf &

(3) 刷新授权表,

flush privileges;

(4)改密码

1.本地登陆密码
alter user root@'localhost' identified by '1';
2.远程登陆密码
alter user root@'10.0.1.%' identified by '1';

(5) 正常启动数据

1.关闭数据库
pkill mysqld
2.启动数据库
systemctl start mysqld
3.注意
进入安全模式后,修改密码后,需要重启,建议给安全模式设置一个密码,保证数据库安全

1';


(5) 正常启动数据

pkill mysqld
systemctl start mysqld

2.管理员忘记密码【多实例】

(1) 关闭数据库

1.关闭所有数据库
pkill mysqld 
2.关闭指定修改数据库
systemctl stop mysqlXXX

(2) 启动到"安全模式"

mysqld --skip-grant-tables --skip-networking --defaults-file=/data/3307/my.cnf &

(3) 刷新授权表,

flush privileges;

(4)改密码

1.本地登陆密码
alter user root@'localhost' identified by '1';
2.远程登陆密码
alter user root@'10.0.1.%' identified by '1';

(5) 正常启动数据

1.关闭数据库
pkill mysqld
2.启动数据库
systemctl start mysqld
3.注意
进入安全模式后,修改密码后,需要重启,建议给安全模式设置一个密码,保证数据库安全
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
禁止转载,如需转载请通过简信或评论联系作者。
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 206,839评论 6 482
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 88,543评论 2 382
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 153,116评论 0 344
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 55,371评论 1 279
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 64,384评论 5 374
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 49,111评论 1 285
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,416评论 3 400
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,053评论 0 259
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 43,558评论 1 300
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,007评论 2 325
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,117评论 1 334
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,756评论 4 324
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,324评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,315评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,539评论 1 262
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,578评论 2 355
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,877评论 2 345