1,准备好mysql环境

源码安装mysql参考blog:http://blog.csdn.net/mchdba/article/details/35994251,源码包下载地址:http://download.csdn.net/detail/mchdba/7545037

1.1,准备好安装环境

groupaddmysql

useradd-g mysql mysql

autoreconf--force --install

libtoolize--automake --force

automake--force --add-missing

yuminstall -y libtoolize

yuminstall cmake -y

yuminstall gcc gcc-c++ -y

yuminstall -y ncurses-devel.x86_64

yuminstall -y cmake.x86_64

yuminstall -y libaio.x86_64

yuminstall -y bison.x86_64

yuminstall -y gcc-c++.x86_64

yuminstall make -y

1.2,创建mysql编译根目录

mkdir-p /usr/local/mysql

1.3,解压缩源码包

tar -xvf mysql-5.6.12.tar.gz

cd mysql-5.6.12

1.4,编译安装

timecmake . -DCMAKE_INSTALL_PREFIX=/usr/local/mysql-DMYSQL_DATADIR=/home/data/mysql/data -DWITH_INNOBASE_STORAGE_ENGINE=1-DMYSQL_UNIX_ADDR==/usr/local/mysql/mysql.sock -DMYSQL_USER=mysql-DDEFAULT_CHARSET=utf8 -DDEFAULT_COLLATION=utf8_general_ci

由于time make耗时比较长,所以事先已经安装好

timemake

timemake install

2,准备第一个实例3307

2.1建立好目录

mkdir /usr/local/mysql3307

chown -R mysql.mysql /usr/local/mysql3307/

mkdir -p /home/data/mysql3307/data

chown -R mysql.mysql /home/data/mysql3307

chown -R mysql.mysql/home/data/mysql3307/data

mkdir -p /home/data/mysql3307/binlog

chown -R mysql.mysql /home/data/mysql3307

mkdir -p /home/data/mysql3307/relay_log/

chown -R mysql.mysql /home/data/mysql3307/

2.2 配置文件

[mysqld_multi]

mysqld = /usr/local/mysql/bin/mysqld_safe

mysqladmin =/usr/local/mysql/bin/mysqladmin

log =/home/mysql/mydata/log/mysqld_multi.log

[mysqld1]

socket = /usr/local/mysql3307/mysql.sock

port = 3307

pid-file = /usr/local/mysql3307/mysqld.pid

datadir = /home/data/mysql3307/data

log_bin=/home/data/mysql3307/binlog

server-id = 1230

relay_log =/home/data/mysql3307/relay_log/mysql-relay-bin

log_slave_updates = 1

read_only = 0

innodb_buffer_pool_size = 128M

innodb_flush_log_at_trx_commit = 0

2.3 初始化数据库

/usr/local/mysql/scripts/mysql_install_db--user=mysql --basedir=/usr/local/mysql --datadir=/home/data/mysql3307/data

3,准备第二个实例3308

3.1 建立好目录

mkdir /usr/local/mysql3308

chown -R mysql.mysql /usr/local/mysql3308/

mkdir -p /home/data/mysql3308/data

chown -R mysql.mysql /home/data/mysql3308

chown -R mysql.mysql/home/data/mysql3308/data

mkdir -p /home/data/mysql3308/binlog

chown -R mysql.mysql /home/data/mysql3308

mkdir -p /home/data/mysql3308/relay_log/

chown -R mysql.mysql /home/data/mysql3308/

3.2 配置文件

[mysqld2]

socket = /usr/local/mysql3308/mysql.sock

port = 3308

pid-file = /usr/local/mysql3308/mysqld.pid

datadir = /home/data/mysql3308/data

log_bin=/home/data/mysql3308/binlog

server-id = 2230

relay_log =/home/data/mysql3308/relay_log/mysql-relay-bin

log_slave_updates = 1

read_only = 0

innodb_buffer_pool_size = 128M

