MySQL:是一款开放源代码的关系型数据库。,是目前运行速度最快的SQL数据库,是目前最流行的开放源代码数据库管理系统
优势:MySQL数据库是一款自由软件;MySQL是一个真正的多用户、多线程的SQL数据库服务器。它是以客户机/服务器结构的实现,由一个服务器守护程序mysqld和很多不同的客户程序和库的组成。它能够快捷、有效和安全的处理大量的数据。MySQL被广泛应用在中小型网站中。由于其体积小、速度快、成本低,称为众多中小型网站选择的网站数据库。
MySQL 特性
使用C和C++编写
支持Linux、Mac OS、Windows等多种操作系统
为多种语言提供了API:C、C++、Python、Java、PHP
支持多线程
优化的SQL查询算法,有效的提高查询速度
既能够作为一个单独的应用程序应用在客户端服务器网络环境中,也能够作为一个库而嵌入到其他的软件中提供多语言支持。
TCP/IP、ODBC和JDBC
提供用于管理、检查、优化数据库操作的管理工具。
可以处理拥有上千万条记录的大型数据库
MySQL 5.7的特性
将InnoDB作为默认的数据库存储引擎
改善性能和可扩展性
提高实用性、易管理性和效率
提高可用性、改善检测与诊断性能
MySQL 8.0的特性
性能:MySQL 8.0 的速度要比 MySQL 5.7 快 2 倍。MySQL 8.0 在以下方面带来了更好的性能:读/写工作负载、IO 密集型工作负载、以及高竞争("hot spot"热点竞争问题)工作负载。
NoSQL:MySQL 从 5.7 版本开始提供 NoSQL 存储功能,目前在 8.0 版本中这部分功能也得到了更大的改进。该项功能消除了对独立的 NoSQL 文档数据库的需求,而 MySQL 文档存储也为 schema-less 模式的 JSON 文档提供了多文档事务支持和完整的 ACID 合规性。
窗口函数(Window Functions):从 MySQL 8.0 开始,新增了一个叫窗口函数的概念,它可以用来实现若干新的查询方式。窗口函数与 SUM()、COUNT() 这种集合函数类似,但它不会将多行查询结果合并为一行,而是将结果放回多行当中。即窗口函数不需要 GROUP BY。
隐藏索引:在 MySQL 8.0 中,索引可以被“隐藏”和“显示”。当对索引进行隐藏时,它不会被查询优化器所使用。我们可以使用这个特性用于性能调试,例如我们先隐藏一个索引,然后观察其对数据库的影响。如果数据库性能有所下降,说明这个索引是有用的,然后将其“恢复显示”即可;如果数据库性能看不出变化,说明这个索引是多余的,可以考虑删掉。
降序索引:MySQL 8.0 为索引提供按降序方式进行排序的支持,在这种索引中的值也会按降序的方式进行排序。
通用表表达式(Common Table Expressions CTE):在复杂的查询中使用嵌入式表时,使用 CTE 使得查询语句更清晰。
UTF-8 编码:从 MySQL 8 开始,使用 utf8mb4 作为 MySQL 的默认字符集。
JSON:MySQL 8 大幅改进了对 JSON 的支持,添加了基于路径查询参数从 JSON 字段中抽取数据的 JSON_EXTRACT() 函数,以及用于将数据分别组合到 JSON 数组和对象中的 JSON_ARRAYAGG() 和 JSON_OBJECTAGG() 聚合函数。
可靠性:InnoDB 现在支持表 DDL 的原子性,也就是 InnoDB 表上的 DDL 也可以实现事务完整性了,要么失败回滚,要么成功提交,不至于出现 DDL 时部分成功的问题,此外还支持 crash-safe 特性,元数据存储在单个事务数据字典中。
高可用性(High Availability):InnoDB 集群为您的数据库提供集成的原生 HA 解决方案。
安全性:对 OpenSSL 的改进、新的默认身份验证、SQL 角色、密码强度、授权。
MySQL的应用环境:MySQL与其他大型数据库(如Oracle、DB2、SQL Server等)相比,的确有不足之处,如规模小、功能有限,但还是受到个人和中小型企业的欢迎
PHP:LAMP
Python:Python DB API
java: JDBC API
MySQL服务器的安装与配置
(Windows、MySQL:8.0)
MySQL下载:http://dev.mysql.com/downloads/,并根据提示安装
配置Windos系统变量,找到mysql的bin目录粘到Windos的PATH(找到计算机→属性→高级系统设置→环境变量)中
停止启动:
Windows 服务管理器
cmd 打开DOS窗口
net start mysql
net stop mysql
连接:
mysql命令行:
cmd:mysql -uroot -h27.0.0.1 -ppasswd
退出:exit
(Linux、MySQL:8.0.32)
mysql下载页面:https://dev.mysql.com/downloads/mysql/ 选择 mysql - Generic (Linux通用版)
或者直接下载: cd /usr/local/ && wget https://dev.mysql.com/get/Downloads/MySQL-8.0/mysql-8.0.32-linux-glibc2.12-x86_64.tar.xz
tar -xvf mysql-8.0.32-linux-glibc2.12-x86_64.tar.xz
mv mysql-8.0.32-linux-glibc2.12-x86_64 mysql
groupadd mysql
useradd -g mysql mysql
chown -R mysql.mysql /usr/local/mysql
viim /etc/my.cnf
[mysqld]
user=root
datadir=/usr/local/mysql/data
basedir=/usr/local/mysql
port=3306
max_connections=200
max_connect_errors=10
character-set-server=utf8
default-storage-engine=INNODB
default_authentication_plugin=mysql_native_password
lower_case_table_names=1
group_concat_max_len=102400
[mysql]
default-character-set=utf8
[client]
port=3306
default-character-set=utf8
yum install -y libaio
cd /usr/local/mysql/bin
./mysqld --initialize #记录日志最末尾位置root@localhost:后的字符串,此字符串为mysql管理员临时登录密码
cd ..
cp -a ./support-files/mysql.server /etc/init.d/mysql
hmod +x /etc/init.d/mysql
chkconfig --add mysql
service mysql start
mkdir -p /var/lib/mysql/
ln -s /tmp/mysql.sock /var/lib/mysql/mysql.sock
mysql -uroot -p6dfIK_RWUeP3
alter user user() identified by ''; #这里注意,填写密码的时候满足8位并且尽量是混合密码(英文、下划线、数字)
版权声明:本文为weixin_43812198原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。