189 8069 5689

mysql怎么支持多机 安装多个mysql

在一台机器上,怎么安装多个mysql数据库,怎样开启多个mysql服务,。在线等,

这种架构一般用在以下三类场景

创新互联专业为企业提供孟州网站建设、孟州做网站、孟州网站设计、孟州网站制作等企业网站建设、网页设计与制作、孟州企业网站模板建站服务,十年孟州做网站经验,不只是建网站,更提供有价值的思路和整体网络服务。

1. 备份多台 Server 的数据到一台如果按照数据切分方向来讲,那就是垂直切分。比如图 2,业务 A、B、C、D 是之前拆分好的业务,现在需要把这些拆分好的业务汇总起来备份,那这种需求也很适用于多源复制架构。实现方法我大概描述下:业务 A、B、C、D 分别位于 4 台 Server,每台 Server 分别有一个数据库来隔离前端的业务数据,那这样,在从库就能把四台业务的数据全部汇总起来,而不需要做额外的操作。那没有多源复制之前,要实现这类需求,只能在汇总机器上搭建多个 MySQL 实例,那这样势必会涉及到跨库关联的问题,不但性能急剧下降,管理多个实例也没有单台来的容易。

2. 用来聚合前端多个 Server 的分片数据。

同样,按照数据切分方向来讲,属于水平切分。比如图 3,按照年份拆分好的数据,要做一个汇总数据展现,那这种架构也非常合适。实现方法稍微复杂些:比如所有 Server 共享同一数据库和表,一般为了开发极端透明,前端配置有分库分表的中间件,比如爱可生的 DBLE。

3. 汇总并合并多个 Server 的数据

第三类和第一种场景类似。不一样的是不仅仅是数据需要汇总到目标端,还得合并这些数据,这就比第一种来的相对复杂些。比如图 4,那这样的需求,是不是也适合多源复制呢?答案是 YES。那具体怎么做呢?

如何在一台Windows主机上运行多个MySQL服务

1、首先要在本地建立两个mysql服务(参考这里),指定不同的端口。我这里一个主(3306),一个从(3307)。2、然后修改主配置文件:

[mysqld]

server-id = 1

binlog-do-db=test #要同步的数据库

#binlog-ignore-db=mysql #不同步的数据库,如果指定了binlog-do-db这里应该可以不用指定的

log-bin=mysql-bin #要生成的二进制日记文件名称

修改从配置文件:

[mysqld]

server-id = 2

log-bin = mysql-bin

replicate-do-db=test

3、在主库添加一个用户 repl 并指定replication权限

create user 'repl'@'127.0.0.1' identified by 'asdf';

GRANT REPLICATION SLAVE ON *.* TO 'repl'@'127.0.0.1'; -- --这里我指定数据库(test.*)时报错,而指定全库(*.*)时会成功。

4、保持主从mysql的test数据库初始状态一致。

一般是先将所有的表加读锁,然后copy磁盘上的数据库文件夹。我这里直接停止服务,然后将数据文件拷贝过去。

5、在主数据库里面运行show master status;记下file和position字段对应的参数。

MySQL数据库如何实现双机热备的配置成功方案

1.mysql数据库没有增量备份的机制,当数据量太大的时候备份是一个很大的问题。还好mysql数据库提供了一种主从备份的机制,其实就是把主数据库的所有的数据同时写到备份数据库中。实现mysql数据库的热备份。

2.要想实现双机的热备首先要了解主从数据库服务器的版本的需求。要实现热备mysql的版本都要高于3.2,还有一个基本的原则就是作为从数据库的数据库版本可以高于主服务器数据库的版本,但是不可以低于主服务器的数据库版本。

3.设置主数据库服务器:

a.首先查看主服务器的版本是否是支持热备的版本。然后查看my.cnf(类unix)或者my.ini(windows)中mysqld配置块的配置有没有log-bin(记录数据库更改日志),因为mysql的复制机制是基于日志的复制机制,所以主服务器一定要支持更改日志才行。然后设置要写入日志的数据库或者不要写入日志的数据库。这样只有您感兴趣的数据库的更改才写入到数据库的日志中。

server-id=1 //数据库的id这个应该默认是1就不用改动

log-bin=log_name //日志文件的名称,这里可以制定日志到别的目录 如果没有设置则默认主机名的一个日志名称

binlog-do-db=db_name //记录日志的数据库

binlog-ignore-db=db_name //不记录日志的数据库

以上的如果有多个数据库用","分割开

然后设置同步数据库的用户帐号

mysql GRANT REPLICATION SLAVE ON *.*

- TO 'repl'@'%.mydomain.com' IDENTIFIED BY 'slavepass';

4.0.2以前的版本, 因为不支持REPLICATION 要使用下面的语句来实现这个功能

mysql GRANT FILE ON *.*

- TO 'repl'@'%.mydomain.com' IDENTIFIED BY 'slavepass';

设置好主服务器的配置文件后重新启动数据库

b.锁定现有的数据库并备份现在的数据

锁定数据库

mysql FLUSH TABLES WITH READ LOCK;

备份数据库有两种办法一种是直接进入到mysql的data目录然后打包你需要备份数据库的文件夹,第二种是使用mysqldump的方式来备份数据库但是要加上"--master-data " 这个参数,建议使用第一种方法来备份数据库

c.查看主服务器的状态

mysql show master status\G;

+---------------+----------+--------------+------------------+