innodb_flush_log_at_trx_commit = 0

3.3 初始化数据库

/usr/local/mysql/scripts/mysql_install_db--user=mysql --basedir=/usr/local/mysql --datadir=/home/data/mysql3308/data

4,准备第三个实例3309

4.1 建立好目录

mkdir /usr/local/mysql3309

chown -R mysql.mysql /usr/local/mysql3309/

mkdir -p /home/data/mysql3309/data

chown -R mysql.mysql /home/data/mysql3309

chown -R mysql.mysql/home/data/mysql3309/data

mkdir -p /home/data/mysql3309/binlog

chown -R mysql.mysql /home/data/mysql3309

mkdir -p /home/data/mysql3309/relay_log/

chown -R mysql.mysql /home/data/mysql3309/

4.2 配置文件

[mysqld3]

socket = /usr/local/mysql3309/mysql.sock

port = 3309

pid-file = /usr/local/mysql3309/mysqld.pid

datadir = /home/data/mysql3309/data

log_bin=/home/data/mysql3309/binlog

server-id = 3230

relay_log = /home/data/mysql3309/relay_log/mysql-relay-bin

log_slave_updates = 1

read_only = 0

innodb_buffer_pool_size = 128M

innodb_flush_log_at_trx_commit = 0

4.3 初始化数据库

/usr/local/mysql/scripts/mysql_install_db--user=mysql --basedir=/usr/local/mysql --datadir=/home/data/mysql3309/data

初始化信息如下所示:

  [mysql@data02 ~]$ /usr/local/mysql/scripts/mysql_install_db --user=mysql --basedir=/usr/local/mysql --datadir=/home/data/mysql3309/data
