MySQL是一款安全、高效、跨平台与Java等主流编程语言紧密结合的关系型数据库管理系统。目前MySQL被广泛地应用在Internet上的中小型网站中。由于其体积小、速度快、成本低和开放源码的特点,许多中小型网站为了降低网站总体拥有成本而选择了MySQL作为网站数据库。在WEB应用方面,MySQL是最好的关系数据库管理系统应用软件之一。
MySQL是一种关系型数据库管理系统,关系数据库将数据保存在不同的表中,而不是将所有数据放在一个仓库内,这样就增加了速度并提高了灵活性。 MySQL数据库可以称得上是目前运行速度最快的SQL语言数据库之一。除了具有许多其它数据库所不具备的功能外,MySQL数据库还是一种完全免费的产品,用户可以直接通过网络下载MySQL数据库,而不必支付任何费用。
1整体介绍
MySQL的象征符号是一只海豚,代表MySQL数据库的速度、能力、精确和优秀本质。
1.1应用架构
单点(Single):适合小规模应用。
复制(Replication):适合中小规模应用。
集群(Cluster):适合大规模应用。
1.2应用环境
MySQL支持至少20种以上的开发平台,包括Linux、Windows、FreeBSD、IBMAIX、AIX、FreeBSD等。这就表明在任何平台下编写的程序都可以进行移植,而不需要对程序做进行修改。
MySQL为各种流行的程序设计语言提供支持,为它们提供了API函数,包括PHP、ASP.NET、Java、Eiffel、Python、Ruby、Tcl、C、C++、Perl语言等。
1.3安全性能
灵活安全的权限与密码系统,允许基本主机的验证。连接到服务器时,所有的密码传输均采用加密形式,从而保证密码的安全。
高速是MySQL的显著特性。在MySQL中,使用了B树磁盘表(MyISAM)和索引压缩;通过使用优化的单扫描多连接,能够极快地实现连接;SQL函数使用高度优化的类库实现,运行速度极快。
1.4使用成本
MySQL是开源的,所以不需要支付额外的费用。相比于Oracle数据库,MySQL数据库是一个完全免费的产品,用户可以直接通过网络下载。
2安装配置
下面介绍在linux系统环境中,安装配置MySQL数据库的具体步骤和验证说明。
2.1环境准备
由于CentOS7内置了一个数据库Mariadb需要先卸载它,卸载完毕后才能安装MySQL。
1.输入命令,查询已安装的Mariadb:
2.输入命令,卸载Mariadb,文件名为上述命令查询出来的文件名:
3.输入命令,删除etc目录下的my.cnf(如果以前安装了MySQL需要操作):
4.输入命令,安装依赖。
2.2安装说明
1.输入命令,将MySQL压缩包上传到/usr/local/目录下并解压:;
2.输入命令,将解压好的文件夹重命名为mysql:
3.输入命令,在/usr/local/mysql目录下创建data目录:
4.输入命令,检查mysql用户组和用户是否存在,如果没有,则创建:
5.输入命令,更改mysql目录下所属的用户组和用户,以及权限:
6.输入命令,在etc下新建配置文件my.cnf,并在该文件中添加以下代码:
通过vi编辑器编辑my.cnf代码如下:
7.输入命令,编译安装并初始化mysql:
注意:记住日志最后的初始化密码。
8.输入命令,复制启动脚本到资源目录,以方便后续mysql的启动:
9.输入命令,增加mysqld服务控制脚本执行权限:
10.输入命令,将mysqld服务加入到系统服务:
11.输入命令,检查mysqld服务是否已经生效:
命令输出类似下面的结果:
表明mysqld服务已经生效,在2、3、4、5运行级别随系统启动而自动启动,以后可以使用service命令控制mysql的启动、停止。
12.输入命令,启动mysqld:
出现如下效果即为成功:
13.输入命令,将mysql的bin目录加入PATH环境变量,编辑~/.bash_profile文件,注意备份:cp~/.bash_profile~/.bash_profile.bak:
添加如下内容:
14.输入命令,修改的内容立即生效:
15.输入命令,以root账户登录mysql,默认是上面记录的密码:
输入密码,回车即可。
16.输入命令,设置root账户密码为root(也可以修改成你要的密码):
17.输入命令,设置远程主机登录,注意下面的yourusername和 yourpassword改成你需要设置的用户和密码:
例如密码为root,用户名也是root执行下方语句即可。
注意:黄色部分可以调整为指定ip和密码(不建议和用户名相同,不安全)。
18.输入命令,退出MySQL。
2.3防火墙处理
1.输入命令,开启防火墙端口:
2.输入命令,加载设置:
3.输入命令,查看端口是否开启:
这样通过外部也能够链接Mysql。
2.4验证安装
因为MySQL安装时已经设置能够通过外部访问,所以通过navicat直接链接对应地址,即可验证配置和安装是否正确:
3热备处理
MySQL数据库没有增量备份的机制,当数据量太大时,备份是一个很大的问题。所以MySQL数据库提供了一种主从备份的机制,其实就是把主数据库的所有数据同时写到备份数据库中。
3.1环境准备
操作系统:两台CentOS7.6的Linux系统(虚拟机)
数据库版本:MySQL5.7
主服务器IP:192.168.28.37
从服务器IP:192.168.28.38
3.2工作原理
对于一个MySQL服务器,一般有两个线程来负责复制和被复制。当开启复制后:
1.作为主服务器Master,会把自己的每一次改动都记录到二进制日志binlog中。(从服务器会负责来读取这个log,然后在自己那里再执行一遍。)
2.作为从服务器Slave,会用master上的账号登陆到master上,读取master的binlog,写入到自己的中继日志Relaylog,然后自己的SQL线程负责读取这个中继日志,并执行一遍。
在考虑双机热备时,需要注意一般意义上的双机热备都会有一个切换过程,这个切换过程可能是一分钟左右。在切换过程中,服务有可能短时间中断。但当切换完成后,服务将正常恢复。因此,双机热备不是无缝、不中断的,但它能够保证在出现系统故障时,能够快速恢复正常服务,业务不致受到影响。而如果没有双机热备,则一旦出现服务器故障,可能会出现几个小时的服务中断,对业务的影响就会造成很严重的损失。
3.3主服务器
1.输入命令,修改数据库配置文件:
更改配置文件:
2.输入命令,重启数据库服务(mysqld):
3.输入命令,登录MySQL数据库允许从库获得主库日志:
输入密码后登录mysql:
4.输入命令,重启MySQL服务,登录MySQL,查看主库信息:
需要记住File及Position信息,后面会用到。
3.4从服务器
1.输入命令,修改从库的数据库配置文件:
2.输入命令,重启MySQL服务,登录MySQL:
3.输入命令,数据库修改:
4.输入命令,查看从库状态信息:
至此整个过程就配置完成了,现在可以在主服务器上创建一个表,然后在从服务器上查询刚创建的表,查看是否存在。
4心得体会
通过撰写本篇文档意识到,在实际项目工作过程中随手记录的重要性,在记录后也需要相应的把记录内容整理到工作文档内,不断迭代完善自身能力,现从做事方法、意识形态、工作总结方面总结如下。
4.1做事方法
制定和实施数据库备份计划,问题出现时对数据库信息进行恢复,维护适当介质上的存档或备份数据。对数据库的备份策略要根据实际要求进行更改,数据的日常备份情况进行监控。备份数据库可以分为两种方式:一种是用数据库备份工具实现,另一种是使用服务脚本实现。两种方式都可以定时、计划性的备份,包含全备和增量备份。在日常数据库的操作中,永远要给自己留一个后手,保证在需要进行数据恢复时可以随手拈来。
4.2意识形态
伴随着自身专业知识的不断积累,对知识的认知也不断地提高。现在回过头看自己之前记录的工作文档,会发现有很多漏点存在,这时就需要再次完善工作文档。在这个完善的过程中把初学时的理解和当下做比较,了解到当时的自己有哪些不足,思维逻辑有了怎样的改善。技术、认知在不断地更新,工作文档也在不断地更新,在这个不断迭代更新的过程中,使自己的知识点由点连成线。
4.3工作总结
在工作学习过程中,通过不断地记录文档,可以从多方面提升自身的综合能力。一方面可以感觉得到自己的逻辑思维有了很显著地提升,尤其是在记录教程类的文档时,例如某些系统的使用手册。可以重新梳理系统的技术要点,在这个过程中不断地提高自己的逻辑思维能力;一方面在有了清晰的逻辑思维后,对自己的技术能力和水平都有了系统地提升。同时撰写文档也是一个总结、反思的过程,能够帮助个人促进深入思考的能力。
通过实际参与项目,在服务器上安装配置MySQL数据库,不仅能提高对MySQL数据库安装部署的经验,也能加深对MySQL数据库的知识理解。后续也会继续配置MySQL数据库双机热备,整理相关的技术文档,迭代提升自身的工作能力,为后续的职业生涯奠定知识基础。