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基础(一)
Apr 05 MySQL
JDBC连接的六步实例代码(与mysql连接)
May 12 MySQL
MySQL优化之如何写出高质量sql语句
May 17 MySQL
详解MySQL中的pid与socket
Jun 15 MySQL
MyBatis 动态SQL全面详解
Oct 05 MySQL
解决MySQL添加新用户-ERROR 1045 (28000)的问题
Mar 03 MySQL
MySQL优化及索引解析
Mar 17 MySQL
分享MySQL常用 内核 Debug 几种常见方法
Mar 17 MySQL
MySQL中rank() over、dense_rank() over、row_number() over用法介绍
Mar 23 MySQL
MySQL限制查询和数据排序介绍
Mar 25 MySQL
mysql 8.0.27 绿色解压版安装教程及配置方法
Apr 20 MySQL
MySQL数据库安装方法与图形化管理工具介绍
May 30 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
PHP 多维数组排序实现代码
2009/08/05 PHP
php通过隐藏表单控件获取到前两个页面的url
2014/09/09 PHP
异步加载技术实现当滚动条到最底部的瀑布流效果
2014/09/16 PHP
thinkphp普通查询与表达式查询实例分析
2014/11/24 PHP
PHP解压tar.gz格式文件的方法
2016/02/14 PHP
TP5(thinkPHP5框架)基于bootstrap实现的单图上传插件用法示例
2019/05/29 PHP
Javascript base64编码实现代码
2011/12/02 Javascript
JS添加删除一组文本框并对输入信息加以验证判断其正确性
2013/04/11 Javascript
JavaScript设置首页和收藏页面的小例子
2013/11/11 Javascript
javascript移动设备Web开发中对touch事件的封装实例
2014/06/05 Javascript
如何获取网站icon有哪些可行的方法
2014/06/05 Javascript
JQ技术实现注册页面带有校验密码强度
2015/07/27 Javascript
关于原生js中bind函数的简单实现
2016/08/10 Javascript
微信小程序实现图片自适应(支持多图)
2017/01/25 Javascript
svg动画之动态描边效果
2017/02/22 Javascript
Three.js基础学习之场景对象
2017/09/27 Javascript
vue.js数据绑定操作详解
2018/04/23 Javascript
深度了解vue.js中hooks的相关知识
2019/06/14 Javascript
JavaScript变量基本使用方法实例分析
2019/11/15 Javascript
[03:52]DOTA2英雄基础教程 酒仙
2013/12/23 DOTA
Cpy和Python的效率对比
2015/03/20 Python
每天迁移MySQL历史数据到历史库Python脚本
2018/04/13 Python
python elasticsearch环境搭建详解
2019/09/02 Python
Python matplotlib以日期为x轴作图代码实例
2019/11/22 Python
Pycharm debug调试时带参数过程解析
2020/02/03 Python
Python基于gevent实现高并发代码实例
2020/05/15 Python
python:HDF和CSV存储优劣对比分析
2020/06/08 Python
Python3通过chmod修改目录或文件权限的方法示例
2020/06/08 Python
英国优质家居用品网上品牌:URBANARA
2018/06/01 全球购物
几道Web/Ajax的面试题
2016/11/05 面试题
高三地理教学反思
2014/01/11 职场文书
乡镇领导干部个人对照检查材料思想汇报
2014/09/23 职场文书
意外死亡赔偿协议书
2014/10/14 职场文书
golang中字符串MD5生成方式总结
2021/07/04 Golang
Python机器学习实战之k-近邻算法的实现
2021/11/27 Python
vue使用echarts实现折线图
2022/03/21 Vue.js