,转 centos7下创建mysql5.6多实例

原文:http://blog.csdn.net/a1010256340/article/details/77483504

一、mysql安装目录说明

mysql5.6以二进制安装包安装在/data/mysql56下

数据目录为/data/mysql56/data下

配置文件为/etc/my.cnf下

二、多实例目录说明

/mysql-instance

|-- 3308

|-- data #3308实例数据目录

|-- 3309

|-- data #3309实例数据目录

1

2

>mkdir-p /mysql-instance/3308/data

>mkdir-p /mysql-instance/3309/data

三、复制配置文件到实例目录下

1

2

> cp /data/mysql56/support-files/my-default.cnf /mysql-instance/3308/my.cnf

> cp /data/mysql56/support-files/my-default.cnf /mysql-instance/3309/my.cnf

四、修改配置文件

1

2

> vi /mysql-instance/3308/my.cnf

> vi /mysql-instance/3309/my.cnf

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

[client]

port = 3308

socket = /mysql-instance/3308/mysql.sock

[mysql]

no-auto-rehash

[mysqld]

user = mysql

port = 3308

socket = /mysql-instance/3308/mysql.sock

basedir = /data/mysql56

datadir = /mysql-instance/3308/data

pid-file = /mysql-instance/3308/mysql.pid

relay-log = /mysql-instance/3308/relay-bin

relay-log-info-file = /mysql-instance/3308/relay-log.info

server-id = 12

[mysqld_safe]

log-error = /mysql-instance/3308/mysql.err

pid-file = /mysql-instance/3308/mysql.pid

3309的配置同上,只需把3308的地方换成3309

五、创建mysql多实例启动文件

1

2

> vi /mysql-instance/3308/mysql

> vi /mysql-instance/3309/mysql

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

#!/bin/sh

port=3308

mysql_user="root"

#请填写自已数据库密码

mysql_pwd="123456"

cmd_path="/data/mysql56/bin"

mysql_sock="/mysql-instance/${port}/mysql.sock"

mysql_start() {

if[ ! -e"$mysql_sock"];then

printf"mysql start ... \n"

/bin/sh ${cmd_path}/mysqld_safe --defaults-file=/mysql-instance/${port}/my.cnf 2>&1 > /dev/null &

else

printf"mysql is running ... \n"

exit

fi

}

mysql_stop() {

if[ ! -e"$mysql_sock"];then

printf"mysql is stopped ... \n"

exit

else

printf"mysql stop ... \n"

${cmd_path}/mysqladmin -u ${mysql_user} -p${mysql_pwd} -S /mysql-instance/${port}/mysql.sock shutdown

fi

}

mysql_restart() {

printf"mysql restart ... \n"

mysql_stop

sleep 2

mysql_start

}

case$1in

start) mysql_start ;;

stop) mysql_stop ;;

restart) mysql_restart ;;

*)

printf"usage: /data/${port}/mysql {start|stop|restart}\n"

esac

六、授权mysql用户目录权限

1

2

3

>chown-R mysql.mysql /mysql-instance

>chmod700 /mysql-instance/3308/mysql

>chmod700 /mysql-instance/3309/mysql

七、初始化mysql多实例数据库文件

1

2

3

> cd /daa/mysql56/scripts

> ./mysql_install_db --basedir=/data/mysql56 --datadir=/mysql-instance/3308/data --user=mysql

> ./mysql_install_db --basedir=/data/mysql56 --datadir=/mysql-instance/3309/data --user=mysql

八、启动mysql多实例

1

2

3

> /mysql-instance/3308/mysql start

> /mysql-instance/3309/mysql start

> netstat -lntup|grep 330

九、登陆mysql实例

1

> mysql -uroot -p -S /mysql-instance/3308/mysql.sock