WARNING: Could not write to config file /usr/local/mysql/my-new.cnf: 权限不够
Installing MySQL system tables...2015-05-14 09:31:20 0 [Warning] TIMESTAMP with implicit DEFAULT value is deprecated. Please use --explicit_defaults_for_timestamp server option (see documentation for more details).
2015-05-14 09:31:20 12307 [Warning] Buffered warning: Changed limits: max_open_files: 1024 (requested 5000)
2015-05-14 09:31:20 12307 [Warning] Buffered warning: Changed limits: table_cache: 431 (requested 2000)
2015-05-14 09:31:20 12307 [Note] InnoDB: The InnoDB memory heap is disabled
2015-05-14 09:31:20 12307 [Note] InnoDB: Mutexes and rw_locks use GCC atomic builtins
2015-05-14 09:31:20 12307 [Note] InnoDB: Compressed tables use zlib 1.2.3
2015-05-14 09:31:20 12307 [Note] InnoDB: Using CPU crc32 instructions
2015-05-14 09:31:20 12307 [Note] InnoDB: Initializing buffer pool, size = 128.0M
2015-05-14 09:31:20 12307 [Note] InnoDB: Completed initialization of buffer pool
2015-05-14 09:31:20 12307 [Note] InnoDB: The first specified data file ./ibdata1 did not exist: a new database to be created!
2015-05-14 09:31:20 12307 [Note] InnoDB: Setting file ./ibdata1 size to 12 MB
2015-05-14 09:31:20 12307 [Note] InnoDB: Database physically writes the file full: wait...
2015-05-14 09:31:20 12307 [Note] InnoDB: Setting log file ./ib_logfile101 size to 48 MB
2015-05-14 09:31:20 12307 [Note] InnoDB: Setting log file ./ib_logfile1 size to 48 MB
2015-05-14 09:31:21 12307 [Note] InnoDB: Renaming log file ./ib_logfile101 to ./ib_logfile0
2015-05-14 09:31:21 12307 [Warning] InnoDB: New log files created, LSN=45781
2015-05-14 09:31:21 12307 [Note] InnoDB: Doublewrite buffer not found: creating new
2015-05-14 09:31:21 12307 [Note] InnoDB: Doublewrite buffer created
2015-05-14 09:31:21 12307 [Note] InnoDB: 128 rollback segment(s) are active.
2015-05-14 09:31:21 12307 [Warning] InnoDB: Creating foreign key constraint system tables.
2015-05-14 09:31:21 12307 [Note] InnoDB: Foreign key constraint system tables created
2015-05-14 09:31:21 12307 [Note] InnoDB: Creating tablespace and datafile system tables.
2015-05-14 09:31:21 12307 [Note] InnoDB: Tablespace and datafile system tables created.
2015-05-14 09:31:21 12307 [Note] InnoDB: Waiting for purge to start
2015-05-14 09:31:21 12307 [Note] InnoDB: 5.6.12 started; log sequence number 0
2015-05-14 09:31:21 12307 [Note] Binlog end
2015-05-14 09:31:21 12307 [Note] InnoDB: FTS optimize thread exiting.
2015-05-14 09:31:21 12307 [Note] InnoDB: Starting shutdown...
2015-05-14 09:31:22 12307 [Note] InnoDB: Shutdown completed; log sequence number 1625977
OK
Filling help tables...2015-05-14 09:31:22 0 [Warning] TIMESTAMP with implicit DEFAULT value is deprecated. Please use --explicit_defaults_for_timestamp server option (see documentation for more details).
2015-05-14 09:31:22 12332 [Warning] Buffered warning: Changed limits: max_open_files: 1024 (requested 5000)
2015-05-14 09:31:22 12332 [Warning] Buffered warning: Changed limits: table_cache: 431 (requested 2000)
2015-05-14 09:31:22 12332 [Note] InnoDB: The InnoDB memory heap is disabled
2015-05-14 09:31:22 12332 [Note] InnoDB: Mutexes and rw_locks use GCC atomic builtins
2015-05-14 09:31:22 12332 [Note] InnoDB: Compressed tables use zlib 1.2.3
2015-05-14 09:31:22 12332 [Note] InnoDB: Using CPU crc32 instructions
2015-05-14 09:31:22 12332 [Note] InnoDB: Initializing buffer pool, size = 128.0M
2015-05-14 09:31:22 12332 [Note] InnoDB: Completed initialization of buffer pool
2015-05-14 09:31:22 12332 [Note] InnoDB: Highest supported file format is Barracuda.
2015-05-14 09:31:22 12332 [Note] InnoDB: 128 rollback segment(s) are active.
2015-05-14 09:31:22 12332 [Note] InnoDB: Waiting for purge to start
2015-05-14 09:31:22 12332 [Note] InnoDB: 5.6.12 started; log sequence number 1625977
2015-05-14 09:31:22 12332 [Note] Binlog end
2015-05-14 09:31:22 12332 [Note] InnoDB: FTS optimize thread exiting.
2015-05-14 09:31:22 12332 [Note] InnoDB: Starting shutdown...
2015-05-14 09:31:24 12332 [Note] InnoDB: Shutdown completed; log sequence number 1625987
OK
To start mysqld at boot time you have to copy
support-files/mysql.server to the right place for your system
PLEASE REMEMBER TO SET A PASSWORD FOR THE MySQL root USER !
To do so, start the server, then issue the following commands:
  /usr/local/mysql/bin/mysqladmin -u root password 'new-password'
  /usr/local/mysql/bin/mysqladmin -u root -h data02 password 'new-password'
Alternatively you can run:
  /usr/local/mysql/bin/mysql_secure_installation
which will also give you the option of removing the test
databases and anonymous user created by default.  This is
strongly recommended for production servers.
See the manual for more instructions.
You can start the MySQL daemon with:
  cd . ; /usr/local/mysql/bin/mysqld_safe &
You can test the MySQL daemon with mysql-test-run.pl
  cd mysql-test ; perl mysql-test-run.pl
Please report any problems with the ./bin/mysqlbug script!
The latest information about MySQL is available on the web at
  http://www.mysql.com
