您的位置:

mysql5运行多个实例,mysql多实例和集群

本文目录一览:

MySQL在一台db服务器上面如何启动多个实例

一、上传RPM包到服务器上 二、安装mysql服务器端rpm -ivhMySQL-server-5.5.8-1.rhel5.x86_64.rpm 三、安装mysql客户端 rpm -ivhMySQL-client-5.5.8-1.rhel5.x86_64.rpm 四、创建目录 在/data下创建目录,把原来的数据目录/var/lib/mysql 移到/data/mysql/data1和/data/mysql/data2下,并修改mysql目录以及子目录权限 PS:安装后默认的几个重要目录 目录 内容/var/lib/mysql 数据文件,日志文件等等/usr/bin客户端程序和脚本/usr/share/mysql 错误消息和字符集文件/etc/rc.d/init.d/mysql 启动脚本文件 创建目录 修改权限 五、修改并上传配置文件my.cnf 从服务器上的/usr/share/mysql目录中把my-innodb-heavy-4G.cnf拷贝一份到本地。编辑其内容增加数据文件和日志文件的目录,修改socket目录。 六、用mysql_multi启动多个服务 启动:mysqld_multi --defaults-file=/etc/my.cnf start1,2 查看是否启动:mysqld_multi --defaults-file=/etc/my.cnfreport 1 七、查看端口是否打开 八、连接进入指定的mysql服务器 mysql -u root -S/tmp/mysql1.sock 或者mysql -uroot -P3307 -h127.0.0.1 九、记得关闭防火墙

ubuntu14.04下配置mysql5.5多个实例

这个一台机器,配置一主一从的。

# 1.shutdown mysql

$mysqladmin -uroot -pmysql

$netstat -lnt|grep 3306

# 2.copy datafile

$cp -R /data/mysqldata/3306 /data/mysqldata/3307

change primary /data/mysqldata/3306/my.cnf

server_id = 2433306

log-bin = /data/mysqldata/3306/binlog/mysql-bin

start mysql

$ mysql_db_startup.sh

# 3.create user for copy on primary

mysql grant replication slave on *.* to 'repl'@'192.168.2.%' identified by 'replsafe';

mysql show master status;

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

| File | Position | Binlog_Do_DB | Binlog_Ignore_DB | Executed_Gtid_Set |

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

| mysql-bin.000005 | 330 | | | |

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

1 row in set (0.03 sec)

# 4.edit /data/mysqldata/3307/my.cnf on slave

server_id = 2433307

log-bin = /data/mysqldata/3306/binlog/mysql-bin

change 3306 to 3307 on my.cnf

$sed -i 's/3306/3307/g' /data/mysqldata/3307/my.cnf

auto.cnf save mysql server-uuid

$rm /data/mysqldata/3307/data/auto.cnf

# 5.start slave

[mysql@mysql scripts]$ mysql_db_startup.sh 3307

connect to slave mysql

$/usr/local/mysql/bin/mysql -usystem -p'root' -S /data/mysqldata/3307/mysql.sock

mysql change master to

- master_host='192.168.2.100',

- master_port=3306,

- master_user='repl',

- master_password='replsafe',

- master_log_file='mysql-bin.000005',

- master_log_pos=330;

*** change master to master_host='192.168.2.100',master_port=3306,master_user='repl',master_password='replsafe', master_log_file='mysql-bin.000005',master_log_pos=330;

Query OK, 0 rows affected, 2 warnings (0.08 sec)

mysql start slave;

Query OK, 0 rows affected (0.04 sec)

# 6.test copy

On primary

mysql prompt Master

PROMPT set to 'Master'

Master use ylo;

Master create table ct1(id int);

Master insert into ct1 values(1);

on slave

mysql prompt Slave

Slaveuse ylo;

Slavedesc ct1;

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

| Field | Type | Null | Key | Default | Extra |

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

| id | int(11) | YES | | NULL | |

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

1 row in set (0.06 sec)

Slaveselect * from ct1;

+------+

| id |

+------+

| 1 |

+------+

1 row in set (0.02 sec)

It seems that we are successful.

check copy status

Slaveshow slave status\G

*************************** 1. row ***************************

Slave_IO_State: Waiting for master to send event

Master_Host: 192.168.2.100

Master_User: repl

Master_Port: 3306

Connect_Retry: 60

Master_Log_File: mysql-bin.000005

Read_Master_Log_Pos: 911

Relay_Log_File: mysql-relay-bin.000002

Relay_Log_Pos: 864

Relay_Master_Log_File: mysql-bin.000005

Slave_IO_Running: Yes

Slave_SQL_Running: Yes

Replicate_Do_DB:

Replicate_Ignore_DB:

Replicate_Do_Table:

Replicate_Ignore_Table:

Replicate_Wild_Do_Table:

Replicate_Wild_Ignore_Table:

Last_Errno: 0

Last_Error:

Skip_Counter: 0

Exec_Master_Log_Pos: 911

Relay_Log_Space: 1037

Until_Condition: None

Until_Log_File:

Until_Log_Pos: 0

Master_SSL_Allowed: No

Master_SSL_CA_File:

Master_SSL_CA_Path:

Master_SSL_Cert:

Master_SSL_Cipher:

Master_SSL_Key:

Seconds_Behind_Master: 0

Master_SSL_Verify_Server_Cert: No

Last_IO_Errno: 0

Last_IO_Error:

Last_SQL_Errno: 0

Last_SQL_Error:

Replicate_Ignore_Server_Ids:

Master_Server_Id: 2433306

Master_UUID: ed611fac-75a8-11e6-9219-000c29d651e0

Master_Info_File: /data/mysqldata/3307/data/master.info

SQL_Delay: 0

SQL_Remaining_Delay: NULL

Slave_SQL_Running_State: Slave has read all relay log; waiting for the slave I/O thread to update it

Master_Retry_Count: 86400

Master_Bind:

Last_IO_Error_Timestamp:

Last_SQL_Error_Timestamp:

Master_SSL_Crl:

Master_SSL_Crlpath:

Retrieved_Gtid_Set:

Executed_Gtid_Set:

Auto_Position: 0

1 row in set (0.00 sec)

在一台机器上,怎么安装多个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。那具体怎么做呢?