mysql—day01-mysql

本文涉及的产品
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 RDS MySQL,高可用系列 2核4GB
简介: MySQL 数据库管理员:

MySQL 数据库管理员:


1.数据管理

增删改查


2.用户管理

grant all on . to all@'%' identified by '123';

1.权限最小化
2.root,运维用户ops,程序连库用户(只读用户,读写用户)

3.集群管理


4.数据备份、恢复

逻辑备份

物理备份

热备

冷备

温备

全备

增备

差异备份

5.监控

进程,端口

集群状态

主从复制 延时情况

SQL读写速率

slowlog


01 什么是数据?


数据(data)是事实或观察的结果,是对客观事物的逻辑归纳,是用于表示客观事物的未经加工的的原始素材。

数据可以是连续的值,比如声音、图像,称为模拟数据。也可以是离散的,如符号、文字,称为数字数据。

在计算机系统中,数据以二进制信息单元0,1的形式表示。


数据的定义: 数据是指对客观事件进行记录并可以鉴别的符号,是对客观事物的性质、状态以及相互关系等进行记载的物理符号或这些物理符号的组合。它是可识别的、抽象的符号。*


数据库管理系统分类


1.RDBMS 关系型数据库

典型代表产品:MySQL,Oracle,Mariadb,MSSQL(SQLserver)


2.NoSQL 非关系型数据库

典型代表产品:Redis,memcache,MongoDB,elasticsearch


MySQL版本选择的潜规则:


5.6:GA 6-12个月 小版本是偶数版

5.7:GA 6-12个月 小版本是偶数版 选择5.7.17版本以上的  (MGR:MySQL自带的高可用功能)

MySQL安装方式


  1. rpm、yum安装
    安装方便、安装速度快,无法定制
  2. 二进制
    不需要安装,解压即可使用,不能定制功能
  3. 编译安装
    3.1 可定制,安装慢
    3.2 四个步骤:
    3.2.1 解压(tar)
    3.2.2 生成(./configure)cmake
    3.2.3 编译(make)
    3.2.4 安装(make install)
    3.3  5.5版本之前:tar ./configure make make install
    3.4  5.5版本之后:cmake gmake
  4. 先编译,然后定制rpm包,制作yum仓库,然后yum安装
    4.1 简单,速度快,可定制,比较复杂,制作时间极长
  5. 企业中选择的安装方式
    5.1 中小型企业:以上方式都可以,运维偏向编译,dba偏向二进制 运维也偏向二进制
    5.2 大型企业:可以选择: 先编译然后定制rpm包,制作yum仓库,然后yum安装


编译安装:
1.解压 tar
2.生成 ./configure cmake gmake
3.编译 make
4.安装 make install