Support MySQL by buying support/licenses at http://shop.mysql.com
WARNING: Could not copy config file template /usr/local/mysql/support-files/my-default.cnf to
/usr/local/mysql/my-new.cnf, may not have access rights to do so.
You may want to copy the file manually, or create your own,
it will then be used by default by the server when you start it.
WARNING: Default config file /etc/my.cnf exists on the system
This file will be read by default by the MySQL server
If you do not want to use this, either remove it, or use the
--defaults-file argument to mysqld_safe when starting the server

5,启动多实例数据库

mkdir -p /home/mysql/data/log

[mysql@data02 data]$ mysqld_multi--defaults-extra-file=/etc/my.cnf start 1,2,3

[mysql@data02 data]$

后台日志信息:

Starting MySQL servers

150514 09:36:14 mysqld_safe Logging to'/home/data/mysql3309/data/data02.err'.

150514 09:36:15 mysqld_safe Logging to '/home/data/mysql3308/data/data02.err'.

150514 09:36:15 mysqld_safe Logging to'/home/data/mysql3307/data/data02.err'.

150514 09:36:15 mysqld_safe Starting mysqlddaemon with databases from /home/data/mysql3308/data

150514 09:36:15 mysqld_safe Starting mysqlddaemon with databases from /home/data/mysql3307/data

150514 09:36:15 mysqld_safe Starting mysqlddaemon with databases from /home/data/mysql3309/data

6,查看多实例

[mysql@data02 ~]$ mysqld_multi--defaults-extra-file=/etc/my.cnf report

Reporting MySQL servers

MySQL server from group: mysqld1 is running

MySQL server from group: mysqld2 is running

MySQL server from group: mysqld3 is running

[mysql@data02 ~]$

后台日志信息:

Reporting MySQL servers

MySQL server from group: mysqld1 is running

MySQL server from group: mysqld2 is running

MySQL server from group: mysqld3 is running

7,停止多实例

mysqld_multi--defaults-extra-file=/etc/my.cnf stop 1,2,3

后台日志信息:

Stopping MySQL servers

150514 09:35:43 mysqld_safe mysqld from pidfile /usr/local/mysql3309/mysqld.pid ended

150514 09:35:43 mysqld_safe mysqld from pidfile /usr/local/mysql3307/mysqld.pid ended

150514 09:35:43 mysqld_safe mysqld from pidfile /usr/local/mysql3308/mysqld.pid ended

8,各自登录mysql实例

需要指定启动的socket就可以登录到各自的mysql实例,如下所示:

[mysql@data02 ~]$ mysql --socket=/usr/local/mysql3308/mysql.sock

Welcome to the MySQL monitor.  Commands end with ; or \g.

Your MySQL connection id is 2

Server version: 5.6.12-log Sourcedistribution

Copyright (c) 2000, 2013, Oracle and/or itsaffiliates. All rights reserved.

Oracle is a registered trademark of OracleCorporation and/or its

affiliates. Other names may be trademarksof their respective

owners.

Type 'help;' or '\h' for help. Type '\c' toclear the current input statement.

mysql> select @@port;

+--------+

| @@port |

+--------+

|  3308 |

+--------+

1 row in set (0.00 sec)

mysql>

mysql> create database d3308;

Query OK, 1 row affected (0.04 sec)

mysql>

9,可以在多端口上搭建主从、主主服务

9.1,在3307实例建立账号

复制账号

GRANTREPLICATION SLAVE,RELOAD,SUPER ON *.*TO repl@'192.168.52.%' IDENTIFIED BY'repl_1234';

备份账号

GRANTRELOAD, SUPER, LOCK TABLES, REPLICATION CLIENT, CREATE TABLESPACE ON *.* TO'backup'@'192.168.%' IDENTIFIED BY '123456';

GRANTALL PRIVILEGES ON `mysql`.* TO 'backup'@'192.168.%';

