IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 大数据 -> 认识mysql -> 正文阅读

[大数据]认识mysql

(一)数据库的基本概念



1.1、数据(Data)

  1. 描述事物的符号标记
  2. 包括数字,文字,图形,图像,声音,档案记录等
  3. 以“记录”形式按统一的格式进行存储



1.2、表

  1. 将不同的记录组织在一起
  2. 用来存储具体的数据



1.3、数据库

  1. 表的集合,是存储数据的仓库
  2. 以一定的组织方式存储的相互有管的数据集合

1.4、数据管理系统(DBMS)

  1. 是实现对数据路资源有效组织,管理和存取的系统软件
    数据库的建立和维护功能,数据定义功能,数据操作功能,数据库的运行管理功能,通信功能



1.5、数据库系统

  1. 是一个人机系统,有硬件,OS,数据库,DBMS,应用软件和数据库用户组成
  2. 用户可以通过DBMS或应用程序操作数据库


二、当今主流数据库介绍



(一)SQL Server(微软公司产品)

——面向WIndows操作系统
——简单、易用


(二)Oracle(甲骨文公司产品)

——面向所有主流平台
——安全、完善、操作复杂



(三)DB2(IBM公司产品)

——面向所有主流平台
——大型、安全、完善



(四)MySQL(甲骨文公司收购)

——免费、开源、体积小



三、数据库类型



(一)关系数据库

1、关系数据库系统是基于关系模型的数据库系统
2、关系模型的数据结构使用简单易懂的二维数据表
3、关系模型可用简单的”实体关系”(E-R)图来表示
4、E-R图中包含了实体 (数据对象) 、关系和属性三个要素
5、实体
——也称为实例,对应现实世界中可区别于其他对象的 “事件” 或 “事物”
——如银行客户、银行账户等
6、属性
——实体所具有的某一特性, 一个实体可以有多个属性
——如"银行客户”实体集中的每个实体均具有姓名、住址、电话等属性
7、联系
——实体集之间的对应关系称为联系,也称为关系
——如银行客户和银行账户之间存在“储蓄”的关系
8、所有实体及实体之间联系的集合构成一个关系数据库
9、关系数据库应用
——关系型数据库:Oracle,、MySQL、SQL Server、Sybase、Informix、access、DB2、 FoxPRO
——应用举例:12306用户信息系统、淘宝账号系统、联通手机号信息系统、银行用户账号系统、网站用户信息系统



(二)非关系数据库介绍

1、非关系数据库也被称作NoSQL (Not Only SQL)
2、存储数据不以关系模型为依据,不需要固定的表格式
3、非关系型数据库的优点
——数据库可高并发读写
——对海量数据高效率存储与访问
——数据库具有高扩展性与高可用性
4、常用的非关系数据库:Redis、mongoDB等



四、MySQL数据库介绍

1、一款深受欢迎的开源关系型数据库;
2、Oracle旗下的产品
3、遵守GPL协议,可以免费使用与修改
4、特点
——性能卓越、服务稳定
——开源、无版权限制、成本低
——多线程、多用户
——基于C/S (客户端/服务器)架构
——安全可靠

安装 mysql

[root@localhost ~]#yum install mariadb-server -y
[root@localhost ~]#systemctl start mariadb.service

[root@localhost ~]#mysql
[root@localhost ~]#mysql_secure_installation 






[root@centos7 ~]#tee /etc/yum.repos.d/mysql.repo <<EOF
[mysql]
name=mysql5.7
baseurl=https://mirrors.tuna.tsinghua.edu.cn/mysql/yum/mysql-5.7-community-el7-x86_64/
gpgcheck=0
EOF

[root@centos7 ~]#yum -y install mysql-community-server


[root@localhost yum.repos.d]# systemctl start mysqld
[root@localhost yum.repos.d]# ss -ntap |grep 3306

登录

[root@localhost yum.repos.d]# mysql -u root -p     
Enter password: 
ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: NO)

[root@centos7 ~]#grep password /var/log/mysqld.log
[root@localhost yum.repos.d]# mysql -u root -p'+8saq%5+ljzG'   #特殊符号用单引号引起来

#查看日志 可以找到密码  