1)下载epel源
[root@db01  ~]# wget -O /etc/yum.repos.d/epel.repo https://mirrors.aliyun.com/repo/epel-7.repo
2)安装依赖
[root@db01  ~]# yum install -y ncurses-devel libaio-devel autoconf cmake gcc gcc-c++ glibc 
[root@mysql  mysql-5.6.40]# useradd mysql -s /sbin/nologin -M 
3)解压MySQL源码包
[root@db01  ~]# tar xf mysql-5.6.40.tar.gz 
4)进入源码包目录
[root@db01  ~]# cd mysql-5.6.40/ 
5)创建目录
[root@db01  ~]# mkdir /application 
6)生成编译文件
[root@db01  mysql-5.6.40]# cmake . -DCMAKE_INSTALL_PREFIX=/application/mysql-5.6.40 
-DMYSQL_DATADIR=/application/mysql-5.6.40/data 
-DMYSQL_UNIX_ADDR=/application/mysql-5.6.40/tmp/mysql.sock 
-DDEFAULT_CHARSET=utf8 
-DDEFAULT_COLLATION=utf8_general_ci 
-DWITH_EXTRA_CHARSETS=all 
-DWITH_INNOBASE_STORAGE_ENGINE=1 
-DWITH_FEDERATED_STORAGE_ENGINE=1 
-DWITH_BLACKHOLE_STORAGE_ENGINE=1 
-DWITHOUT_EXAMPLE_STORAGE_ENGINE=1 
-DWITH_ZLIB=bundled 
-DWITH_SSL=bundled 
-DENABLED_LOCAL_INFILE=1 
-DWITH_EMBEDDED_SERVER=1 
-DENABLE_DOWNLOADS=1 
-DWITH_DEBUG=0
7)编译
[root@db01  mysql-5.6.40]# make 
8)安装
[root@db01  mysql-5.6.40]#  make install 
9)创建mysql用户
[root@db01  mysql-5.6.40]# useradd mysql -s /sbin/nologin -M 
10)做软链接
[root@db01  mysql-5.6.40]# ln -s /application/mysql-5.6.40 /application/mysql 
11)进入其他文件目录
[root@db01  mysql-5.6.40]#  cd /application/mysql/support-files 
12)拷贝MySQL配置文件
[root@db01  support-files]# cp my-default.cnf /etc/my.cnf 
cp: overwrite ‘/etc/my.cnf’? y
13)拷贝启动脚本
[root@db01  support-files]# cp mysql.server /etc/init.d/mysqld 
14)进入初始化目录
[root@db01  support-files]# cd /application/mysql/scripts 
15)初始化MySQL
[root@db01  scripts]# ./mysql_install_db --user=mysql --basedir=/application/mysql --datadir=/application/mysql/data 
16)创建socket文件所在目录
[root@db01  scripts]# mkdir /application/mysql-5.6.40/tmp 
17)授权MySQL服务目录
[root@db01  scripts]# chown -R mysql.mysql /application/mysql* 
18)添加环境变量
[root@db01  scripts]# vim /etc/profile.d/mysql.sh 
export PATH="/application/mysql/bin:$PATH"
19)加载环境变量
[root@db01  scripts]# source /etc/profile 
20)启动MySQL
[root@db01  scripts]# /etc/init.d/mysqld start 
21
/etc/init.d/mysqld stop
21 用systemctl启动
[root@db01  ~]# vim /usr/lib/systemd/system/mysqld.service 
加入
[Unit]
Description=MySQL Server
Documentation=man:mysqld(8)
Documentation=https://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=/application/mysql/bin/mysqld --defaults-file=/etc/my.cnf
LimitNOFILE = 5000

MySQL二进制安装步骤:

1)解压二进制包
[root@db02  ~]# tar xf mysql-5.6.40-linux-glibc2.12-x86_64.tar.gz 
2)创建MySQL安装目录
[root@db02  ~]# mkdir /application 
3)移动MySQL程序到安装目录下
[root@db02  ~]# mv mysql-5.6.40-linux-glibc2.12-x86_64 /application/mysql-5.6.40 
4)做软链接
[root@db02  ~]# ln -s /application/mysql-5.6.40 /application/mysql 
5)进入其他文件目录
[root@db02  ~]# cd /application/mysql/support-files 
6)拷贝配置文件
[root@db02  support-files]# cp my-default.cnf /etc/my.cnf 
cp: overwrite ‘/etc/my.cnf’? y
7)拷贝启动脚本
[root@db02  support-files]# cp mysql.server /etc/init.d/mysqld 
8)进入初始化目录
[root@db02  support-files]# cd ../scripts/ 
9)创建mysql用户
[root@db02  scripts]# useradd mysql -s /sbin/nologin -M 
10)安装初始化依赖
[root@db02  scripts]# yum install -y autoconf libaio-devel 
11)初始化
[root@db02  scripts]# ./mysql_install_db --user=mysql --basedir=/application/mysql --datadir=/application/mysql/data 
12)启动MySQL
[root@db02  scripts]# /etc/init.d/mysqld start 
[root@db02  scripts]# sed -i 's#/usr/local#/application#g' /etc/init.d/mysqld /application/mysql/bin/mysqld_safe 
13)添加环境变量
[root@db02  scripts]# vim /etc/profile.d/mysql.sh 
export PATH="/application/mysql/bin:$PATH"
给MySQL的root用户设置密码
[root@db02  scripts]# mysqladmin -uroot -p password '123' 
连接MySQL
[root@db01  ~]# mysql -uroot -p123 
查看MySQL中所有用户
mysql> select user,host from mysql.user;
删除用户
mysql> drop user root@'db01';
mysql> drop user root@'::1';
mysql> drop user ''@'db01';
mysql> drop user ''@'localhost';
mysql> drop user root@'localhost';
mysql> drop user root@'127.0.0.1';


