第一章 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.注意
进入安全模式后,修改密码后,需要重启,建议给安全模式设置一个密码,保证数据库安全
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。
禁止转载,如需转载请通过简信或评论联系作者。