Linux下启动多个mysql服务器例子

1、 创建多个mysql database目录复制代码
代码如下:Mysql_install_db –datadir=/data/mysql_33072、
设置database目录权限复制代码
代码如下:Chown –R mysql /data3、 拷贝、设置my.cnf复制代码 代码如下:cp XXX/my.cnf
/data/mysql_3307/my.cnf添加my.cnf复制代码 代码如下:log-error =
/data/mysql_3307/localhost.localdomain.errpid-file =
/data/mysql_3307/localhost.localdomain.pid4、 添加启动脚本:复制代码
代码如下:#!/bin/tirundir=`pwd`datadir=$rundircnf=$rundir”/my.cnf”echo
“server path : $rundir”echo “data path : $datadir”echo “cnf :
$cnf”/usr/local/mysql/bin/mysqld_safe /–defaults-file=”$cnf”
/–pid-file=”$rundir”/mysql.pid /–datadir=”$datadir”
/–socket=”$rundir”/mysql.sock /&

使用mysqld_multi实现单系统中配置多个MySQL服务器实例,mysqld_multimysql

本文讲利用MySQL源码安装MySQL并用mysqld_multi配置多实例。

1、下载MySQL源码安装版本

到MySQL官网查找到相应版本下载,本文下载的是5.1版本

复制代码 代码如下:

wget -c
ftp://ftp.mirrorservice.org/sites/ftp.mysql.com/Downloads/MySQL-5.1/mysql-5.1.60.tar.gz 

2、解压安装

复制代码 代码如下:

tar -zxv -f mysql-5.1.60.tar.gz 
 
./configure –prefix=/usr/local/mysql –with-charset=utf8  
–with-extra-charset=all –enable-thread-safe-client
–enable-assembler  
–with-readline –with-big-tables  
–with-named-curses-libs=/usr/lib/libncursesw.so.5 
 
make && make install 

3、添加用户和用户组

复制代码 代码如下:

groupadd mysql #添加mysql用户组 
useradd -g mysql mysql #创建mysql用户并把它放到mysql组下 
chown -R root:mysql /usr/local/mysql #修改mysql文件属性 

4、初始化数据目录

复制代码 代码如下:

#把用到的工具添加到/usr/bin目录 
ln -s /usr/local/mysql/bin/mysqld_multi /usr/bin/mysqld_multi 
ln -s /usr/local/mysql/bin/mysql_install_db
/usr/bin/mysql_install_db 
 
#初始化四个数据目录 
mysql_install_db –datadir=/usr/local/var/mysql1 –user=mysql 
mysql_install_db –datadir=/usr/local/var/mysql2 –user=mysql 
mysql_install_db –datadir=/usr/local/var/mysql3 –user=mysql 
mysql_install_db –datadir=/usr/local/var/mysql4 –user=mysql 
 
#修改属性 
chown -R mysql /usr/local/var/mysql1  
chown -R mysql /usr/local/var/mysql2 
chown -R mysql /usr/local/var/mysql3  
chown -R mysql /usr/local/var/mysql4  

5、配置多实例启动脚本

    从MySQL的源码中把复制到/etc/init.d/目录下

复制代码 代码如下:

cp /usr/local/src/mysql-5.1.60/support-files/mysqld_multi.server
/etc/init.d/mysqld_multi.server 
 
#修改basedir和bindir为安装路径 
basedir=/usr/local/mysql 
bindir=/usr/local/mysql/bin 

6、配置多实例数据库配置文件

用mysqld_multi工具查看该配置文件的模板方法,命令为:mysqld_multi
–example
在/etc/目录下创建创建文件/etc/mysqld_multi.cnf,把mysqld_multi
–example产生的文件粘进去,修改相应属性,如:mysqld,mysqladmin,socket,port,pid-file,datadir,user等。

复制代码 代码如下:

[mysqld_multi] 
mysqld     = /usr/local/mysql/bin/mysqld_safe 
mysqladmin = /usr/local/mysql/bin/mysqladmin 
#user       = mysql 
#password   = my_password 
 