GRANTEVENT ON *.* TO 'backup'@'192.168.%';

9.2,将数据从3307实例同步到3308端口

备份:

/usr/local/mysql/bin/mysqldump-ubackup --password=123456 --host=192.168.52.138--socket=/usr/local/mysql3307/mysql.sock --port=3307 -R -E --skip-opt--single-transaction --flush-logs --master-data=2 --add-drop-table--create-option --quick --extended-insert=false --set-charset --disable-keys-A  > /tmp/alldbfullbackup.sql

导入:

/usr/local/mysql/bin/mysql-uroot -p --socket=/usr/local/mysql3308/mysql.sock --port=3308</tmp/alldbfullbackup.sql

9.3,在3308实例上建立复制链接

         找到复制点

more/tmp/alldbfullbackup.sql

         开始建立复制链接

CHANGE MASTER TOMASTER_HOST='192.168.52.138',MASTER_PORT=3307,

MASTER_USER='repl',

MASTER_PASSWORD='repl_1234',

MASTER_LOG_FILE='mysql-bin.000006',

MASTER_LOG_POS=120;

         开启复制

startslave;

         查看复制状态

showslave status\G;

mysql> show slave status\G

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

Slave_IO_State: Waiting formaster to send event

Master_Host: 192.168.52.138

Master_User: repl

Master_Port: 3307

Connect_Retry: 60

Master_Log_File: mysql-bin.000011

Read_Master_Log_Pos: 120

Relay_Log_File:mysql-relay-bin.000005

Relay_Log_Pos: 283

Relay_Master_Log_File: mysql-bin.000011

Slave_IO_Running: Yes

Slave_SQL_Running: Yes

……

Seconds_Behind_Master: 0

 

10,管理单个实例

停止实例2:

[root@data03 ~]# mysqld_multi--defaults-extra-file=/etc/my.cnf stop 2

[root@data03 ~]#

后台日志信息:

Stopping MySQL servers

150517 06:53:43 mysqld_safe mysqld from pidfile /usr/local/mysql3308/mysqld.pid ended

mysqld_multi log file version 2.16; run: 日  5月 17 06:53:48 2015

启动实例2:

[root@data03 ~]# mysqld_multi--defaults-extra-file=/etc/my.cnf start 2

[root@data03 ~]#

后台日志信息:

Starting MySQL servers

150517 06:53:48 mysqld_safe Logging to'/home/data/mysql3308/data/data03.err'.

150517 06:53:48 mysqld_safe Starting mysqlddaemon with databases from /home/data/mysql3308/data

11,如何使用多实例

由于多实例中,各个实例的资源都是不share的,所以要合理分配好各个实例的内存、磁盘等资源,避免out of memery或则 full disk的情况出现。

转载于:https://blog.51cto.com/jinliang/1922229