mysql> status      #改密码
ERROR 1820 (HY000): You must reset your password using ALTER USER statement before executing this statement.

mysql> alter user root@'localhost' identified by 'Ky15@2021';         #新密码





mysql> \h
#查看帮助
mysql> \h, help
mysql> \u,use
mysql> \s,status
mysql> \!,system

调用系统命令

mysql> system hostname
localhost.localdomain
#可以直接使用系统命令
#source 可以调用脚本

?

MySQL 命令

mysql [OPTIONS] [database]
命令格式


-A, --no-auto-rehash 禁止补全
-u, --user= 用户名,默认为root
-h, --host= 服务器主机,默认为localhost
-p, --passowrd= 用户密码,建议使用-p,默认为空密码
-P, --port= 服务器端口
-S, --socket= 指定连接socket文件路径
-D, --database= 指定默认数据库
-C, --compress 启用压缩
-e ? "SQL" 执行SQL命令
-V, --version 显示版本
-v ?--verbose 显示详细信息
--print-defaults 获取程序默认使用的配置

#查看mysql版本
[root@centos7 ~]#mysql -V




#默认空密码登录
mysql ?-uroot ?-p

mysql>use mysql #切换数据库
mysql> select database(); ? ? ? ? ? ? ? ? ? #查看当前数据库
mysql>select user(); #查看当前用户
mysql>SELECT User,Host,Password FROM user;
mysql>system clear #清屏
mysql> ^DBye ? ? ? #ctrl+d 退出




mysqladmin命令

mysqladmin [OPTIONS] command command...

#查看mysql服务是否正常,如果正常提示mysqld is alive
mysqladmin -u用户 -p密码 ? ping
mysqladmin -uroot -p123123  ping
#关闭mysql服务,但mysqladmin命令无法开启
mysqladmin -uroot -pcentos shutdown
#创建数据库testdb
mysqladmin -uroot -pcentos ? create testdb 
#删除数据库testdb
mysqladmin -uroot -pcentos ? drop testdb
#修改root密码
mysqladmin -uroot -pcentos password 'magedu'
#日志滚动,生成新文件/var/lib/mysql/mariadb-bin.00000N
mysqladmin -uroot -pcentos flush-logs

多实例

多实例介绍

  • 什么是数据库多实例

多实例类似微信双开,端口号类比微信账号,数据库类比聊天窗口,表类比聊天记录

MySQL多实例就是在一台服务器上同时开启多个不同的服务端口(如:3306、3307、3308等),同时运

行多个MySQL服务进程,这些服务进程通过不同的Socket监听不同的服务端口来提供服务。

多实例可能是MySQL的不同版本,也可能是MySQL的同一版本实现

  • 多实例的好处

可有效利用服务器资源。当单个服务器资源有剩余时,可以充分利用剩余资源提供更多的服务,且

可以实现资源的逻辑隔离节约服务器资源。例如公司服务器资源紧张,但是数据库又需要各自尽量

独立的提供服务,并且还需要到主从复制等技术,多实例就是最佳选择

  • 多实例弊端

存在资源互相抢占的问题。比如:当某个数据库实例并发很高或者SQL查询慢时,整个实例会消耗

大量的CPU、磁盘I/O等资源,导致服务器上面其他的数据库实例在提供服务的质量也会下降,所以

具体的需求要根据自己的实际情况而定。

实验过程:

[root@localhost ~]# yum -y install mariadb-server   #安装
[root@localhost ~]#mkdir -pv /mysql/{3306,3307,3308}/{data,etc,socket,log,bin,pid}  #分别创建3306 3307 3308文件夹 且每个主文件夹包含括号中的子文件夹
[root@localhost ~]# chown -R mysql.mysql /mysql   #更改属主 属组
[root@localhost ~]# tree -d /mysql/

[root@localhost ~]#mysql_install_db --user=mysql --datadir=/mysql/3306/data

[root@localhost ~]#mysql_install_db --user=mysql --datadir=/mysql/3307/data
[root@localhost ~]#mysql_install_db --user=mysql --datadir=/mysql/3308/data
#生成数据库文件重复三次

?

配置文件

分别为 3306 3307 3308 配置 

