mysql 127.0.0.13306_mysql 安装及多实例部署 | 学步园

背景

由于项目要求,需要在一台服务器上面安装mysql,并部署多个mysql实例。

该文章主要介绍ubuntu环境下面,mysql的安装,以及启动mysql多实例方法

环境信息

操作系统             ubuntu   14.04   64位

数据库目标版本  mysql  5.6.16

mysql 实例数      2个

mysql 实例端口  13306 13307

安装mysql

建议:请使用非root用户安装,以下安装过程中需要root权限时,用sudo执行

增加mysql用户及组

groupadd mysql

useradd -r -g mysql mysql

下载mysql安装包

$ cd /workspace/src

$ wget  http://dev.mysql.com/get/Downloads/MySQL-5.6/mysql-5.6.16.tar.gz

编译安装msyql

$ tar zxvf mysql-VERSION.tar.gz

$ cd mysql-VERSION

$ cmake .

$ make

$ make install

更新目录权限

$ cd /usr/local/mysql

$ sudo chown -R mysql .

$ sudo chgrp -R mysql .

至此,mysql的安装过程已经完成

启动mysql多实例

mysql的多实例有两种方式可以实现,两种方式各有利弊。

第一种:

使用多个配置文件启动不同的进程来实现多实例,这种方式的优势逻辑简单,配置简单,缺点是管理起来不太方便。

第二种:

通过官方自带的mysqld_multi使用单独的配置文件来实现多实例,这种方式定制每个实例的配置不太方面,优点是管理起来很方便,集中管理。

考虑到多实例之间的启动不受影响,因此本该采用第一种方式启动mysql多实例

启动实例

为数据库实例创建data目录,并修改目录组权限

$ cd /data

$ sudo mkdir mysql_13306

$ sudo mkdir mysql_13307

$ sudo chown mysql:mysql -R /data

初始化数据库

$ cd /usr/local/mysql/scripts

$ sudo ./mysql_install_db --basedir=/usr/local/mysql --datadir=/data/mysql_13306

$ sudo ./mysql_install_db --basedir=/usr/local/mysql --datadir=/data/mysql_13307

为两个实例新增my.cnf配置文件

首先为13306的实例增加my.cnf配置文件

$ cd /data/mysql_13306

$ sudo vim my.cnf

其中内容如下

# For advice on how to change settings please see

# http://dev.mysql.com/doc/refman/5.6/en/server-configuration-defaults.html

[mysql]

# CLIENT #

port                             = 13306

socket                         = /data/mysql_13306/mysqld.sock

[mysqld]

# GENERAL #

# 特别注意的是这一句,port = 13306 的,如果这句不写,mysqld会默认在3306端口启动实例,也就是说,如果要启动多实例,但

# 在多个实例的配置文件中,都没有配置这个参数,就会使用默认的3306端口,这样第一个实例启动后,就会将3306端占用,第二个

# 及以后的实例启动时,因为3306端口被占用,所以无法成功启动多实例

port= 13306

user                                     = mysql

default-storage-engine        = InnoDB

socket                                  = /data/mysql_13306/mysqld.sock

pid-file                                 = /data/mysql_13306/mysql.pid

# MyISAM #

key-buffer-size                     = 32M

myisam-recover                   = FORCE,BACKUP

# SAFETY #

max-allowed-packet             = 16M

max-connect-errors             = 1000000

# DATA STORAGE #

datadir                                 = /data/mysql_13306

# BINARY LOGGING #

log-bin                                 = /data/mysql_13306/mysql-bin

expire-logs-days                 = 14

sync-binlog                         = 1

# CACHES AND LIMITS #

tmp-table-size                     = 32M

max-heap-table-size           = 32M

query-cache-type                = 0

query-cache-size                = 0

max-connections                = 500

thread-cache-size               = 50

open-files-limit                    = 65535

table-definition-cache         = 1024

table-open-cache               = 2048

# INNODB #

innodb-flush-method                = O_DIRECT

innodb-log-files-in-group          = 2

innodb-log-file-size                  = 512M

innodb-flush-log-at-trx-commit = 1

innodb-file-per-table                 = 1

innodb-buffer-pool-size            = 1G

# LOGGING #

log-error                                    = /data/mysql_13306/mysql-error.log

log-queries-not-using-indexes  = 1

slow-query-log                          = 1

slow-query-log-file                     = /data/mysql_13306/mysql-slow.log

为13307实例增加my.cnf配置文件

$ cd /data/mysql_13307

$ sudo vim my.cnf

其中内容和上面的一样,只是将上面配置文件中所有的13306修改为13307即可

为13306,13307两个实例创建自动启动脚本

$ cd /data/mysql_13306

$ sudo vim mysqld

#!/bin/bash

mysql_port=13306

mysql_username="root"

mysql_password=""

#启动mysql

function_start_mysql()

{

printf "Starting MySQL...\n"

/bin/sh /usr/local/mysql/bin/mysqld_safe --defaults-file=/data/mysql_${mysql_port}/my.cnf 2>&1 > /dev/null &

}

#停止mysql

function_stop_mysql()

{

printf "Stoping MySQL...\n"

/usr/local/mysql/bin/mysqladmin -u ${mysql_username} -p${mysql_password} -S /data/mysql_${mysql_port}/mysqld.sock shutdown

}

#重新启动mysql

function_restart_mysql()

{

printf "Restarting MySQL...\n"

function_stop_mysql

function_start_mysql

}

#Kill mysql

function_kill_mysql()

{

kill -9 $(ps -ef | grep 'bin/mysqld_safe' | grep ${mysql_port} | awk '{printf $2}')

kill -9 $(ps -ef | grep 'libexec/mysqld' | grep ${mysql_port} | awk '{printf $2}')

}

case $1 in

start)

function_start_mysql;;

stop)

function_stop_mysql;;

kill)

function_kill_mysql;;

restart)

function_stop_mysql

function_start_mysql;;

*)

echo "Usage: /data/mysql_${mysql_port}/mysqld {start|stop|restart|kill}";;

esac

#为mysqld增加执行权限

$ sudo chmod 700 mysqld

为13307实例增加自动启动脚本

$ cd /data/mysql_13307

$ sudo vim mysqld

#mysql_13307目录下面的,mysqld内容和上面的内容一致,只是将13306修改为13307即可

$ sudo chmod 700 mysqld

启动13306,13307实例

$ sudo /data/mysql_13306/mysqld start

$ sudo /data/mysql_13307/mysqld start

设置mysql的root密码

$ /usr/local/mysql/bin/mysql -uroot -p -S /data/mysql_13306/mysql.sock

# 默认情况下安装的mysql root密码为空,在以下命令中设置mysql用户的root密码

mysql>SET PASSWORD FOR 'root'@'localhost' = PASSWORD('newpassword');

也可以用如下方式设置root密

$ /usr/local/mysql/bin/mysqladmin -uroot password 'password' -S /data/mysql_13306/mysqld.sock

$ /usr/local/mysql/bin/mysqladmin -uroot password 'password' -S /data/mysql_13307/mysqld.sock

更改环境变量

$ sudo vim /etc/profile

#添加下面一行内容

$ sudo PATH=${PATH}:/usr/local/mysql/bin/

$ sudo source /etc/profile

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值