mysql多实例

centos7 脚本部署mysql多实例

实验环境:

centos7
mysql5.7.13

步骤

1.下载安装省略

wget https://downloads.mysql.com/archives/get/p/23/file/mysql-5.7.13-1.el7.x86_64.rpm-bundle.tar

tar -xvf mysql-5.7.13-1.el7.x86_64.rpm-bundle.tar

yum -y install mysql-community-client-5.7.13-1.el7.x86_64.rpm
mysql-community-common-5.7.13-1.el7.x86_64.rpm
mysql-community-devel-5.7.13-1.el7.x86_64.rpm
mysql-community-libs-5.7.13-1.el7.x86_64.rpm
mysql-community-server-5.7.13-1.el7.x86_64.rpm

2.创建数据目录

mkdir -p /mydata/33{07…10}
23 touch mysql.log 创建日志文件
24 touch mysql.sock 创建socket连接文件
25 touch mysql.pid 创建进程文件
26 mkdir mysql-bin
27 mkdir data 创建数据目录。【极其重要】
创建完成后,给数据目录下的每个文件授予权限
chown -R mysql:mysql /mydata

3.创建配置文件

36 cat > /mydata/ i / m y . c n f < < E O F 37 [ m y s q l d ] 38 d a t a d i r = / m y d a t a / i/my.cnf <<EOF 37 [mysqld] 38 datadir=/mydata/ i/my.cnf<<EOF37[mysqld]38datadir=/mydata/i/data
39 user=mysql
40 port= i 41 b a s e d i r = / u s r / 42 s o c k e t = / m y d a t a / i 41 basedir=/usr/ 42 socket=/mydata/ i41basedir=/usr/42socket=/mydata/i/mysql.sock
43
44 log-bin=/mydata/KaTeX parse error: Expected 'EOF', got '#' at position 43: …rmat=row 46 #̲gtid-mode=on 4…i
48 log-slave-updates=1
49 #[mysql]
50 #socket=/mydata/$i/mysql.sock

4.初始化数据库

55 for i in {3307…3310}
56 do
57 mysqld --defaults-file=/mydata/$i/my.cnf --user=mysql --initialize
58 echo $i
59 done

5.启动

65 for i in ls /mydata;
66 do
67 #mysqld --user=mysql --defaults-file=/mydata/KaTeX parse error: Expected 'EOF', got '&' at position 10: i/my.cnf &̲ 68 mysqld --…i/my.cnf --user=mysql &
69 echo $i
70 done

6.查看进程

ps -aux |grep mysql
在这里插入图片描述

7.查看端口

netstat -tunlp |grep 33
在这里插入图片描述

到这多实例就ok了

8.可以登陆,修改密码

查看初始化生成的临时密码
grep ‘temporary password’ /mydata/3307/mysql.log
在这里插入图片描述
登陆mysql,-S socket重要!!!!不写这玩意,即使写了port ,也是默认登陆3306
mysql -S /mydata/3307/mysql.sock -P 3307 -uroot -p’8u8Y>w)Rs;EG’
在这里插入图片描述
修改密码
ALTER USER’root’@'localhost’IDENTIFIED BY ‘你的新密码’;

完整脚本