[root@localhost ~]#vim /mysql/3306/etc/my.cnf
[mysqld]
port=3306
datadir=/mysql/3306/data
socket=/mysql/3306/socket/mysql.sock
log-error=/mysql/3306/log/mysql.log
pid-file=/mysql/3306/pid/mysql.pid
[root@localhost ~]#sed 's/3306/3307/' /mysql/3306/etc/my.cnf > 
/mysql/3307/etc/my.cnf
[root@localhost ~]#sed 's/3306/3308/' /mysql/3306/etc/my.cnf > 
/mysql/3308/etc/my.cnf

?准备启动脚本

[root@localhost ~]#vim /mysql/3306/bin/mysqld
#!/bin/bash

port=3306
mysql_user="root"
mysql_pwd=""
cmd_path="/usr/bin"
mysql_basedir="/mysql"
mysql_sock="${mysql_basedir}/${port}/socket/mysql.sock"

function_start_mysql()
{
    if [ ! -e "$mysql_sock" ];then
      printf "Starting MySQL...\n"
      ${cmd_path}/mysqld_safe --defaults-file=${mysql_basedir}/${port}/etc/my.cnf  &> /dev/null  &
    else
      printf "MySQL is running...\n"
      exit
    fi
}


function_stop_mysql()
{
    if [ ! -e "$mysql_sock" ];then
       printf "MySQL is stopped...\n"
       exit
    else
       printf "Stoping MySQL...\n"
       ${cmd_path}/mysqladmin -u ${mysql_user} -p${mysql_pwd} -S ${mysql_sock} shutdown
   fi
}


function_restart_mysql()
{
    printf "Restarting MySQL...\n"
    function_stop_mysql
    sleep 2
    function_start_mysql
}

case $1 in
start)
    function_start_mysql
;;
stop)
    function_stop_mysql
;;
restart)
    function_restart_mysql
;;
*)
    printf "Usage: ${mysql_basedir}/${port}/bin/mysqld {start|stop|restart}\n"
esac






[root@localhost ~]#chmod +x /mysql/3306/bin/mysqld 
#重复上述过程,分别建立3307,3308的启动脚本

?启动 关闭服务

root@localhost ~]#/mysql/3306/bin/mysqld start
[root@localhost ~]#/mysql/3307/bin/mysqld start
[root@localhost ~]#/mysql/3308/bin/mysqld start



root@localhost ~]#/mysql/3306/bin/mysqld stop
[root@localhost ~]#/mysql/3307/bin/mysqld stop
[root@localhost ~]#/mysql/3308/bin/mysqld stop

查看端口 验证?

?

登录或退出MySQL

#登录
[root@localhost ~]#/mysql/3308/bin/mysqld start

[root@localhost ~]#mysql -h127.0.0.1 -P3308



#关闭数据库,需要手动输入root的密码
[root@localhost ~]#/mysql/3308/bin/mysqld stop
Stoping MySQL...
Enter password: 

改密码

#修改密码
[root@localhost ~]#mysqladmin -uroot -S /mysql/3306/socket/mysql.sock password 
'Qc@123' 
[root@localhost ~]#mysqladmin -uroot -S /mysql/3307/socket/mysql.sock password 
'Qc@123'' 
[root@localhost ~]#mysqladmin -uroot -S /mysql/3308/socket/mysql.sock password 
'Qc@123''

开机自启:

#开机启动
[root@localhost ~]#vim /etc/rc.d/rc.local
#在最后一行加下面内容
for i in {3306..3308};do /mysql/$i/bin/mysqld start;done
[root@localhost ~]#chmod +x /etc/rc.d/rc.local

  大数据 最新文章
实现Kafka至少消费一次
亚马逊云科技:还在苦于ETL?Zero ETL的时代
初探MapReduce
【SpringBoot框架篇】32.基于注解+redis实现
Elasticsearch:如何减少 Elasticsearch 集
Go redis操作
Redis面试题
专题五 Redis高并发场景
基于GBase8s和Calcite的多数据源查询
Redis——底层数据结构原理
上一篇文章      下一篇文章      查看所有文章
加:2021-11-27 09:57:56  更:2021-11-27 09:58:13 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/24 7:58:39-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码