相关实践学习
如何在云端创建MySQL数据库
开始实验后,系统会自动创建一台自建MySQL的 源数据库 ECS 实例和一台 目标数据库 RDS。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助     相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
相关文章
|
5月前
|
存储 关系型数据库 MySQL
【MySQL技术内幕】1-MySQL体系结构和存储引擎
【MySQL技术内幕】1-MySQL体系结构和存储引擎
42 1
|
SQL 关系型数据库 MySQL
MySQL多数据源笔记1-MySQL主从复制
1.为什么要做主从复制? 1、在业务复杂的系统中,有这么一个情景,有一句sql语句需要锁表,导致暂时不能使用读的服务,那么就很影响运行中的业务,使用主从复制,让主库负责写,从库负责读,这样,即使主库出现了锁表的情景,通过读从库也可以保证业务的正常运作。
1468 0
|
18天前
|
存储 SQL 关系型数据库
Mysql学习笔记(二):数据库命令行代码总结
这篇文章是关于MySQL数据库命令行操作的总结,包括登录、退出、查看时间与版本、数据库和数据表的基本操作(如创建、删除、查看)、数据的增删改查等。它还涉及了如何通过SQL语句进行条件查询、模糊查询、范围查询和限制查询,以及如何进行表结构的修改。这些内容对于初学者来说非常实用,是学习MySQL数据库管理的基础。
77 6
|
16天前
|
存储 关系型数据库 MySQL
Mysql(4)—数据库索引
数据库索引是用于提高数据检索效率的数据结构,类似于书籍中的索引。它允许用户快速找到数据,而无需扫描整个表。MySQL中的索引可以显著提升查询速度,使数据库操作更加高效。索引的发展经历了从无索引、简单索引到B-树、哈希索引、位图索引、全文索引等多个阶段。
50 3
Mysql(4)—数据库索引
|
18天前
|
SQL Ubuntu 关系型数据库
Mysql学习笔记(一):数据库详细介绍以及Navicat简单使用
本文为MySQL学习笔记,介绍了数据库的基本概念,包括行、列、主键等,并解释了C/S和B/S架构以及SQL语言的分类。接着,指导如何在Windows和Ubuntu系统上安装MySQL,并提供了启动、停止和重启服务的命令。文章还涵盖了Navicat的使用,包括安装、登录和新建表格等步骤。最后,介绍了MySQL中的数据类型和字段约束,如主键、外键、非空和唯一等。
57 3
Mysql学习笔记(一):数据库详细介绍以及Navicat简单使用
|
22天前
|
缓存 算法 关系型数据库
Mysql(3)—数据库相关概念及工作原理
数据库是一个以某种有组织的方式存储的数据集合。它通常包括一个或多个不同的主题领域或用途的数据表。
42 5
Mysql(3)—数据库相关概念及工作原理
|
1天前
|
关系型数据库 MySQL Linux
在 CentOS 7 中通过编译源码方式安装 MySQL 数据库的详细步骤,包括准备工作、下载源码、编译安装、配置 MySQL 服务、登录设置等。
本文介绍了在 CentOS 7 中通过编译源码方式安装 MySQL 数据库的详细步骤,包括准备工作、下载源码、编译安装、配置 MySQL 服务、登录设置等。同时,文章还对比了编译源码安装与使用 RPM 包安装的优缺点,帮助读者根据需求选择最合适的方法。通过具体案例,展示了编译源码安装的灵活性和定制性。
11 2
|
4天前
|
存储 关系型数据库 MySQL
MySQL vs. PostgreSQL:选择适合你的开源数据库
在众多开源数据库中,MySQL和PostgreSQL无疑是最受欢迎的两个。它们都有着强大的功能、广泛的社区支持和丰富的生态系统。然而,它们在设计理念、性能特点、功能特性等方面存在着显著的差异。本文将从这三个方面对MySQL和PostgreSQL进行比较,以帮助您选择更适合您需求的开源数据库。
19 4
|
9天前
|
存储 关系型数据库 MySQL
如何在MySQL中创建数据库?
【10月更文挑战第16天】如何在MySQL中创建数据库?