MySQL第24天 MySQL cluster 401页 M y S Q L 常 见 问 题 和 应 用 技 巧415页

MySQL 自 4.1.x 版本开始推出 MySQL Cluster 功能。Cluster 简单地来说,就是一组“节
点”的组合。这里的“节点”是一个逻辑概念,一台计算机上可以存放一个节点,也可以存
放多个节点。这些节点的功能各不相同,有的用来存储数据(数据节点),有的用来存放表
结构(SQL 节点),有的用来对其他节点进行管理(管理节点)。这些节点组合在一起,可以

为应用提供具有高可用性、高性能和可缩放性的 Cluster 数据管理。


MySQL 使用 NDB 存储引擎来对数据节点的数据进行存储,以前版本的 NDB 存储引擎只支持基于内存的数据表,从 5.1 版本开始支持基于磁盘的数据表

理论上,MySQL Cluster 通过数据的分布式存储和可扩展的系统架构,可以满足更大规
模的应用;而且通过冗余策略,可以大大地提高系统的可靠性和数据的有效性。


MySQL Cluster 架构





为了支持 Cluster 功能,还需要单独下载 Cluster 相关包


P401 ---P415页  自己看吧   《深入理解MySQL》




M y S Q L 常 见 问 题 和 应 用 技 巧


1忘记 MySQL 的 root 密码



2 如何处理 MyISAM 存储引擎的表损坏


“tbl_name.frm”被锁定不能更改;
不能找到文件“tbl_name.MYI”(Errcode:nnn);
文件意外结束;
记录文件被毁坏;
从表处理器得到错误 nnn


(1)方法一
使用 MySQL 自带的 myisamchk 工具进行修复


(2)方法二
使用MySQL的CHECK TABLE和REPAIR TABLE命令一起进行修复



3   MyISAM 表超过 4GB 无法访问的问题

在 MySQL 5.0 版本之前,MyISAM 存储引擎默认的表大小只支持到 4GB,可以用以下命令来
查看:
[zzx@bj34 ams]$ myisamchk -dv t1


可以用下面命令对数据文件的最大 size 进行扩充:
alter table tbl_name MAX_ROWS=1000000000 AVG_ROW_LENGTH=15000;
此命令可以修改表的最大记录数和平均记录长度,因此可以修改数据文件的最大 size。


mysql> alter table t1 MAX_ROWS=10000000000 AVG_ROW_LENGTH=15000;



4   数据目录磁盘空间不足的问题

对于 MyISAM 存储引擎的表


对于 MyISAM 存储引擎的表,在建表时可以用如下选项分别指定数据目录和索引目录存储到
不同的磁盘空间,而默认会同时放在数据目录下:
DATA DIRECTORY = 'absolute path to directory'
INDEX DIRECTORY = 'absolute path to directory'


mysql> create table t1 (id int,name varchar(10))
-> data directory='/var/lib/mysql/data'
-> index directory='/var/lib/mysql/index';


很显然,对数据文件和索引文件指定了两个不同的存放目录,实际上是在操作系统上创建了
两个符号链接,指向了不同的目录。读者可能会想到,既然创建的时候可以指定数据索引分
离,那么在使用过程中是不是也可以随时对这些路径进行再次变更呢?答案是否定的


对于 InnoDB 存储引擎的表

对于 InnoDB 存储引擎的表,因为数据文件和索引文件是存放在一起的,所以无法将它们进
行分离。当磁盘空间出现不足时,可以增加一个新的数据文件,这个文件放在有充足空间的
磁盘上。具体实现方法是在参数 innodb_data_file_path 中增加此文件,路径写为新磁盘的绝
对路径。例如,如果/home 下空间不足,希望在/home1 下新增加一个可自动扩充数据文件,
那么参数就可以这么写:
innodb_data_file_path =
/home/ibdata1:2000M;/home1/ibdata2:2000M:autoextend
当然,参数修改后必须重启数据库才可以生效。




DNS 反向解析的问题

在 MySQL 5.0 以前的版本中执行 show processlist 命令的时候,有时会出现很多进程,类似于
以下情况:
unauthenticated user | 192.168.5.71:57857 | NULL | Connect | NULL | login | NULL
这些进程会累计得越来越多,并且不会消失,应用无法正常响应,导致系统瘫痪。造成这种
现象的原因是什么呢?
原来,MySQL 默认情况下,对于远程连接过来的 IP 地址,会进行域名的逆向解析,如果系
统的 hosts 文件中没有与之对应的域名,MySQL 就会将此连接认为是无效用户,所以在进程
中出现“unauthenticated user”并导致进程阻塞。
解决的方法很简单,在启动的时候加上--skip-name-resolve 选项,则 MySQL 就可以跳过域名
解析过程,避免上述问题。在 MySQL 5.0 以后版本,默认都会跳过域名逆向解析。


mysql.sock 丢失后如何连接数据库

在 MySQL 服务器本机上连接数据库时,经常会出现 mysql.sock 不存在

P422页




同一台服务器运行多个 MySQL 数据库

在很多情况下,由于硬件资源的局限,用户通常需要在一台服务器上安装多个 MySQL 数据
库,从而为多个应用提供服务。在这种情况下,通常可以使用以下方法进行安装。
将每个 MySQL 安装在不同的用户下面,例如 mysql1 和 mysql2,在每个用户下面,分别
执行如下操作:




客户端怎么访问内网数据库


方法 1:使用 secureCRT 客户端工具













































评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值