Ubuntu12.10安装多个Mysql5.5实例(一)

摘要:
本文记录了如何在一台机器上安装多个MySQL实例(目前不会讨论这一点的好处,但您可以在谷歌上搜索)1.安装mysql1。创建必要的用户和用户组(为了安全起见,不要使用root,mysql不允许直接sudo启动mysqld。必须指定--user=mysql)1.sudogroupandmysql2.sudoseradd-r-gmysqlmysql2.将tar文件复制到一个目录,例如/opt,然后解压缩cd/op

本篇记录如何在一台机器上安装多个mysql 实例(这样做的好处暂不讨论,可以google)

1.安装mysql 

1)创建必要的用户,用户组(涉及到安全,不要用root安装,且mysql不允许直接sudo启动mysqld,必须指定--user=mysql)

1 sudo groupadd mysql
2 sudo useradd -r -g mysql mysql

2)拷贝tar文件到某个目录,例如/opt下,并解压缩

cd /opt
sudo tar zxvf ~/download/mysql-5.x-linux-glibc2.5-x86_64.tar.gz 

3)建立链接

1 cd /usr/local  
2 sudo ln -s /opt/mysql-5.x-linux-glibc2.5-x86_64 mysql  

#同时建立到bin目录的链接  

1 sudo ln -s /usr/local/mysql/bin/* /usr/local/bin/cd mysql
2 sudo chown -R mysql .
3 sudo chgrp -R mysql .

4)安装db instance

sudo mkdir -p /data/mysql/mysql01

 #存放第一个instance的pid,sock,data,依次类推,可以创建mysql02,03,...

 

sudo chown mysql:mysql /data/mysql -R
#保证mysql用户对
/data/mysql以及其子目录的完全访问权限

#执行下面的脚本会初始化第一个instance的数据库

#在此之前,有可能需要安装libaio1,运行命令:

sudo apt-get install libaio1 libaio-dev
sudo scripts/mysql_install_db --user=mysql --datadir=/data/mysql/mysql01

#为了安全起见,将全部目录的owner改回为root,除了data目录              

1 sudo chown -R root .  
2 sudo chown -R mysql data 

#配置my.cnf,需要修改datadir,pid,socket等配置

1 sudo cp support-files/my-medium.cnf /etc/mysql/my.cnf

#配置服务

sudo cp support-files/mysql.server /etc/init.d/mysql

#启动

#启动mysqlsudo service mysql start

#执行下面的命令,可以验证该端口是否在监听

sudo netstat -nltp | grep mysql
2. 安装第二个db instance

1)准备数据文件目录

1 sudo mkdir -p /data/mysql/mysql02
2 sudo chown mysql:mysql /data/mysql/mysql02

2)初始化数据文件

sudo scripts/mysql_install_db --user=mysql --datadir=/data/mysql/mysql02

#配置第二个my.cnf,修改port=3307,以及对应的datadir,pid以及socket!!!

3)配置cnf并启动

sudo cp /etc/mysql/my.cnf /etc/mysql/my2.cnf

#指定my.cnf启动instance

sudo mysqld --defaults-file=/etc/mysql/my2.cnf --user=mysql

4)修改root密码

#执行下面的命令,可以验证该端口是否在监听

sudo netstat -nltp | grep mysql

#也可以通过ps -ef | grep mysql可以看到有两个instance在运行

#通过mysqladmin指定root的初始密码

sudo mysqladmin -uroot password 'passwd' --socket=/data/mysql/mysql02.sock

5)验证刚刚安装的2个instance

#不指定参数,默认端口3306,访问的是第一个instance

mysql -uroot -p 

#访问第二个instance需要指定socket

mysql -uroot -p -S/data/mysql/mysql02.sock

至此,单机安装多个mysql实例就差不多了,使用起来跟单机安装多个mysql数据库差别不大。

3. 使用mysqld_multi完善安装

1)创建新的my.cnf

运行mysqld_multi --example可以获得一个多实例环境下的my.cnf样本,稍作修改如下:

1 [mysqld_multi]
2 mysqld     = /usr/local/mysql/bin/mysqld_safe
3 mysqladmin = /usr/local/mysql/bin/mysqladmin

#此处的用户名密码应该可以访问全部的instance,并具有shutdown的权限,这里简单起见直接用root了(部署时应该给每个instance创建一个该账户)

 1 user       = root
 2 password   = passwd 
 3 [mysqld1]
 4 pid-file   = /data/mysql/mysql01.pid
 5 socket     = /data/mysql/mysql01.sock
 6 port       = 3306datadir    = /data/mysql/mysql01
 7 user       = mysql
 8 log = /var/log/mysql/mysql01.log
 9 [mysqld2]
10 pid-file   = /data/mysql/mysql02.pid
11 socket     = /data/mysql/mysql02.sock
12 port       = 3307
13 datadir    = /data/mysql/mysql02
14 user       = mysql
15 log = /var/log/mysql/mysql02.log

将该文件放在/etc/mysql/下,覆盖即可(原先的my.cnf和my2.cnf分别针对两个instance的,已经不需要了)

2)启动多实例
运行sudo mysqld_multi start 1,2可以同时启动mysqld1和mysqld2,可以支持 start 1, 3-4这样的表达式

3)验证安装结果

同2.5的步骤

4. 继续添加第3个乃至第N个 instance

1)停止全部的mysqld:

sudo mysqld_multi stop (如果stop 1则只停止mysqld1这个instance,不加参数表示停止全部的instance)

2)准备数据文件的目录

1 sudo mkdir -p /data/mysql/mysql03
2 sudo chown mysql:mysql /data/mysql/mysql03

3)初始化(安装数据文件)

sudo scripts/mysql_install_db --user=mysql --datadir=/data/mysql/mysql03

#启动mysqld(与上面不同的时,这次直接指定参数,而不再配置my3.cnf,效果是一样的)

1 sudo mysqld --port=3308 --datadir=/data/mysql/mysql03 --socket=/data/mysql/mysql03.sock --user=mysql

#修改密码,保持与第1个和第2个instance相同的密码,以便mysqld_multi能启动/关闭

sudo mysqladmin -uroot password 'passwd' --socket=/data/mysql/mysql03.sock

#修改my.cnf,添加[mysqld3]的内容(仿照mysqld1,mysqld2即可)

#重启,需要先kill掉之前启动的全部mysqld的进程

sudo mysqld_multi start

#运行sudo netstat -nltp | grep mysql应看到3306-3308均在listen中,

同时分别运行

1 mysql -uroot -p --socket=/data/mysql/mysql01.sock
2 mysql -uroot -p --socket=/data/mysql/mysql02.sock
3 mysql -uroot -p --socket=/data/mysql/mysql03.sock

可以登录到各自的instance中

 

Linux学习入门教程:进入

Linux常用命令全集:进入

 

 

免责声明:文章转载自《Ubuntu12.10安装多个Mysql5.5实例(一)》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇python3-声音处理css3部分选择器整理下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

MySQL 集群

MySQL Galera介绍主要功能: 同步复制 真正的multi-master,即所有节点可以同时读写数据库 自动的节点成员控制,失效节点自动被清除 新节点加入数据自动复制 真正的并行复制,行级 用户可以直接连接集群,使用感受上与MySQL完全一致 优势: 因为是多主,所以不存在Slave lag(延迟) 不存在丢失交易的情况 同时具有读和写的扩展...

定时重启MySQL、定时重启Apache [任务计划]

有时候觉得,服务器运行时间过长,程序上无法释放mysql,造成服务器压力过大。因此,设想一下,不用重新启动服务器的情况下,完成apache和mysql的内存释放。 首先,apache的重新启动。 操作步骤: 开始>>程序>>附件>>管理工具>>任务计划 添加任务计划>>下一步>>apa...

mysql 按天创建分区存储过程

CREATE PROCEDURE `create_partition_by_day`(IN_SCHEMANAME VARCHAR(64), IN_TABLENAME VARCHAR(64)) BEGIN#当前日期存在的分区的个数 DECLARE ROWS_CNT INTUNSIGNED; #目前日期,为当前日期的后一天 DECLAR...

数据库辅助工具SqlDbx

SqlDbx 是简单易用的数据库设备,SQL编辑,SQL查询工具。语句规则突出,智能化,自动完成,等等特色功能多多。支持Oracle,Sybase ASE, IBM,DB2/UDB, MicrosoftSQL Server,MySQL 和ODBC数据源。 可以看到库中有多少表、多少存储过程、多少触发器、多少视图、多少函数,可以直接看到每个表的数据行数,可以...

(转)mysql8.0配置文件优化

原文:https://www.cnblogs.com/john-xiong/p/12099842.html 原文:https://www.modb.pro/db/22572----MySQL8.0自适应参数innodb_dedicated_server 原文:https://www.cnblogs.com/zwbsoft/p/13791424.html--...

mysql 5.7 迁移数据方案

从一台服务器迁移至其他服务器,如何选择最短的停服时间方案 方案一、凌晨3点的全备份+停服后一天的大概一天的增备   1. 拷贝前一天的全备份至新的服务器    rsync -auzrP /Data/dbbak/db/2019-04-23/2019-04-23_03-10-11 root@172.16.1.80:/data/backup/full/   2....