视频1 视频21 视频41 视频61 视频文章1 视频文章21 视频文章41 视频文章61 推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37 推荐39 推荐41 推荐43 推荐45 推荐47 推荐49 关键词1 关键词101 关键词201 关键词301 关键词401 关键词501 关键词601 关键词701 关键词801 关键词901 关键词1001 关键词1101 关键词1201 关键词1301 关键词1401 关键词1501 关键词1601 关键词1701 关键词1801 关键词1901 视频扩展1 视频扩展6 视频扩展11 视频扩展16 文章1 文章201 文章401 文章601 文章801 文章1001 资讯1 资讯501 资讯1001 资讯1501 标签1 标签501 标签1001 关键词1 关键词501 关键词1001 关键词1501 专题2001
使用mysqld_multi实现单系统中配置多个MySQL服务器实例_MySQL
2020-11-09 19:36:48 责编:小采
文档


本文讲利用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%';

下载本文
显示全文
专题