自学数据库MySQL
##简介
MySQL是一种开放源代码的关系型数据库管理系统(RDBMS),MySQL数据库系统使用最常用的数据库管理语言–结构化查询语言(SQL)进行数据库管理。
由于MySQL是开放源代码的,因此任何人都可以在General Public License的许可下下载并根据个性化的需要对其进行修改。MySQL因为其速度、可靠性和适应性而备受关注。大多数人都认为在不需要事务化处理的情况下,MySQL是管理内容最好的选择。
MySQL这个名字,起源不是很明确。一个比较有影响的说法是,基本指南和大量的库和工具带有前缀“my”已经有10年以上,而且不管怎样,MySQL AB创始人之一的Monty Widenius的女儿也叫My。这两个到底是哪一个给出了MySQL这个名字至今依然是个迷,包括开发者在内也不知道。
MySQL的海豚标志的名字叫“sakila”,它是由MySQL AB的创始人从用户在“海豚命名”的竞赛中建议的大量的名字表中选出的。获胜的名字是由来自非洲斯威士兰的开源软件开发者Ambrose Twebaze提供。根据Ambrose所说,Sakila来自一种叫SiSwati的斯威士兰方言,也是在Ambrose的家乡乌干达附近的坦桑尼亚的Arusha的一个小镇的名字。
MySQL,虽然功能未必很强大,但因为它的开源、广泛传播,导致很多人都了解到这个数据库。它的历史也富有传奇性。
##常用命令
- 使用SHOW语句找出在服务器上当前存在什么数据库:
mysql> SHOW DATABASES;
- 创建一个数据库MYSQLDATA
mysql> CREATE DATABASE MYSQLDATA;
- 选择你所创建的数据库
mysql> USE MYSQLDATA;
(按回车键出现Database changed 时说明操作成功!) - 查看现在的数据库中存在什么表
mysql> SHOW TABLES;
- 创建一个数据库表
mysql> CREATE TABLE MYTABLE (name VARCHAR(20), sex CHAR(1));
- 显示表的结构:
mysql> DESCRIBE MYTABLE;
- 往表中加入记录
mysql> insert into MYTABLE values (”hyq”,”M”);
- 用文本方式将数据装入数据库表中(例如D:/mysql.txt)
mysql> LOAD DATA LOCAL INFILE “D:/mysql.txt” INTO TABLE MYTABLE;
- 导入.sql文件命令(例如D:/mysql.sql)
mysql>use database; mysql>source d:/mysql.sql;
- 删除表
mysql>drop TABLE MYTABLE;
- 清空表
mysql>delete from MYTABLE;
- 更新表中数据
mysql>update MYTABLE set sex=”f” where name=’hyq’;
##系统特性
-
使用 C和 C++编写,并使用了多种编译器进行测试,保证了源代码的可移植性。
-
支持 AIX、FreeBSD、HP-UX、Linux、Mac OS、NovellNetware、OpenBSD、OS/2 Wrap、Solaris、Windows等多种操作系统。
-
为多种编程语言提供了 API。这些编程语言包括 C、C++、Python、Java、Perl、PHP、Eiffel、Ruby,.NET和 Tcl 等。
-
支持多线程,充分利用 CPU 资源。
-
优化的 SQL查询算法,有效地提高查询速度。
-
既能够作为一个单独的应用程序应用在客户端服务器网络环境中,也能够作为一个库而嵌入到其他的软件中。
-
提供多语言支持,常见的编码如中文的 GB 2312、BIG5,日文的 Shift_JIS等都可以用作数据表名和数据列名。
-
提供 TCP/IP、ODBC 和 JDBC等多种数据库连接途径。
-
提供用于管理、检查、优化数据库操作的管理工具。
-
支持大型的数据库。可以处理拥有上千万条记录的大型数据库。
-
支持多种存储引擎。
-
MySQL 是开源的,所以你不需要支付额外的费用。
-
MySQL 使用标准的 SQL数据语言形式。
-
MySQL 对 PHP 有很好的支持,PHP是目前最流行的 Web 开发语言。
-
MySQL是可以定制的,采用了 GPL协议,你可以修改源码来开发自己的 MySQL 系统。
-
在线 DDL/更改功能,数据架构支持动态应用程序和开发人员灵活性(5.6新增)
-
复制全局事务标识,可支持自我修复式集群(5.6新增)
-
复制无崩溃从机,可提高可用性(5.6新增)
-
复制多线程从机,可提高性能(5.6新增)
-
3倍更快的性能(5.7新增)
-
新的优化器(5.7新增)
-
原生JSON支持(5.7新增)
-
多源复制(5.7新增)
-
GIS的空间扩展(5.7新增)
###如何安装和运行数据库
接下来我们需要配置下 MySQL 的配置文件
打开刚刚解压的文件夹 C:\web\mysql-8.0.11 ,在该文件夹下创建 my.ini 配置文件,编辑 my.ini 配置以下基本信息:
[mysql]
# 设置mysql客户端默认字符集
default-character-set=utf8
[mysqld]
# 设置3306端口
port = 3306
# 设置mysql的安装目录
basedir=C:\\web\\mysql-8.0.11
# 设置 mysql数据库的数据的存放目录,MySQL 8+ 不需要以下配置,系统自己生成即可,否则有可能报错
# datadir=C:\\web\\sqldata
# 允许最大连接数
max_connections=20
# 服务端使用的字符集默认为8比特编码的latin1字符集
character-set-server=utf8
# 创建新表时将使用的默认存储引擎
default-storage-engine=INNODB
接下来我们来启动下 MySQL 数据库:
以管理员身份打开 cmd 命令行工具,切换目录:
cd C:\web\mysql-8.0.11\bin
初始化数据库:
mysqld --initialize --console
执行完成后,会输出 root 用户的初始默认密码,如:
...
2018-04-20T02:35:05.464644Z 5 [Note] [MY-010454] [Server] A temporary password is generated for root@localhost: APWCY5ws&hjQ
...
APWCY5ws&hjQ 就是初始密码,后续登录需要用到,你也可以在登陆后修改密码。
输入以下安装命令:
mysqld install
启动输入以下命令即可:
net start mysql
注意: 在 5.7 需要初始化 data 目录:
cd C:\web\mysql-8.0.11\bin mysqld --initialize-insecure
初始化后再运行 net start mysql 即可启动 mysql。
更多推荐
自学数据库MySQL
发布评论