实验 目的 要求 |
目的:
要求:
| ||||||||||||||||||
实 验 环 境
实 验 环 境
|
软件版本: 选用MySQL Cluster的7.5.7版本; 集群规划: * MySQL数据库的集群版本有管理节点、 数据服务节点、 SQL服务节点总共3类服务节点, 集群中要求至少一台单独的主机作为管理节点, 而集群模式需要满足数据有备份和数据处理能够分布并行的基本要求, 所以需要两台或以上的主机作为数据服务节点以及两台或以上的主机作为SQL服务节点, 具体规划如下:
|
练习内容
步骤一:启动MySQL
1、启动管理节点;
2、启动数据服务节点;
3、启动SQL服务节点;
练习一:表的创建、插入数据;
1、创建一个数据库;
2、创建一个mytable表并显示表结构;
3、向表中插入一条记录;
4、查找表中已存在的数据;
练习二:将TXT文件导入表中;
1、在home目录下创建mysql.txt文件,并写入数据;
2、给数据库导入TXT文件数据;
命令:
>load data local infile "/home/mysql.txt" into table mytable fields terminated by '\t' lines terminated by '\n';
3、在MySQL连接工具中查看插入数据;
练习三:SQL查询语句;
1、查看表结构;
2、查询所有列及指定列;
3、查询指定行;
作业一:数据库基本操作
根据下列表格中所提供的关系型数据库的数据模型和数据,在MySQL数据库中创建和添加相应的数据库、表、数据。
书籍信息表(BOOK_INFO) | |||||
Title | Borrower | sex | Munber | lendingdate | Returndate |
Yuncunchu | Zhangsan | f | 20170001 | 2017-09-09 | 2017-09-09 |
Shujuku | Lisi | m | 20170002 | 2017-09-09 | 2017-09-09 |
xunihuajishu | wanger | f | 20170003 | 2017-09-09 | 2017-09-09 |
1、创建work数据库并插入数据;
2、查看插入数据;
3、指定行列查看数据;
4、使用连接工具查看数据;
作业二:将作业一常见的数据库机器中的数据导出为SQL脚本文件;
1、导出数据;
2、查看导出文件;
出现的问题与解决方案
本实验未遇到错误,介绍几个排错技巧:
1、一般,报错的时候都会有error code。比如ERROR 1504,Error: 2303等等,遇到这些报错,我们可以先用mysql的报错工具perror查看,比如查看报错号为1504的错误,使用命令为: perror --ndb 1504
2、在出现报错以后,查看WARNINGS或ERRORS信息,比如出现Error CODE : 1528 Failed TO CREATE LOGFILE GROUP后输入SHOW WARNINGS;,会显示出具体的报错信息:
Got error 1504 'Out of logbuffer memory' FROM NDB
Failed TO CREATE LOGFILE GROUP
以上报错代码,均可在官网找到解决方案。
知识拓展
1、MySQL集群优缺点;
优点:
a) 99.999%的高可用性
b)快速的自动失效切换
c)灵活的分布式体系结构,没有单点故障
d)高吞吐量和低延迟
e)可扩展性强,支持在线扩容
缺点:
a)存在很多限制,比如:不支持外键
b)部署、管理、配置很复杂
c)占用磁盘空间大,内存大
d)备份和恢复不方便
e)重启的时候,数据节点将数据load到内存需要很长时间
2、MySQL集群如何存储数据;
a)Master执行提交语句时,事务被发送到slave,slave开始准备事务的提交。
b)每个slave都要准备事务,然后向master发送OK(或ABORT)消息,表明事务已经准备好(或者无法准备该事务)。
c)Master等待所有Slave发送OK或ABORT消息
- 如果Master收到所有 Slave的OK消息,它就会向所有Slave发送提交消息,告诉Slave提交该事务;
- 如果Master收到来自任何一个Slave的ABORT消息,它就向所有 Slave发送ABORT消息,告诉Slave去中止事务。
e)每个Slave等待来自Master的OK或ABORT消息。
- 如果Slave收到提交请求,它们就会提交事务,并向Master发送事务已提交 的确认;
- 如果Slave收到取消请求,它们就会撤销所有改变并释放所占有的资源,从而中止事务,然后向Masterv送事务已中止的确认。
f)当Master收到来自所有Slave的确认后,就会报告该事务被提交(或中止),然后继续进行下一个事务处理。
3、使用SQLyog连接MySQL集群192.168.10.114或者192.168.10.115
4、MySQL常用的相关命令
- 登录数据库--mysql -u root -p
- 远程登录数据库--mysql -h 主机名或IP地址 -u 用户名 -p
- 导出数据库--mysqldump -u 用户名 -p 数据库名>导出的路径与导出的文件名:mysqldump -uroot -pmysqlabc mysql>/home/123.sql
- 导出数据库中的指定表--mysqldump -u 用户名 -p 数据库名 表名>导出的路径与导出的文件名
- 导出数据库的结构信息--mysqldump -u 用户名 -p -d --add-drop-table 数据库名>导出的路径与导出的文件名
- 恢复数据库--mysqldump -u 用户名 -p 数据库名< 需要导入的文件名和路径
- 在登录数据库后,使用source语句进行数据库恢复--use bb;source /home/123.sql;(2)Mysql 控制台命令
- 设置密码--set password=password;
- 创建数据库--create database abcDB;
- 添加新用户 host:%; user:abc; password:1234;Grant all on abcDB.*to ‘abc’@’%’identified by ‘1234’with grant option;
- 为用户授权“grant 权限 on 数据库名.表名 to 用户名@登录主机名IP地址 identified by ’自定义密码‘;”。--grant all on test.*to abc@’@’identified by ‘1234’
- 刷新权限信息--flush privileges;
- 查询用户信息--select user,host,authentication_string from mysql.user;
- 显示数据库列表--show databases;
- 删除数据库--drop database 数据库名;
- 使用数据库--use 数据库名;
- 删除用户--delete from user where user=’abc’and host=’%’;
- 显示数据表列表--show tables;
- 显示数据表详细描述信息--describe 表名;显示用户表信息--describe user;