Skip to main content

MySQL

MySQL(发音:[ˌmaɪ ɛs kjuː ˈɛl],但也经常读作My-SEQuel)是一个开放源代码的关系数据库管理系统,原开发者为瑞典的MySQL AB公司,该公司于2008年被升阳微系统(Sun Microsystems)收购。2009年,甲骨文公司(Oracle)收购升阳微系统公司,MySQL成为Oracle旗下产品。

MySQL在过去由于性能高、成本低、可靠性好,已经成为最流行的开源数据库,因此被广泛地应用在Internet上的中小型网站中。随着MySQL的不断成熟,它也逐渐用于更多大规模网站和应用,比如维基百科、Google和Facebook等网站。非常流行的开源软件组合LAMP中的“M”指的就是MySQL。

但被甲骨文公司收购后,Oracle大幅调涨MySQL商业版的售价,且甲骨文公司不再支持Open Solaris的发展,因此导致共享软件社区们对于Oracle是否还会持续支持MySQL社区版(MySQL之中唯一的免费版本)有所隐忧,因此原先一些使用MySQL的开源软件逐渐转向其它的数据库。
目录

    1 历史
    2 特性
    3 应用
    4 MySQL管理
    5 连接方式
    6 派生版本
    7 相关链接
    8 参考

历史

    2008年1月16日,Sun(太阳微系统)正式收购MySQL。[1]
    2009年4月20日,甲骨文公司宣布以每股9.50美元,74亿美金的总额收购Sun电脑公司。[2]

特性

    使用C和C++编写,并使用了多种编译器进行测试,保证源代码的可移植性。
    支持AIX、BSDi、FreeBSD、HP-UX、Linux、Mac OS、Novell NetWare、NetBSD、OpenBSD、OS/2 Wrap、Solaris、Windows等多种操作系统。
    为多种编程语言提供了API。这些编程语言包括C、C++、C#、VB.NET、Delphi、Eiffel、Java、Perl、PHP、Python、Ruby和Tcl等。
    支持多线程,充分利用CPU资源,支持多用户。
    优化的SQL查询算法,有效地提高查询速度。
    既能够作为一个单独的应用程序应用在客户端服务器网络环境中,也能够作为一个库而嵌入到其他的软件中。
    提供多语言支持,常见的编码如中文的GB 2312、BIG5,日文的Shift JIS等都可以用作数据表名和数据列名。
    提供TCP/IP、ODBC和JDBC等多种数据库连接途径。
    提供用于管理、检查、优化数据库操作的管理工具。
    可以处理拥有上千万条记录的大型数据库。

应用

与其他的大型数据库例如Oracle、IBM DB2、MS SQL等相比,MySQL自有它的不足之处,如规模小、功能有限等,但是这丝毫也没有减少它受欢迎的程度。对于一般的个人用户和中小型企业来说,MySQL提供的功能已经绰绰有余,而且由于MySQL是开放源代码软件,因此可以大大降低总体拥有成本。

目前Internet上流行的网站构架方式是LAMP(Linux Apache MySQL PHP),即是用Linux作为操作系统,Apache作为Web服务器,MySQL作为数据库,PHP(部分网站也使用Perl或Python)作为服务器端脚本解释器。由于这四个软件都是开放源代码软件,因此使用这种方式不用花一分钱就可以创建起一个稳定、免费的网站系统。MySQL加PHP的配对在互联网上的应用相比LAMP来说更为常见,并获得了“动态配对”(Dynamic Duo)的雅号,大部分Blog网站基于的WordPress系统主要运用MySQL加PHP的配对。除了LAMP之外,用于Solaris、Windows和Mac上的网站构架也分别被称为SAMP、WAMP和MAMP。

维基百科所使用的Mediawiki维基引擎采用PHP语言写成,并以MySQL作为其数据库管理系统。
MySQL管理

    可以使用命令行工具管理MySQL数据库(命令mysql 和 mysqladmin),也可以从MySQL的网站下载图形管理工具MySQL Workbench[3]。前者是用来取代旧有的MySQL Administrator和MySQL Query Browser。[4]
    Navicat导航猫 for MySQL 是一套专为 MySQL 设计的强大数据库管理及开发工具。它可以用于任何版本的 MySQL 数据库,并支持大部份 MySQL的功能,包括触发器、索引、查看等。
    phpMyAdmin是由PHP写成的MySQL数据库系统管理程序,让管理者可用Web接口管理MySQL数据库。借由此Web接口可以成为一个简易方式输入繁杂SQL语法的较佳途径,尤其要处理大量数据的导入及导出更为方便。其中一个更大的优势在于由于phpMyAdmin跟其他PHP程序一样在网页服务器上运行,但是您可以在任何地方使用这些程序产生的HTML页面,也就是于远程管理你的MySQL数据库。使用phpMyAdmin您就可以方便的创建、修改、删除数据库及数据表。

    phpMyBackupPro[5]也是由PHP写成的,可以通过Web接口创建和管理数据库。它可以创建伪cronjobs,可以用来自动在某个时间或周期备份MySQL数据库。

连接方式

    应用程序可通过ODBC或ADO方式,经由使用MyODBC与MySQL数据库连接。
    MS .Net Framework 下的程序(例如:C#、VB.NET)可通过ADO.NET的方式,经由使用MySQL.Net与MySQL数据库连接。
    C/C++ 可使用 / mysql 或是直接使用 MySQL自带之API 与MySQL数据库连接。
    PHP可通过PHP的mysqli模块与MySQL数据库连接,具备比mysql模块更好的性能。另外PHP6可使用mysqlnd与MySQL数据库连接。[1]
    JAVA程序可通过JDBC方式与mysql进行连接,mysql官方提供了JDBC驱动程序。
    可通过mysql客户端软件与mysql进行连接,如mysqlfront, mysqlyog, mysqlbrowser等。

派生版本

派生版本有Drizzle,MariaDB,Percona Server及OurDelta等。

Comments

Popular posts from this blog

CKA Simulator Kubernetes 1.22

  https://killer.sh Pre Setup Once you've gained access to your terminal it might be wise to spend ~1 minute to setup your environment. You could set these: alias k = kubectl                         # will already be pre-configured export do = "--dry-run=client -o yaml"     # k get pod x $do export now = "--force --grace-period 0"   # k delete pod x $now Vim To make vim use 2 spaces for a tab edit ~/.vimrc to contain: set tabstop=2 set expandtab set shiftwidth=2 More setup suggestions are in the tips section .     Question 1 | Contexts Task weight: 1%   You have access to multiple clusters from your main terminal through kubectl contexts. Write all those context names into /opt/course/1/contexts . Next write a command to display the current context into /opt/course/1/context_default_kubectl.sh , the command should use kubectl . Finally write a second command doing the same thing into ...

OWASP Top 10 Threats and Mitigations Exam - Single Select

Last updated 4 Aug 11 Course Title: OWASP Top 10 Threats and Mitigation Exam Questions - Single Select 1) Which of the following consequences is most likely to occur due to an injection attack? Spoofing Cross-site request forgery Denial of service   Correct Insecure direct object references 2) Your application is created using a language that does not support a clear distinction between code and data. Which vulnerability is most likely to occur in your application? Injection   Correct Insecure direct object references Failure to restrict URL access Insufficient transport layer protection 3) Which of the following scenarios is most likely to cause an injection attack? Unvalidated input is embedded in an instruction stream.   Correct Unvalidated input can be distinguished from valid instructions. A Web application does not validate a client’s access to a resource. A Web action performs an operation on behalf of the user without checkin...