MySQL系列之三 基础篇


Posted in MySQL onJuly 02, 2021
目录
  • 一、MySQL简介
  • 二、MySQL的发展历史
  • 三、MariaDB的基本使用
    • 1、基本安装与配置
    • 2、客户端命令:mysql
    • 3、其他客户端工具
    • 4、安全加强脚本 mysql_secure_installation

 

一、MySQL简介

​ MySQL原本是一个开放源代码的关系数据库管理系统,原开发者为瑞典的MySQL AB公司,该公司于2008年被Sun公司收购。2009年,Oracle收购sun公司,MySQL成为Oracle旗下产品。

​ 但被甲骨文公司收购后,Oracle大幅调涨MySQL商业版的售价,且甲骨文公司不再支持另一个自由软件项目OpenSolaris的发展,因此导致自由软件社区们对于Oracle是否还会持续支持MySQL社区版(MySQL之中唯一的免费版本)有所隐忧,MySQL的创始人麦克尔·维德纽斯以MySQL为基础,成立分支计划MariaDB。而原先一些使用MySQL的开源软件逐渐转向MariaDB或其它的数据库。

 

二、MySQL的发展历史

作者:Monty 麦克尔·维德纽斯

  • 1996年:发布MySQL1.0,开始是Solaris版本,后来又发布了Linux版本
  • 1999年:Monty 在瑞典成立了 MySQL AB 公司
  • 2003年:MySQL 5.0版本发布,增加了视图、存储过程等功能
  • 2008年:被 sun公司 收购
  • 2009年:Oracle 收购 sun
  • 2009年:Monty 成立 MariaDB

版本的演变:

  • ​ MySQL:5.1 --> 5.5 --> 5.6 --> 5.7
  • ​ MariaDB:5.5 -->10.0--> 10.1 --> 10.2 --> 10.3

 

三、MariaDB的基本使用

MariaDB的目的是完全兼容MySQL,包括API和命令行,使之能轻松成为MySQL的代替品。在存储引擎方面,10.0.9版起使用XtraDB(名称代号为Aria)来代替MySQL的InnoDB。

​ 由MySQL的创始人麦克尔·维德纽斯主导开发,他早前曾以10亿美元的价格,将自己创建的公司MySQL AB卖给了SUN,此后,随着SUN被甲骨文收购,MySQL的所有权也落入Oracle的手中。MariaDB名称来自麦克尔·维德纽斯的女儿玛丽亚(英语:Maria)的名字。

​ 插件式存储引擎:也称为“表类型”,存储管理器有多种实现版本,功能和特性可能均略有差别;用户可根据需要灵活选择,Mysql5.5.5开始innoDB引擎是MYSQL默认引擎。MyISAM ==> Aria ,InnoDB ==> XtraDB

 

1、基本安装与配置

安装:yum install mariadb-server

主配置文件:从上到下检查,如果有重复的配置参数则在后边的配置文件中的参数生效,覆盖检索

/etc/my.cnf
/etc/mysql/my.cnf
/etc/sysconfig/my.cnf
/usr/local/etc/my.cnf
~/.my.cnf

​ 查看默认配置:/usr/libexec/mysqld --print-defaults

默认数据库库文件存放目录:/var/lib/mysql/

套接字文件:/var/lib/mysql/mysql.sock

PID文件:/var/run/mariadb/mariadb.pid

日志文件:/var/log/mariadb/mariadb.log

启动服务:# systemctl start mariadb.service

 

2、客户端命令:mysql

选项:

​ -u root 指定用户
-p password 指定密码
-h host 指定连接主机
-A 禁止补全
-P port 指定端口,默认3306
​ -S socket文件路径 默认:/var/lib/mysql/mysql.sock
​ -D databasename 指定默认数据库
​ -C 启用压缩
​ -e SQL_CMD 执行后退出
-V 查看版本
​ --print-defaults 查看默认设置

批处理模式

mysql < /path/somefile.sql 将sql脚本导入数据库执行

交互式模式

客户端命令

  • \d|delimiter 设置语句结束符
  • \c|clear 提前结束语句
  • \r|connect 重新连接数据库
  • \g 直接将语句送服务器执行
  • \G 直接将语句送服务器执行;结果纵向显示
  • .|source 读入脚本文件创建数据库
  • ! COMMAND 执行shell命令
  • \W 语句执行结束后显示警告信息
  • \w 语句执行结束后不显示警告信息
  • \s 获取当前系统状态
  • use database_name 指定操作的数据库
  • prompt \u@[\D] \r:\m:\s-> 修改提示符,如果需要永久修改则在my.cnf中 [mysql] 下加入 prompt="(\u@\h) [\d]>
  • \q 退出

服务器命令:需要在命令后加命令结束符,默认结束符为分号";"

  • help KEYWORD 获取服务器命令的帮助
  • select version(); 查看数据库版本
  • show variables; 显示数据库当前工作的环境变量

 

3、其他客户端工具

  • mysqldump:备份工具,基于mysql协议向mysqld发起查询请求,并将查得的所有数据转换成insert等写操作语句保存文本文件中
  • mysqladmin:基于mysql协议管理mysqld
  • mysqlimport:数据导入工具
  • myisamchk:检查MyISAM库
  • myisampack:打包MyISAM表
  • mysqld_safe:服务二进制程序
  • mysqld_multi:创建多实例工具

 

