Mysql之一台服务器上装多个mysql-yellowcong
2018-01-19 11:03
169 查看
在生产和学习的过程中,我们可能遇到只有一台物理机器,但是想安装多个实例在一个机器上,这样不仅充分利用了资源,而且也简化了自己的操作,通常我们的解决方案就是通过
Centos之添加开机启动-yellowcong
Censos之Mysql解压安装-yellowcong
建立好的目录结构
添加mysql的用户权限,不然又会报错了。
配置之前,需要将目录建立好,设置好权限关系,我们开发中,之需要更改目录位置即可。
初始化3307 节点
启动服务
查看运行情况
设置密码
登录数据库
重启服务后,就自动运行了,美滋滋啊。
查看一下3306和3307端口,发现是两个端口被占用了,导致起不来
杀死进程号
查看运行情况
mysqld_multi,让一台机器上,跑多个mysql实例,大致步骤是:1、规划好目录和端口,2、配置my.cnf文件,3、初始化每一个节点,4、启动每个节点,5、修改密码,6、测试数据库登录。
安装准备
我设置了将多个mysql的实例开机启动,而且搭建的时候,是基于mysql解压的方式,而不是直接通过yum install的方式安装的mysql。这点需要注意一下Centos之添加开机启动-yellowcong
Censos之Mysql解压安装-yellowcong
系统架构
节点 | ip |
---|---|
/mysql/data/log | 日志节点 |
/home/data/mysql3306 | 127.0.0.1:3306 |
/home/data/mysql3307 | 127.0.0.1:3307 |
/home/data/mysql3308 | 127.0.0.1:3308 |
/home/data/mysql3309 | 127.0.0.1:3309 |
/home/data/mysql3310 | 127.0.0.1:3310 |
创建目录
#创建4个节点文件夹 mkdir -p /mysql/data/{mysql3306,mysql3307,mysql3308,mysql3309,mysql3310} #创建每个子文件夹的目录 #存放日志信息 mkdir -p /mysql/data/log #子节点信息 mkdir -p /mysql/data/mysql3306/{data,binlog,relay_log} mkdir -p /mysql/data/mysql3307/{data,binlog,relay_log} mkdir -p /mysql/data/mysql3308/{data,binlog,relay_log} mkdir -p /mysql/data/mysql3309/{data,binlog,relay_log} mkdir -p /mysql/data/mysql3310/{data,binlog,relay_log} #添加权限 chown -R mysql.mysql /mysql/data/
建立好的目录结构
添加mysql的用户权限,不然又会报错了。
2、修改my.cnf配置文件
my.cnf目录,直接在mysql的安装目录就有,默认是直接走这个的。配置之前,需要将目录建立好,设置好权限关系,我们开发中,之需要更改目录位置即可。
#编辑mysql的配置文件 vim /usr/local/mysql/my.cnf #添加下面配置 [mysqld_multi] mysqld = /usr/local/mysql/bin/mysqld_safe mysqladmin =/usr/local/mysql/bin/mysqladmin #日志地址 log =/mysql/data/log/mysqld_multi.log [mysqld3306] #锁 socket = /mysql/data/mysql3306/mysql.sock port = 3306 ##pid文件 pid-file = /mysql/data/mysql3306/mysqld.pid ##数据存放地址 datadir = /mysql/data/mysql3306/data ## lob bin存放地址 log_bin=/mysql/data/mysql3306/binlog #server的id,一个mysql集群里面或多个mysql,只能有一个为一个的id #一般是ip最后位数+端口号 ##server的id server-id = 3306 ##relay 日志地址 relay_log =/mysql/data/mysql3306/relay_log/mysql-relay-bin log_slave_updates = 1 read_only = 0 innodb_buffer_pool_size = 128M innodb_flush_log_at_trx_commit = 0 [mysqld3307] socket = /mysql/data/mysql3307/mysql.sock port = 3307 pid-file = /mysql/data/mysql3307/mysqld.pid datadir = /mysql/data/mysql3307/data log_bin=/mysql/data/mysql3307/binlog server-id = 3307 relay_log =/mysql/data/mysql3307/relay_log/mysql-relay-bin log_slave_updates = 1 read_only = 0 innodb_buffer_pool_size = 128M innodb_flush_log_at_trx_commit = 0 [mysqld3308] socket = /mysql/data/mysql3308/mysql.sock port = 3308 pid-file = /mysql/data/mysql3308/mysqld.pid datadir = /mysql/data/mysql3308/data log_bin=/mysql/data/mysql3308/binlog server-id = 3308 relay_log =/mysql/data/mysql3308/relay_log/mysql-relay-bin log_slave_updates = 1 read_only = 0 innodb_buffer_pool_size = 128M innodb_flush_log_at_trx_commit = 0 [mysqld3309] socket = /mysql/data/mysql3309/mysql.sock port = 3309 pid-file = /mysql/data/mysql3309/mysqld.pid datadir = /mysql/data/mysql3309/data log_bin=/mysql/data/mysql3309/binlog server-id = 3309 relay_log =/mysql/data/mysql3309/relay_log/mysql-relay-bin log_slave_updates = 1 read_only = 0 innodb_buffer_pool_size = 128M innodb_flush_log_at_trx_commit = 0 [mysqld3310] socket = /mysql/data/mysql3310/mysql.sock port = 3310 pid-file = /mysql/data/mysql3310/mysqld.pid datadir = /mysql/data/mysql3310/data log_bin=/mysql/data/mysql3310/binlog server-id = 3310 relay_log =/mysql/data/mysql3310/relay_log/mysql-relay-bin log_slave_updates = 1 read_only = 0 innodb_buffer_pool_size = 128M innodb_flush_log_at_trx_commit = 0
3、初始化数据库
#初始化3306 - 3310节点 ./scripts/mysql_install_db --user=mysql --basedir=/usr/local/mysql --datadir=/mysql/data/mysql3306/data ./scripts/mysql_install_db --user=mysql --basedir=/usr/local/mysql --datadir=/mysql/data/mysql3307/data ./scripts/mysql_install_db --user=mysql --basedir=/usr/local/mysql --datadir=/mysql/data/mysql3308/data ./scripts/mysql_install_db --user=mysql --basedir=/usr/local/mysql --datadir=/mysql/data/mysql3309/data ./scripts/mysql_install_db --user=mysql --basedir=/usr/local/mysql --datadir=/mysql/data/mysql33010/data #启动数据库 #efaults-extra-file 配置文件地址 #start 1 表示启动mysql1 #start 1,2,3 表示启动mysqld1,mysqld2,mysqld3 #启动所有节点 mysqld_multi --defaults-extra-file=/usr/local/mysql/my.cnf start 3306,3307,3308,3309,3310 #关闭数据库3306 节点 mysqld_multi --defaults-extra-file=/usr/local/mysql/my.cnf stop 3306,3307,3308,3309,3310 #查看运行情况 mysqld_multi --defaults-extra-file=/usr/local/mysql/my.cnf report #设置密码 ./bin/mysqladmin -h 127.0.0.1 -P 3306 -u root password 'root' ./bin/mysqladmin -h 127.0.0.1 -P 3307 -u root password 'root' ./bin/mysqladmin -h 127.0.0.1 -P 3308 -u root password 'root' ./bin/mysqladmin -h 127.0.0.1 -P 3309 -u root password 'root' ./bin/mysqladmin -h 127.0.0.1 -P 3310 -u root password 'root' #登录节点3007(第一种登录方式) #通过mysql客户端连接 mysql -h 127.0.0.1 -P 3306 -u root -proot mysql -h 127.0.0.1 -P 3307 -u root -proot mysql -h 127.0.0.1 -P 3308 -u root -proot mysql -h 127.0.0.1 -P 3309 -u root -proot mysql -h 127.0.0.1 -P 3310 -u root -proot #登录到实例(第二种登录方式) #-proot root是密码 mysql --socket=/mysql/data/mysql3307/mysql.sock -proot
初始化3307 节点
启动服务
查看运行情况
设置密码
登录数据库
添加到开机启动
#编辑rc.local vim /etc/rc.local #添加下面配置 su - root -c 'mysqld_multi --defaults-extra-file=/usr/local/mysql/my.cnf start 3306,3307,3308,3309,3310' #删除默认的mysql 3306启动的配置 systemctl disable mysqld
重启服务后,就自动运行了,美滋滋啊。
问题集合
只有部分服务启动的情况
#查看运行情况 mysqld_multi --defaults-extra-file=/usr/local/mysql/my.cnf report #结果发现,就启动了三台服务器 netstat -anp |grep 3307 netstat -anp |grep 3306 #杀死进程, 根据查询的进程id,来杀,肯定不同时候,启动的时候 不一样 kill 62118 #重启启动3306和3307两个点的服务 mysqld_multi --defaults-extra-file=/usr/local/mysql/my.cnf start 3306,3307 #查看运行情况 mysqld_multi --defaults-extra-file=/usr/local/mysql/my.cnf report
查看一下3306和3307端口,发现是两个端口被占用了,导致起不来
杀死进程号
查看运行情况
参考文章
http://blog.csdn.net/mchdba/article/details/45798139相关文章推荐
- 一台MySQL服务器启动多个端口
- MySQL在一台db服务器上面如何启动多个实例
- MySQL在一台db服务器上面如何启动多个实例
- 同一台MySQL服务器启动多个端口
- 一台MySQL服务器启动多个端口
- 同一台MySQL服务器启动多个端口
- 同一台电脑上装多个mysql
- 一台mysql服务器启动多个端口
- 同一台MySQL服务器启动多个端口
- 一台MySQL服务器启动多个端口
- MySQL在一台db服务器上面如何启动多个实例
- MySQL在一台db服务器上面如何启动多个实例 (转)
- 一台MySQL服务器启动多个端口
- 一台MySQL服务器启动多个端口
- 一台服务器如何部署多个jboss
- CentOS6.4 配置mysql服务器启动多个端口,同步单表数据
- 打造一台称手的工作站-Ubuntu上建立PHP服务器(apache+php+mysql)
- MariaDB与MySQL在一台服务器同时运行
- Mysql之查看服务器系统文件配置--yellowcong
- 怎样在一台机子上创建多个sql server2005 or 2000 服务器