MYSQL
来源:互联网 发布:电脑软件推广 编辑:程序博客网 时间:2024/06/08 02:14
转自:http://blog.csdn.net/liumiaocn/article/details/56485588?locationNum=9&fps=1
多年以前,随着NoSQL等概念的推行,一时间恍惚到了关系型数据库的末日,结果数年过去,Oracle依然老当益壮,一家独大地卖licence挣得盆满钵满。收掉Sun的同时顺手得到了开源关系型数据库王者的MYSQL,从此开始了MYSQL版本的缓慢升级,也给了Mariadb另起炉灶的可乘之机。不管如何,MYSQL还是在当前的应用中占有这一席之地。这篇文章,将会使用容器的方式来简单的入门学习MYQSL的使用方式。
MYSQL的前世今生
当前最新版本
docker pull
使用Easypack下的alpine的MySQL,当然你也可以直接使用官方镜像,没有区别,只是在Easypack的项目中,整理了一些常用的有Reputation的镜像,为了更好的进行集成和整合,进行了一个收集/整理/自定义的过程。
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
启动镜像
正常启动一个mysql的镜像, MySQL和她的妹妹Maria在版本5.5之前几乎一模一样,然而渐渐也会有些许的区别出来,镜像的使用上目前MYSQL需要设定MYSQL_ROOT_PASSWORD/MYSQL_ALLOW_EMPTY_PASSWORD/MYSQL_RANDOM_ROOT_PASSWORD才行。如下以指定密码的方式启动镜像,实际的时候可以使用环境变量等至少避免明文的密码。
- 1
- 2
- 3
连接镜像
- 1
- 2
- 3
- 4
- 5
- 6
版本确认
- 1
- 2
- 3
确认数据库
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
创建数据库
使用create database test创建名为test的数据库
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
连接数据库
使用use 数据库名 命令去连接所指定的数据库,比如use test,将会连接刚刚创建的test数据库,在连接之后的操作比如创建表,在没有指明数据库名的情况下均对于当前所连接的数据库起作用。
- 1
- 2
- 3
基本操作
版本确认
虽然mysql –version也可以确认版本,就像Oracle一样,在连接实例之后才能进行的确认方式,不过没有Oracle那样复杂庞大的系统视图而已。
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
字符串处理
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
简单计算
类似Oracle里面的select from dual, mysql里面可以直接select
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
字符集确认
使用show variables like 可以查出字符集相关信息
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
字符显示确认
关于中文乱码一般有两种情况需要确认,终端的设定与mysql的设定。显示的时候需要设定character_set_results,如果不能正确显示可以参考如下设定试一下
- 1
- 2
- 3
- 4
字符集导入乱码对应
诸如中文字符导入可能会引起各种问题,在数据导入之前可以使用set names解决此类问题,比如如下方式
- 1
- 2
- 3
- 4
数据导入时外键依赖
因为外键的依赖,导致初期导入数据的时候需要确认先后顺序,在确保数据没有问题的情况下,可以像如下方法可以将外键检查临时关闭,真正在实施的时候再打开也行。
- 1
- 2
- 3
- 4
mysqldump使用
使用mysqldump可以进行数据库的数据和结构的导出,使用方式如下。
数据库结构导出
使用如下方式可以将数据库建表语句和insert数据的sql一起导出
- 1
数据库导出
使用如下方式可以仅仅导出数据库建表语句。
- 1
数据导入
使用如下方式可以导入数据
- 1
环境变量
- MYSQL_ROOT_PASSWORD
- MYSQL_DATABASE
- MYSQL_USER
- MYSQL_PASSWORD
- MYSQL_ALLOW_EMPTY_PASSWORD
- MYSQL_RANDOM_ROOT_PASSWORD
- MYSQL_ONETIME_PASSWORD
总结
抛开当时商业收购被带来的影响,MYSQL曾经以及现在仍在在开源的关系型数据库中占据着非常重要的地位。即使可能的闭源大体也不会给这款已经深入人心的产品蒙上阴影,因为她的妹妹Maria已经稳扎稳打的立足进入了开源的领域。详细请参看狗血故事的续篇:”MariaDB: 谁是更为正宗的MYSQL”.
- Mysql
- MySql
- MYSQL
- MySQL
- mysql
- mysql
- mysql
- mysql
- Mysql
- Mysql
- mysql
- MySQL
- mysql
- Mysql
- mysql
- mysql
- mysql
- mySQL
- 动态规划:从新手到专家
- 压缩文件的原理
- Java中的String为什么是不可变的? -- String源码分析
- java中如何用过滤器来拦截用户不允许访问的网页(通过地址栏来进行拦截)
- 【用Python学习Caffe】1. 使用Caffe完成图像分类
- MYSQL
- UWP-C#-关键字
- 动态链接库
- 过滤器用来拦截用户是否登录访问权限的问题(通过session来进行拦截)
- 常见路由表生成算法调研
- select * from a,b是否为内连接?
- MongoDB安装
- JSONExport在项目开发中的应用,可支持Java Android iOS Swift等
- java三大框架之struts2学习(1)