认识mysql

目录

(一)数据库的基本概念

1.1、数据(Data)

1.2、表

1.3、数据库

1.4、数据管理系统(DBMS)

1.5、数据库系统

二、当今主流数据库介绍

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

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

(三)DB2(IBM公司产品)

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

三、数据库类型

(一)关系数据库

(二)非关系数据库介绍

四、MySQL数据库介绍

安装 mysql

MySQL 命令

mysqladmin命令

多实例

实验过程:

配置文件

 准备启动脚本

 启动 关闭服务

查看端口 验证 

登录或退出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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值