02 MySQL 从入门到精通——MYSQL概述/安装

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位并且尽量是混合密码(英文、下划线、数字)

你可能感兴趣的:(mysql,数据库,服务器)