“mysql.sh” 71L, 1370C
1 #create direactory we need
2 mkdir -p /app/mysql/33{07…10}
3 mkdir -p /mydata/33{07…10}
4
5 #create user,but i think it’s has useless
6 grep ‘mysql’ /etc/passwd
7 if [ KaTeX parse error: Expected 'EOF', got '&' at position 54: … > /dev/null 2>&̲1 10 fi 11 1…UNZIPPATH/ M Y S Q L N A M E " − C / a p p / 17 P A C K A G E N A M E = m y s q l − c o m m u n i t y 18 T A R F I L E = MYSQLNAME" -C /app/ 17 PACKAGENAME=mysql-community 18 TARFILE= MYSQLNAME"C/app/17PACKAGENAME=mysqlcommunity18TARFILE={MYSQLNAME%.}
19
20 for i in ls /mydata;
21 do
22 cd /mydata/KaTeX parse error: Expected 'EOF', got '#' at position 190: …mydata 32 33 #̲create config-f…i/my.cnf <<EOF
37 [mysqld]
38 datadir=/mydata/ i / d a t a 39 u s e r = m y s q l 40 p o r t = i/data 39 user=mysql 40 port= i/data39user=mysql40port=i
41 basedir=/usr/
42 socket=/mydata/ i / m y s q l . s o c k 43 p i d − f i l e = / m y d a t a / i/mysql.sock 43 pid-file=/mydata/ i/mysql.sock43pidfile=/mydata/i/mysql.pid
44 log-error=/mydata/ i / m y s q l . l o g 45 l o g − b i n = / m y d a t a / i/mysql.log 45 log-bin=/mydata/ i/mysql.log45logbin=/mydata/i/mysql-bin
1 #create direactory we need
2 mkdir -p /app/mysql/33{07…10}
3 mkdir -p /mydata/33{07…10}
4
5 #create user,but i think it’s has useless
6 grep ‘mysql’ /etc/passwd
7 if [ KaTeX parse error: Expected 'EOF', got '&' at position 54: … > /dev/null 2>&̲1 10 fi 11 1…UNZIPPATH/ M Y S Q L N A M E " − C / a p p / 17 P A C K A G E N A M E = m y s q l − c o m m u n i t y 18 T A R F I L E = MYSQLNAME" -C /app/ 17 PACKAGENAME=mysql-community 18 TARFILE= MYSQLNAME"C/app/17PACKAGENAME=mysqlcommunity18TARFILE={MYSQLNAME%.
}
19
20 for i in ls /mydata;
21 do
22 cd /mydata/KaTeX parse error: Expected 'EOF', got '#' at position 190: …mydata 32 33 #̲create config-f…i/my.cnf <<EOF
37 [mysqld]
38 datadir=/mydata/ i / d a t a 39 u s e r = m y s q l 40 p o r t = i/data 39 user=mysql 40 port= i/data39user=mysql40port=i
41 basedir=/usr/
42 socket=/mydata/ i / m y s q l . s o c k 43 p i d − f i l e = / m y d a t a / i/mysql.sock 43 pid-file=/mydata/ i/mysql.sock43pidfile=/mydata/i/mysql.pid
44 log-error=/mydata/ i / m y s q l . l o g 45 l o g − b i n = / m y d a t a / i/mysql.log 45 log-bin=/mydata/ i/mysql.log45logbin=/mydata/i/mysql-bin
46 binlog_format=row
47 #gtid-mode=on
48 server-id=KaTeX parse error: Expected 'EOF', got '#' at position 35: …pdates=1 50 #̲[mysql] 51 #…i/mysql.sock
52
53 EOF
54 done
55
56 for i in {3307…3310}
57 do
58 mysqld --defaults-file=/mydata/$i/my.cnf --user=mysql --initialize
59 echo KaTeX parse error: Expected 'EOF', got '#' at position 20: …0 done 61 62 #̲chown -R mysql.…i/my.cnf &
69 mysqld --defaults-file=/mydata/$i/my.cnf --user=mysql &
70 echo $i
71 done

遇到的问题

1.初始化未生成相应的表
basedir 指定的不对 【mysql安装目录】
一开始我以为我在哪儿yum install 就是安装目录
我在/app下install的,结果我查看变量。basedir的值在/usr/

在这里插入图片描述
basedir配不好,初始化受影响,未生成相应的表

2.配置过程中权限问题

必须把数据目录,chown - R mysql:mysql data
不然启动会报错。如果使用root登陆也会有相应的报错
也可以使用root,但是使用root会很麻烦,很危险

3.当你启动mysqld ,ps发现有mysqld进程,却没有监听除了3306以外的端口,有几种可能

a. 配置文件里面,端口是否改成了非3306的其他端口
b.配置文件里面是否有【skip-networking】这个东西,有的话注释掉,这个选项的的作用是不监听端口
c.basedir配错了!!!!!!!!!!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值