4、安全加强脚本 mysql_secure_installation

这个脚本可以帮助我们做一下基本的安全加强

[root@centos7 mysql]# mysql_secure_installation
Enter current password for root (enter for none):   #空密码直接回车
Set root password? [Y/n] Y  #设置root密码
New password: ******
Re-enter new password: ******
Remove anonymous users? [Y/n] Y  #删除匿名账户
Disallow root login remotely? [Y/n] n  #禁用远程连接
Remove test database and access to it? [Y/n] Y  #删除test库
Reload privilege tables now? [Y/n] Y  #重读授权表使其配置生效
[root@centos7 mysql]# mysql -uroot -p'your_password'  #连接数据库命令

到此这篇关于MySQL系列之三 基础篇的文章就介绍到这了,更多相关MySQL 基础篇内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

MySQL 相关文章推荐
解读MySQL的客户端和服务端协议
May 10 MySQL
详解MySQL中的pid与socket
Jun 15 MySQL
如何使用分区处理MySQL的亿级数据优化
Jun 18 MySQL
mysql获取指定时间段中所有日期或月份的语句(不设存储过程,不加表)
Jun 18 MySQL
MySQL利用UNION连接2个查询排序失效详解
Nov 20 MySQL
VS2019连接MySQL数据库的过程及常见问题总结
Nov 27 MySQL
一文搞懂MySQL索引页结构
Feb 28 MySQL
Mysql外键约束的创建与删除的使用
Mar 03 MySQL
MySQL如何修改字段类型和字段长度
Jun 10 MySQL
mysql数据库隔离级别详解
Jun 16 MySQL
Mysql中的触发器定义及语法介绍
Jun 25 MySQL
MySQL外键约束(Foreign Key)案例详解
Jun 28 MySQL
MySQL系列之一 MariaDB-server安装
Jul 02 #MySQL
MySQL系列之二 多实例配置
Jul 02 #MySQL
MySQL系列之十三 MySQL的复制
Jul 02 #MySQL
MySQL系列之六 用户与授权
Jul 02 #MySQL
MySQL系列之开篇 MySQL关系型数据库基础概念
Jul 02 #MySQL
MySQL系列之五 视图、存储函数、存储过程、触发器
Jul 02 #MySQL
MySql 缓存查询原理与缓存监控和索引监控介绍
Jul 02 #MySQL
You might like
关于Iframe如何跨域访问Cookie和Session的解决方法
2013/04/15 PHP
简单谈谈PHP中的trait
2017/02/25 PHP
Prototype源码浅析 String部分(三)之HTML字符串处理
2012/01/15 Javascript
javascript中的undefined和not defined区别示例介绍
2014/02/26 Javascript
jQuery Chart图表制作组件Highcharts用法详解
2016/06/01 Javascript
JavaScript简单实现弹出拖拽窗口(一)
2016/06/17 Javascript
BootStrap 图片样式、辅助类样式和CSS组件的实例详解
2017/01/20 Javascript
JsChart组件使用详解
2018/03/04 Javascript
通过封装scroll.js 获取滚动条的值
2018/07/13 Javascript
vue-router的HTML5 History 模式设置
2018/09/08 Javascript
vue 配置多页面应用的示例代码
2018/10/22 Javascript
详解微信小程序开发聊天室—实时聊天,支持图片预览
2019/05/20 Javascript
Vue 实现显示/隐藏层的思路(加全局点击事件)
2019/12/31 Javascript
prettier自动格式化去换行的实现代码
2020/08/25 Javascript
[49:56]VG vs Optic 2018国际邀请赛小组赛BO2 第一场 8.19
2018/08/21 DOTA
python求素数示例分享
2014/02/16 Python
Python中绑定与未绑定的类方法用法分析
2016/04/29 Python
使用pandas的DataFrame的plot方法绘制图像的实例
2018/05/24 Python
python按行读取文件并找出其中指定字符串
2019/08/08 Python
Django 多表关联 存储 使用方法详解 ManyToManyField save
2019/08/09 Python
python 实现return返回多个值
2019/11/19 Python
python 实现矩阵按对角线打印
2019/11/29 Python
代码总结Python2 和 Python3 字符串的区别
2020/01/28 Python
PyCharm取消波浪线、下划线和中划线的实现
2020/03/03 Python
Python 字符串池化的前提
2020/07/03 Python
解决Django响应JsonResponse返回json格式数据报错问题
2020/08/09 Python
python爬取代理ip的示例
2020/12/18 Python
HTML5实现获取地理位置信息并定位功能
2015/04/25 HTML / CSS
电气自动化大学生求职信
2013/10/16 职场文书
求职信格式范本
2013/11/15 职场文书
房地产销售经理岗位职责
2014/01/01 职场文书
安全大检查实施方案
2014/02/22 职场文书
初中生物教学随笔
2015/08/15 职场文书
windows下快速安装nginx并配置开机自启动的方法
2021/05/11 Servers
微前端qiankun改造日渐庞大的项目教程
2022/06/21 Javascript
win11怎么消除图标小盾牌?win11消除图标小盾牌解决方法
2022/08/05 数码科技