@[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:
- 一般选择官方主流版本:5.6,5.7
- GA(稳定发布版)
- 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.注意 进入安全模式后,修改密码后,需要重启,建议给安全模式设置一个密码,保证数据库安全