MySQL介绍和安装(一)

1. MySQL学习路线

第一章 介绍及安装
第二章 体系结构和基础管理
第三章 SQL基础
第四章 索引及	执行计划
第五章 存储引擎
第六章 日志管理
第七章 备份与恢复
第八章 主从复制及架构演变
第九章 高可用及读写分离架构
第十章 分布式架构
第十章 全面优化
第十一章 NoSQL-redis/mongodb/ES

搜索引擎数据库排行榜:https://db-engines.com/en/ranking

2. MySQL介绍

2.1 数据形式

数据:文字、图片、视频。。。人类认知的数据表现方式
计算机:二进制、16进制的机器语言
基于数据的重要性和复杂性的不同,我们可能有不同的管理方式。

哪些数据是适合存储到数据库的呢?
重要性比较高的
关系较复杂的数据

2.2 数据库管理系统DBMS

RDBMS: 关系型数据库管理系统
比较适合于,安全级别要求高的数据以及关系较复杂的数据

NoSQL:非关系型数据库管理系统
适合于高性能存取数据,一般是配合RDBMS进行使用的
针对大数据处理分析,分布式架构更加擅长

2.3 数据库管理系统种类

RDBMS  :
MySQL 、Oracle、MSSQL(SQL Server)、PG
 
NoSQL:Not Only SQL-值(key-value):Redis, memcached
文档(document):Mongodb(存放历史订单、流水)、ES(搜索框)

3. MySQL产品线

3.1 MySQL厂家

Oracle:  MySQL官方版
Redhat:  MariaDB
Percona: PerconaDB

3.2 MySQL版本选择

5.6 :20212月份停止更新了。马上退出历史舞台。
5.7 :5.7.31+ 
8.0 :8.0.20+

版本号叫法:
核心系统  5731
边缘系统  8020

3.3 MySQL软件获取

www.mysql.com   ---> downloads 
企业版:Enterprise  , 互联网行业一般不选择.
社区版本:选择,企业使用和学习使用
源码包:source code  .tar.gz,一般看源码的时候看装  

二进制包:

在这里插入图片描述
源码包:
在这里插入图片描述

3.4 MySQL安装方式

通用二进制版: 解压即用(绿色版)
rpm、yum版本: 下载rpm包或者配置yum源
源码包: 编译安装,非常慢

4. MySQL-5.7.28二进制包安装

4.1 环境准备

1) 准备Centos 7.6虚拟机
[root@db01 ~]# hostname -I
10.0.0.61
[root@db01 ~]# hostname
db01

(2) 清理历史环境
[root@db01 ~]# rpm -qa | grep mariadb
mariadb-libs-5.5.68-1.el7.x86_64
mariadb-server-5.5.68-1.el7.x86_64
mariadb-5.5.68-1.el7.x86_64
[root@db01 ~]# yum  remove mariadb-libs.x86_64 -y

(3) 创建用户和组
[root@db01 ~]# useradd mysql -s /sbin/nologin
[root@db01 ~]# id mysql
 uid=1001(mysql) gid=1001(mysql) groups=1001(mysql)
 
(4) 创建相关目录
# 创建软件目录
[root@db01 ~]# mkdir -p /app/database/
# 创建数据目录
[root@db01 ~]# mkdir -p /data/3306/
# 创建日志目录 
[root@db01 ~]# mkdir -p /binlog/3306/ 

(5) 设置权限
[root@db01 ~]# chown -R mysql.mysql /app/ /data/ /binlog/

4.2 上传并解压MySQL软件

[root@db01 ~]# cd /app/database/
[root@db01 database]# tar xf mysql-5.7.30-linux-glibc2.12-x86_64.tar.gz
[root@db01 database]# ln -s mysql-5.7.30-linux-glibc2.12-x86_64 mysql

4.3 设置环境变量

[root@db01 ~]# vim /etc/profile 
#添加以下行: 
export PATH=/app/database/mysql/bin:$PATH
# 生效配置 
[root@db01 ~]# source /etc/profile

4.4 初始化系统库表

提示:rmp包自动完成了初始化操作

# 安装依赖,防止初始化报错
[root@db01 ~]# yum install -y libaio-devel 
# 进行初始化
[root@db01 ~]# mysqld --initialize-insecure --user=mysql --basedir=/app/database/mysql --datadir=/data/3306/

# 缺少libaio-devel依赖,初始化报错:
mysqld: error while loading shared libraries: libaio.so.1: cannot open shared object file: No such file or directory


# 容易报的错误:
[root@db01 ~]# mysqld --initialize-insecure --user=mysql --basedir=/app/database/mysql --datadir=/data/3306/
2022-06-08T14:03:39.492759Z 0 [Warning] TIMESTAMP with implicit DEFAULT value is deprecated. Please use --explicit_defaults_for_timestamp server option (see documentation for more details).
2022-06-08T14:03:39.494239Z 0 [ERROR] --initialize specified but the data directory has files in it. Aborting.
2022-06-08T14:03:39.494260Z 0 [ERROR] Aborting

# 原因+解决:如果第一次初始化报错了,第二次初始化有可能报这个错误
[root@db01 ~]# rm -rf /data/3306/*
[root@db01 ~]# mysqld --initialize-insecure --user=mysql --basedir=/app/database/mysql --datadir=/data/3306/

扩展:

# 5.7之后版本初始化方式
# mysqld --initialize-insecure --user=mysql --basedir=软件路径 --datadir=数据路径1) mysqld --initialize
	 会生成12位的随机临时密码(管理员用户),四种密码复杂度。
	 临时生成密码,只可以用来登录。不能用来管理数据库。第一次登录时将他重置
	 [root@db01 data]# mysql -uroot -p'Uh0*xe(eLw(W'
	  mysql> create database test;
	  ERROR 1820 (HY000): You must reset your password using ALTER USER statement before executing this statement
	  mysql> alter user root@'localhost' identified by '123';
	  mysql> create database test;
      或者这样修改密码:
      [root@db01 data]# mysqladmin -uroot -p password dong@123.com
      # 输入初始化密码
      Enter password: 
	  
(2) mysqld --initialize-insecure
	 管理员密码是空

# 5.7之前版本初始化方式(例如5.6)
# /usr/local/mysql/scripts/mysql_install_db --user=mysql --basedir=软件安装路径  --datadir=数据目录
/usr/local/mysql/scripts/mysql_install_db --user=mysql --basedir=/app/database/mysql  --datadir=/data/3306/

4.5 配置文件设置

[root@db01 ~]# cat > /etc/my.cnf <<EOF
[mysqld]
user=mysql 
basedir=/app/database/mysql 
datadir=/data/3306/ 
server_id=6
port=3306 
socket=/tmp/mysql.sock 
[mysql]
socket=/tmp/mysql.sock
EOF

4.6 准备MySQL启动脚本

[root@m01 ~]# cd /app/database/mysql/support-files/
# 拷贝mysql的启动脚本至系统软件管理目录中
[root@m01 support-files]# cp mysql.server /etc/init.d/mysqld
# centos6
[root@m01 ~]# service mysqld start 
Starting MySQL.Logging to '/data/3306/m01.err'.
 SUCCESS! 
 # centos7
 # 将/etc/init.d/mysqld添加到systemd管理当中
[root@m01 ~]# chkconfig --add mysqld
[root@m01 ~]# service mysqld stop
Shutting down MySQL.. SUCCESS! 
[root@m01 ~]# systemctl start mysqld
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值