本文目录一览:
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。那具体怎么做呢?