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 ...
随机推荐
- [Java] Create File with java.io.File class
Create a file with some content in some specific location. The reference is here. /** * Write fileCo ...
- vue 使用高德地图vue-amap组件
首先 npm install -S vue-amap 然后在 main.js import VueAMap from 'vue-amap'; //注意不要和 AMap原始名称覆盖 Vue.use ...
- nodejs+mysql入门实例(增)
var userAddSql = 'INSERT INTO userinfo(id,username,pwd) VALUES(0,?,?)'; var userAddSql_Params = ['Wi ...
- keras 分类回归 损失函数与评价指标
1.目标函数 (1)mean_squared_error / mse 均方误差,常用的目标函数,公式为((y_pred-y_true)**2).mean()(2)mean_absolute_error ...
- MSSqlServer 发布/订阅配置(主从同步)
背景: 1.单个独立数据库的吞吐量是有瓶颈的,那么如何解决这个瓶颈? 2.服务器直接数据如何复制.并具备一致性.可扩展性? 资源: 官方资源:https://technet.microsoft.com ...
- What is the reason for - java.security.spec.InvalidKeySpecException: Unknown KeySpec type: java.security.spec.ECPublicKeySpec
支付中心Project重构完成,经过本地测试,并未发现问题.发布到测试环境后,测试发现请求光大扫码https接口时,出现了如下的异常: javax.net.ssl.SSLException: Serv ...
- sqli-labs(九)_COOKIE处注入
第二十关: 这关是一个Cookie处的注入,输入正确的账号密码后,会跳到index.php页面,如下图 这个时候再访问登陆页面的时候http://localhost/sqli-labs-master/ ...
- Version Control,Git的下载与安装
一.什么是Version Control(版本控制系统)? ——来自百度百科 以Git为例,是一个开源的分布式版本控制系统,可以有效.高速地处理从很小到非常大的项目版本管理.Git 是 Linus ...
- Winform下如何上传图片并显示出来。同时保存到数据库
通常,我们在开发软件或者网站是否,通常有时候需要添加图片,我们怎么做呢,直接贴例子. 前提是添加openFileDialog控件哈 #region 定义公共的类对象及变量 SqlConn ...
- ASP.NET MVC4中加入Log4Net日志记录功能
前言 在之前的.NET中,微软还没有提供过像样的日志框架,目前能用的一些框架比如Log4Net.NLog.CommonLogging等,虽然多多少少使用起来有点费劲,但这里还是简单分享一下Log4Ne ...