mysql mysqld_multi 单机多进程相关推荐

  1. php多线程 mysql_php通过共享内存,控制mysql连接数,多进程插入数据(pcnt学习四)...

    本人前一遍blog中提到,当进程数过多时,多进程插入mysql数据库表,超过了mysql最大连接数,就会报错,插入就会有失败的情况.想通过进程间通信来控制一下连接数,参考了一些网上的blog 实现了一 ...

  2. mysql 多进程配置_基于mysql_multi实现MySQL多实例多进程配置

    环境设置 一台服务器配置IP为:192.168.200.111 主机名为:localhost 实验初始配置:关闭防火墙与selinux systemctl stop firewalld iptable ...

  3. php mysql多线程处理数据6_PHP WIN MYSQL Rdeis 下多进程处理产品数据测试 31 万条 6 进程...

    刚开始的时候 跑6个进程 老是爆这个错误 然后程序蹦盘 数据库连接错误由于系统缓冲区空间不足或队列已满,不能执行套接字上的操作 英文原文 Understanding the error "A ...

  4. mysql做十亿条数据查询_数据库优化:mysql数据库单机数十亿数据查询设计

    很久没写文章,是不是想着写点什么东西,分享下我的数据库设计思路,主要是针对单机数十亿及以上数据查询优化技巧. 如果只是简单的查询,没有频繁的写入操作,对查询速度不要求在毫秒级别,就不需要什么大型的数据 ...

  5. 配置MySQL数据库单机多实例

    一.什么是MySQL多实例 简单的说就是在一台机器上开启多个不同的服务端口(例如:3306.3307),运行多个mysql服务进程,这些服务进程通过不同的socket监听不同的服务端口来提供各自的服务 ...

  6. MySQL本地单机数据库_天龙单机网站架设和本地验证数据库mysql的搭建

    本次带来的经验是:如何搭建网站和简单的网站安全防护.以及mysql的搭建 方便新手,本次使用的是一键安装,这样使用比较方便.下面是教程 首先,网站需要windows server 2003r2 32位 ...

  7. 一台服务器可以安装多个mysql数据库_在一台Linux服务器上安装多个MySQL实例(一)--使用mysqld_multi方式...

    (一)MySQL多实例概述 实例是进程与内存的一个概述,所谓MySQL多实例,就是在服务器上启动多个相同的MySQL进程,运行在不同的端口(如3306,3307,3308),通过不同的端口对外提供服务 ...

  8. mysqld_multi关闭不了mysql

     1. 配置了mysqld_multi启动mysql,但关闭时却关闭不了.查了一下,原来是如下原因: [root@zw-test-db ~]# my_print_defaults mysqld_m ...

  9. rpm安装两个mysql_MySQL通过rpm安装及其单机多实例部署

    1. CentOS 下安装 MySQL Oracle 收购 MySQL 后,CentOS 为避免 MySQL 闭源的风险,改用 MySQL 的分支 MariaDB: MariaDB 完全兼容 MySQ ...

最新文章

  1. 大写的服!中科大博士20万字论文:如何给女朋友送礼物
  2. JAVA实现用两个栈来实现一个队列,完成队列的Push和Pop操作(《剑指offer》)
  3. 【面试题41】和为s的两个数字VS和为s的连续整数序列
  4. cleanmymac定时清理与垃圾监测
  5. 北斗导航 | Matlab实现电离层延迟计算:Klobuchar(源代码)
  6. Java后端,应该日常翻看的中文技术网站
  7. c# dataGridView 设置
  8. linux之类似Windows的资源管理器gnome-system-monitor(可用这个杀死进程)
  9. Java容器Stack
  10. java resouce_Java 获取Resource目录下的文件解决办法
  11. qq浏览文件服务器,腾讯浏览服务
  12. 优秀的Linux文本编辑器 (转载)
  13. iOS 本地推送以及自定义推送声音
  14. 以太坊的POS共识机制(一)友善的小精灵 Casper
  15. 【Unity Native Plugins】1.调用动态库so-android篇 附录完整工程
  16. 面试技巧——程序员简历模板
  17. [渝粤教育] 中国地质大学 信息检索 复习题 (2)
  18. [AngularJS面面观] 16. 依赖注入 --- 注入器中如何管理对象
  19. 剑指offer刷题总结
  20. aop:aspectj-autoproxy 标签解析

热门文章

  1. SourceTree的安装
  2. PHP替换字符串函数strtr()和str_replace()
  3. 最新批量***dedecms|dedecms最新0day
  4. 从零开始学习jQuery (六) AJAX快餐【转】
  5. Unity下的ECS框架 Entitas简介
  6. WIN XP 命令汇总
  7. [iOS]提交App报错ERROR ITMS -90207
  8. 易宝典文章——玩转Office 365中的Exchange Online服务 之五 怎样利用PSl连接Exchange Online实现管理...
  9. 关于软件开发的随想,纯属意淫
  10. vue项目通过命令行传参实现多环境配置(基于@vue/cli)