| File | Position | Binlog_Do_DB | Binlog_Ignore_DB |

+---------------+----------+--------------+------------------+

| mysql-bin.003 | 73 | test | manual,mysql |

+---------------+----------+--------------+------------------+

记录File 和 Position 项目的值,以后要用的。

d.然后把数据库的锁定打开

mysql UNLOCK TABLES;

4.设置从服务器

a.首先设置数据库的配置文件

server-id=n //设置数据库id默认主服务器是1可以随便设置但是如果有多台从服务器则不能重复。

master-host=db-master.mycompany.com //主服务器的IP地址或者域名

master-port=3306 //主数据库的端口号

master-user=pertinax //同步数据库的用户

master-password=freitag //同步数据库的密码

master-connect-retry=60 //如果从服务器发现主服务器断掉,重新连接的时间差

report-host=db-slave.mycompany.com //报告错误的服务器

b.把从主数据库服务器备份出来的数据库导入到从服务器中

c.然后启动从数据库服务器,如果启动的时候没有加上"--skip-slave-start"这个参数则进入到mysql中

mysql slave stop; //停止slave的服务

d.设置主服务器的各种参数

mysql CHANGE MASTER TO

- MASTER_HOST='master_host_name', //主服务器的IP地址

- MASTER_USER='replication_user_name', //同步数据库的用户

- MASTER_PASSWORD='replication_password', //同步数据库的密码

- MASTER_LOG_FILE='recorded_log_file_name', //主服务器二进制日志的文件名(前面要求记住的参数)

- MASTER_LOG_POS=recorded_log_position; //日志文件的开始位置(前面要求记住的参数)

e.启动同步数据库的线程

mysql slave start;

查看数据库的同步情况。

查看主从服务器的状态

mysql SHOW PROCESSLIST\G //可以查看mysql的进程看看是否有监听的进程

如果日志太大清除日志的步骤如下

1.锁定主数据库

mysql FLUSH TABLES WITH READ LOCK;

2.停掉从数据库的slave

mysql slave stop;

3.查看主数据库的日志文件名和日志文件的position

show master status;

+---------------+----------+--------------+------------------+

| File | Position | Binlog_do_db | Binlog_ignore_db |

+---------------+----------+--------------+------------------+

| louis-bin.001 | 79 | | mysql |

+---------------+----------+--------------+------------------+

4.解开主数据库的锁

mysql unlock tables;

5.更新从数据库中主数据库的信息

mysql CHANGE MASTER TO

- MASTER_HOST='master_host_name', //主服务器的IP地址

- MASTER_USER='replication_user_name', //同步数据库的用户

- MASTER_PASSWORD='replication_password', //同步数据库的密码

- MASTER_LOG_FILE='recorded_log_file_name', //主服务器二进制日志的文件名(前面要求记住的参数)

- MASTER_LOG_POS=recorded_log_position; //日志文件的开始位置(前面要求记住的参数)

6.启动从数据库的slave

mysql slave start;

mysql可以扩展多少主机

mysql最多可以扩展9台主机。

MySQL是一种关系型数据库,在Java企业级开发中非常常用,因为MySQL是开源免费的,并且方便扩展。阿里巴巴数据库系统也大量用到MySQL,因此它的稳定性是有保障的。MySQL是开放源代码的,因此任何人都可以在GPL的许可下下载并根据个性化的需要对其进行修改。MySQL的默认端口号是3306。

MyISAM是MySQL的默认数据库引擎。虽然性能极佳,而且提供了大量的特性,包括全文索引、压缩、空间函数等,但MyISAM不支持事务和行级锁,而且最大的缺陷就是崩溃后无法安全恢复。不过,5.5版本之后,MySQL引入了InnoDB,MySQL5.5版本后默认的存储引擎为InnoDB。

linux下用mysql-5.5.17如何实现双机热备

双机热备说明现成资料很多;我简单说下步骤:

主机为A,从机为B

A的操作,

用root账户登录,mysql -u root -p密码

create database wangxh; 创建同步数据库

grant all privileges on wangxh.* to 'tom'@'B的ip' identified by '密码'; //添加用于B机同步的账号tom

grant replication slave on *.* to 'tom'@'B的ip'; //这个权限需要额外加

flush privileges; 刷新权限表,不然tom用户的权限无效

关闭mysql服务

编辑my.cnf,在[mysqld]下加上

server-id=1,//主机id,可以任意数字,一般都为1

log-bin=mysql-bin.index //生成的bin-log文件名,可以在mysql数据文件夹下找到

binlog_format=row //默认是STATEMENT,建议用row

binlog-do-db=wangxh --允许被复制的库名,可以设置多个,用“,”分开

B的操作,

用root账户登录,mysql -u root -p密码

create database wangxh; 创建同步数据库

编辑my.cnf,在[mysqld]下加上

server-id=2 //只要不和A的server-id重复即可

master-host=A的ip

master-user=tom

master-password=tom的密码

replicate-do-db=back;复制的数据库;

最后保存文件,然后重启AB机器的mysql

登录B的mysql执行,start slave

查看slave状态,

show slave status;

mysql 多机备份怎么做?

目前mysql5.6版本也未能支持CHANGE MASTER TO 多用户;而且只基于数据库同步,不支持单个实例多线程同步


当前标题:mysql怎么支持多机 安装多个mysql
文章出自:http://cdxtjz.cn/article/doddjsc.html

其他资讯