centos6安装多实例mysql
linux系统centos 6.5,使用二进制安装多实例mysql 5.5.60
所需安装包mysql-5.5.60-linux-glibc2.12-x86_64.tar.gz、ncurses-devel-5.7-4.20090207.el6.x86_64.rpm、libaio-devel-0.3.107-10.el6.x86_64.rpm
在一台机器上开启多个不同的服务端口,运行多个mysql服务进程,这些mysql多实例共用一套mysql安装程序,使用不同(也可以相同)的my.cnf配置文件、启动程序、数据文件,多个实例根据配置文件对应的设定值来取得对应数量的服务器相关硬件资源。多实例类似合租的各个房间,硬件资源相当于公用的厨房、卫生间和客厅
创建更新包目录,并将三个安装包上传至该目录下,赋予执行权限
[root@oldboy ~]# mkdir -p /home/oldboy/tools
[root@oldboy ~]# cd /home/oldboy/tools
[root@oldboy tools]# chmod +x *
[root@oldboy tools]# rpm -ivh --nodeps ncurses-devel-5.7-4.20090207.el6.x86_64.rpm
[root@oldboy tools]# rpm -ivh libaio-devel-0.3.-.el6.x86_64.rpm
创建用户和组、解压二进制mysql安装包、并创建软连接
[root@oldboy tools]# groupadd mysql
[root@oldboy tools]# useradd -M mysql -g mysql -s /sbin/nologin
[root@oldboy tools]# tar zxf mysql-5.5.-linux-glibc2.-x86_64.tar.gz
[root@oldboy tools]# mkdir -p /application/
[root@oldboy tools]# mv mysql-5.5.-linux-glibc2.-x86_64 /application/mysql-5.5.
[root@oldboy tools]# ln -s /application/mysql-5.5./ /application/mysql
以/data目录作为mysql多实例的总根目录,在/data下创建mysql实例端口号3306、3307的二级目录,不同的端口号代表不同的实例,各个实例目录下又包含各自的数据文件、配置文件及启动文件。
[root@oldboy tools]# mount /dev/cdrom /mnt
mount: block device /dev/sr0 is write-protected, mounting read-only
[root@oldboy tools]# cd /mnt/Packages/
[root@oldboy Packages]# rpm -ivh tree-1.5.-.el6.x86_64
[root@oldboy Packages]# mkdir -p /data/{,}/data
[root@oldboy Packages]# tree /data
/data
├──
│ └── data
└──
└── data directories, files
配置mysql配置文件
[root@oldboy Packages]# mv /etc/my.cnf /etc/my.cnf.bak
[root@oldboy Packages]# cd /application/mysql/support-files/
[root@oldboy support-files]# cp my-small.cnf /etc/my.cnf
再将事先编辑好的两个my.cnf配置文件分别放置到/data/3306/和/data/3307/下,两个 mysql配置文件分别放置到/data/3306/和/data/3307/下(3306和3307的两对配置文件除了端口3306和3307不同,其他完全相同),修改所属组和权限
[root@oldboy ~]# chown -R mysql.mysql /data
[root@oldboy ~]# chmod +x /data/{,}/mysql
3306的my.cnf内容如下
[client]
port=
socket= /data//mysql.sock
[mysql]
no-auto-rehash
[mysqld]
user = mysql
port =
socket = /data//mysql.sock
basedir = /application/mysql
datadir = /data//data
open_files_limit=
back_log =
max_connections =
max_connect_errors =
table_cache =
external-locking = FALSE
max_allowed_packet =8M
sort_buffer_size = 1M
join_buffer_size = 1M
thread_cache_size =
thread_concurrency =
query_cache_size = 2M
query_cache_limit = 1M
query_cache_min_res_unit = 2k
#default_table_type = InnoDB
thread_stack = 192K
#transaction_isolation = READ-COMMITTED
tmp_table_size = 2M
max_heap_table_size = 2M
long_query_time =
#log_long_format
#log-error = /data//error.log
#log-slow-queries =/data//slow.log
pid-file = /data//mysql.pid
log-bin = /data//mysql-bin
relay-log = /data//relay-bin
relay-log-info-file = /data//relay-log.info
binlog_cache_size = 1M
max_binlog_cache_size = 1M
max_binlog_size = 2M
expire_logs_days =
key_buffer_size = 16M
read_buffer_size = 1M
read_rnd_buffer_size = 1M
bulk_insert_buffer_size = 1M
#myisam_sort_buffer_size = 1M
#myisam_max_sort_file_size = 10G
#myisam_max_extra_sort_file_size = 10G
#myisam_repair_threads =
#myisam_recover
lower_case_table_names =
skip-name-resolve
slave-skip-errors = ,
replicate-ignore-db=mysql
server-id =
innodb_additional_mem_pool_size = 4M
innodb_buffer_pool_size = 32M
innodb_data_file_path = ibdata1:128M:autoextend
innodb_file_io_threads =
innodb_thread_concurrency =
innodb_flush_log_at_trx_commit =
innodb_log_buffer_size = 2M
innodb_log_file_size = 4M
innodb_log_files_in_group =
innodb_max_dirty_pages_pct =
innodb_lock_wait_timeout =
innodb_file_per_table =
[mysqldump]
quick
max_allowed_packet = 2M
[mysqld_safe]
log-error=/data//mysql3306.err
pid-file=/data//mysqld.pid
3306的mysql文件内容如下
#!/bin/sh
######################################
######################################
#init
port=
mysql_user="root"
mysql_pwd="oldboy"
CmdPath="/application/mysql/bin"
mysql_sock="/data/${port}/mysql.sock" #startup function
function_start_mysql()
{
if [ ! -e "$mysql_sock" ];then
printf "Starting MySQL...\n"
/bin/sh ${CmdPath}/mysqld_safe --defaults-file=/data/${port}/my.cnf >& > /dev/null &
else
printf "MySQL is running...\n"
exit
fi
} #stop function
function_stop_mysql()
{
if [ ! -e "$mysql_sock" ];then
printf "MySQL is stopped...\n"
exit
else
printf "Stoping MySQL...\n"
${CmdPath}/mysqladmin -u ${mysql_user} -p${mysql_pwd} -S /data/${port}/mysql.sock shutdown
fi
} #restart function
function_restart_mysql()
{
printf "Restarting MySQL...\n"
function_stop_mysql
sleep
function_start_mysql
} case $ in
start)
function_start_mysql
;;
stop)
function_stop_mysql
;;
restart)
function_restart_mysql
;;
*)
printf "Usage: /data/${port}/mysql {start|stop|restart}\n"
esac
设置PATH环境变量
[root@oldboy ~]# echo 'export PATH=/application/mysql/bin:$PATH'>>/etc/profile
[root@oldboy ~]# source /etc/profile
[root@oldboy ~]# echo $PATH
/application/mysql/bin:/usr/lib64/qt-3.3/bin:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin
安装两个mysql实例,出现两个ok表示此步骤没有问题
[root@oldboy ~]# cd /application/mysql/scripts/
[root@oldboy scripts]# ./mysql_install_db --basedir=/application/mysql --datadir=/data//data --user=mysql
…………………
Installing MySQL system tables...
:: [Note] Ignoring --secure-file-priv value as server is running with --bootstrap.
:: [Note] /application/mysql/bin/mysqld (mysqld 5.5.) starting as process ...
OK
Filling help tables...
:: [Note] Ignoring --secure-file-priv value as server is running with --bootstrap.
:: [Note] /application/mysql/bin/mysqld (mysqld 5.5.) starting as process ...
OK
…………………
[root@oldboy scripts]# ./mysql_install_db --basedir=/application/mysql --datadir=/data//data --user=mysql
…………………
Installing MySQL system tables...
:: [Note] Ignoring --secure-file-priv value as server is running with --bootstrap.
:: [Note] /application/mysql/bin/mysqld (mysqld 5.5.) starting as process ...
OK
Filling help tables...
:: [Note] Ignoring --secure-file-priv value as server is running with --bootstrap.
:: [Note] /application/mysql/bin/mysqld (mysqld 5.5.) starting as process ...
OK
…………………
启动mysql实例,先启动3306实例
[root@oldboy scripts]# /data//mysql start
Starting MySQL...
[root@oldboy scripts]# :: mysqld_safe error: log-error set to '/data/3306/mysql3306.err', however file don't exists. Create writable for user 'mysql'.
上面报log-error '/data/3306/mysql3306.err'不能存在,那么创建
[root@oldboy scripts]# cd /data
[root@oldboy data]# touch /mysql3306.err
[root@oldboy data]# touch /mysql3307.err
[root@oldboy data]# chown mysql.mysql /mysql3306.err
[root@oldboy data]# chown mysql.mysql /mysql3307.err
再分别启动和登录登录两个实例,启动后通过netstat -lntup查看启动情况,多实例登录时需要通过-S指定sock文件,且初次登录没有密码
[root@oldboy data]# /data//mysql start
Starting MySQL...
[root@oldboy data]# /data//mysql start
Starting MySQL...
[root@oldboy ]# netstat -lntup|grep
tcp 0.0.0.0: 0.0.0.0:* LISTEN /mysqld
tcp 0.0.0.0: 0.0.0.0:* LISTEN /mysqld
[root@oldboy data]# mysql -S /data//mysql.sock (无密码登录)
[root@oldboy data]# mysql -S /data//mysql.sock (无密码登录)
通过/application/mysql/bin下的mysqladmin命令给两个实例设置root密码,再通过密码登录mysql
[root@oldboy data]# mysqladmin -u root -S /data//mysql.sock password "oldboy"
[root@oldboy data]# mysqladmin -u root -S /data//mysql.sock password "oldboy"
[root@oldboy data]# mysql -uroot -poldboy -S /data//mysql.sock(有密码登录)
mysql> system mysql -uroot -poldboy -S /data//mysql.sock(在3306实例中通过system系统命令切换到3307实例)
设置多实例开机自启动
[root@oldboy data]# echo "#mysql multi instance start when system starting" >>/etc/rc.local
[root@oldboy data]# echo "/data/3306/mysql start" >>/etc/rc.local
[root@oldboy data]# echo "/data/3307/mysql start" >>/etc/rc.local
[root@oldboy data]# tail - /etc/rc.local
tail: inotify cannot be used, reverting to polling
#mysql multi instance start when system starting
/data//mysql start
/data//mysql start
centos6安装多实例mysql的更多相关文章
- 一台Ubuntu server上安装多实例MySQL
受环境所迫,在一台Ubuntu server上安装多个实例MySQL. 手动安装MySQL 环境:Ubuntu server 11.10 64bit + mysql-5.5.17-linux2.6-x ...
- 【MySQL】源码编译安装和配置MySql 5.5.32(单实例)
[需求描述] 在CentOS环境中,通过编译源码的方式,安装并且配置“单实例”的MySQL5.5.32数据库. MySQL的安装目录为:/application/mysql-5.5.32 MySQL数 ...
- CentOS6.5下源码安装多个MySQL实例及复制搭建
多实例安装本节是在CentOS6.5下源码安装MySQL5.6.35的基础上,在同一台机器增加一个MySQL实例.参考Centos中安装多个mysql数据的配置实例,安装目录为/usr/local/m ...
- CentOS6.0(64位)安装Apache+PHP+Mysql教程,安装Magento(解决DOM,Mcrypt,GD问题)完整教程
CentOS6.0(64位)安装Apache+PHP+Mysql教程,安装Magento(解决DOM,Mcrypt,GD问题)完整教程 0 Posted by :小黑 On : 2012 年 9 ...
- centos6 安装mysql
如果要在Linux上做j2ee开发,首先得搭建好j2ee的开发环境,包括了jdk.tomcat.eclipse的安装(这个在之前的一篇随笔中已经有详细讲解了Linux学习之CentOS(七)--Cen ...
- CentOS6.7下使用非root用户(普通用户)编译安装与配置mysql数据库并使用shell脚本定时任务方式实现mysql数据库服务随机自动启动
CentOS6.7下使用非root用户(普通用户)编译安装与配置mysql数据库并使用shell脚本定时任务方式实现mysql数据库服务随机自动启动1.关于mysql?MySQL是一个关系型数据库管理 ...
- 如何在同一台机器上安装多个MySQL的实例
转自:'http://www.cnblogs.com/shangzekai/p/4375271.html 最近由于工作的需要,需要在同一台机器上搭建两个MySQL的实例,(注:已经存在了一个3306的 ...
- 同一台windows下配置安装多个mysql实例,实现主从同步
一.安装多个mysql 参见: https://blog.csdn.net/wrh_csdn/article/details/80198795 https://www.cnblogs.com/qjoa ...
- MySQL 在Windows平台上的安装及实例多开
MySQL在Windows平台上的安装及实例多开 by:授客 QQ:1033553122 测试环境 Win7 64 mysql-5.7.20-winx64.zip 下载地址: https://cd ...
随机推荐
- MongoDB--运行环境
版本 a.b.c a大版本 b中版本分奇数偶数 奇数是开发版 偶数是稳定版 c小版本 ssh工具:远程Linux机器.在windows下使用 Linux 下使用vim windows下使用 ...
- express-generator 自动生成服务器基本文件
(1) 安装 express-generator 构建工具 npm install -g express-generator 在命令行中用 npm 在全局安装 express-generator 脚手 ...
- iOS 开发笔记-控制器tab切换view显示
在开发过程中,我们常常会碰到一种情况就是,在一个controller里面,经常要放很多复杂的控制,最常用的就是tar切换.tar切换,原理就是在一个controller里面,显示另一个controll ...
- 读书笔记_Effective C++_条款一:将C++视为一个语言联邦
C++起源于C,最初的名称为C with Classes,意为带类的C语言,然而,随着C++的不断发展和壮大,在很多功能上已经远远超越了C,甚至一些C++程序员反过来看C代码会觉得不习惯. C++可以 ...
- Nginx查看并发链接数
一.通过界面查看通过web界面查看时Nginx需要开启status模块,也就是安装Nginx时加上 --with-http_stub_status_module 一.通过界面查看 通过web界面查看时 ...
- oauth2.0学习笔记(摘抄简化)
大量摘抄白话简明教程. 附:可以参考<RFC6749协议中文版及oauth2.0>文档 一.OAuth 白话简明教程 1.简述 http://www.cnblogs.com/Ceri/p/ ...
- springboot的默认访问路径
注意:默认配置的/**映射到/static(或/public ,/resources,/META-INF/resources) 当请求/index.html的时候,Spring MVC 会在/stat ...
- Python之装饰器的实例
1.1装饰器的应用:参数类型检查 函数参数的检查,一定是在函数外 函数应该作为参数,传入到检查函数中 检查函数拿到函数传入的实际参数,与形参声明对比 __annotations__属性是一个字典,其中 ...
- Codeforces Round #324 (Div. 2) E
这题贪心,考虑先放第一个,然后从第一个数在p中的位置, 不断的往前走,和在他后面的那些数组进行交换,因为这样交换可以提高最大的效率,就是说你花费了1但是使得两个点都朝他的木匾节点减少了1 #inclu ...
- poj1741 树上的分治
题意是说给了n个点的树n<=10000,问有多少个点对例如(a,b)他们的之间的距离小于等于k 采用树的分治做 #include <iostream> #include <cs ...