[mysqld1] 
socket     = /usr/local/var/mysql1/mysql1.sock 
port       = 3306 
pid-file   = /usr/local/var/mysql1/mysql1.pid 
datadir    = /usr/local/var/mysql1 
#language   = /usr/local/mysql/share/mysql/english 
user       = mysql 
 
[mysqld2] 
socket     = /usr/local/var/mysql2/mysql2.sock 
port       = 3307 
pid-file   = /usr/local/var/mysql2/mysql2.pid 
datadir    = /usr/local/var/mysql2 
#language   = /usr/local/mysql/share/mysql/english 
user       = mysql 
 
[mysqld3] 
socket     = /usr/local/var/mysql3/mysql3.sock 
port       = 3308 
pid-file   = /usr/local/var/mysql3/mysql3.pid 
datadir    = /usr/local/var/mysql3 
#language   = /usr/local/mysql/share/mysql/english 
user       = mysql 
 
[mysqld4] 
socket     = /usr/local/var/mysql4/mysql4.sock 
port       = 3309 
pid-file   = /usr/local/var/mysql4/mysql4.pid 
datadir    = /usr/local/var/mysql4 
#language   = /usr/local/mysql/share/mysql/english 
user       = mysql 

7、启动多实例数据库

复制代码 代码如下:

将/usr/local/mysql/bin加到$PATH环境变量里 
export PATH=/usr/local/mysql/bin:$PATH 
 
#查看数据库状态 
mysqld_multi –defaults-extra-file=/etc/mysqld_multi.cnf report 
#结果都为没有运行 
Reporting MySQL servers 
MySQL server from group: mysqld1 is not running 
MySQL server from group: mysqld2 is not running 
MySQL server from group: mysqld3 is not running 
MySQL server from group: mysqld4 is not running 
 
#启动 
mysqld_multi –defaults-extra-file=/etc/mysqld_multi.cnf start 
#结果为 
Reporting MySQL servers 
MySQL server from group: mysqld1 is not running 
MySQL server from group: mysqld2 is not running 
MySQL server from group: mysqld3 is not running 
MySQL server from group: mysqld4 is not running 
 
#启动具体某一个实例可在start、stop后面加上具体数据1,2,3等 

8、查看运行结果

复制代码 代码如下:

#查看相应端口是否已经被监听 
netstat -tunlp 
 
#查看是否有活动进程 
ps -aux|grep mysql 

9、登录相应数据库

复制代码 代码如下:

#进入端口为3306的数据库 
mysql -uroot -p -h127.0.0.1 -P3306 
 
#通过sock文件登录 
mysql -uroot -p -S /usr/local/var/mysql1/mysql1.sock 
 
 #查看socket文件 
mysql> SHOW VARIABLES LIKE ‘socket’; 
 
#查看pid文件 
mysql> SHOW VARIABLES LIKE ‘%pid%’; 

5、OK,chmod a+x my.cnf,./my.cnf,启动

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 九、记得关闭防火墙
 

6、Ok,启动正常,如上图所示。

配置单机启动多个mysql实例,运行 /mysqld_multi –defaults-extra-file=/etc/mysqld_multicnf start 2

可能遇到的问题:

你用root去启动了吧,加个参数把,–user=mysql

./mysqld_multi –user=mysql
–defaults-extra-file=/etc/mysqld_multi.cnf start 2
 

http://www.bkjia.com/Mysql/877056.htmlwww.bkjia.comtruehttp://www.bkjia.com/Mysql/877056.htmlTechArticle使用mysqld\_multi实现单系统中配置多个MySQL服务器实例,mysqld\_multimysql
本文讲利用MySQL源码安装MySQL并用mysqld_multi配置多实例。
1、下载MySQL源码…

1)/usr/local/mysql/libexec/mysqld: File ‘./mysql-bin.index’ not found
(Errcode: 13)

相关文章