MySQL 多实例详解

本文涉及的产品
云数据库 RDS MySQL Serverless,0.5-2RCU 50GB
简介:

MySQL多实例配置方法

      1、单一配置文件

      2、多配置文件。

二、实战步骤:

   1、同步时间

   2、准备mysql依赖包

   3、环境准备

           3.1添加mysql用户

           3.2编译安装mysql

      4、安装MySQL多实例

   5、准备配置文件

   6、启动MySQL

   7、登录mysql与一些安全措施

   8、关闭MySQL

   9,、提供简易管理脚本

   10、为mysql的root用户创建密码

   11、附,多配置文件安装mysql多实例,这里增加mysql 的3309端口

   12、总结

1、同步时间

yum install epel*

ntp 202.120.2.101

yum install -y ntp

ntpdate 202.120.2.101

hwclock -w

2、准备mysql依赖包

yum install -y autoconf* automake* zlib* libxml* ncurses-devel* libgcrypt* libtool* openssl*

yum install cmake -y

3、环境准备

3.1添加mysql用户

groupadd mysql


useradd -g mysql mysql


mkdir -pv /data/{3306,3307,3308}/data


chown -R mysql.mysql /data/


cd /usr/local/src/

3.2编译安装mysql

tar -xf mysql-5.5.45.tar.gz

cd mysql-5.5.45

chown mysql.mysql -R .

cmake . -DCMAKE_INSTALL_PREFIX=/usr/local/mysql \

-DMYSQL_DATADIR=/data \

-DSYSCONFDIR=/etc \

-DWITH_INNOBASE_STORAGE_ENGINE=1 \

-DWITH_ARCHIVE_STORAGE_ENGINE=1 \

-DWITH_BLACKHOLE_STORAGE_ENGINE=1 \

-DWITH_READLINE=1 \

-DWITH_SSL=system \

-DWITH_ZLIB=system \

-DWITH_LIBWRAP=0 \

-DMYSQL_UNIX_ADDR=/tmp/mysql.sock \

-DDEFAULT_CHARSET=utf8 \

-DDEFAULT_COLLATION=utf8_general_ci

gmake

make install

4、安装MySQL多实例

cd /usr/local/mysql/


scripts/mysql_install_db --user=mysql --basedir=/usr/local/mysql --datadir=/data/3306/


scripts/mysql_install_db --user=mysql --basedir=/usr/local/mysql --datadir=/data/3307/


scripts/mysql_install_db --user=mysql --basedir=/usr/local/mysql --datadir=/data/3308/

5、准备配置文件

mysqld_multi --example > /data/multi.cnf #提供多配置文件模板

vim /data/multi.cnf #修改模板,这里比较简易

[mysqld_multi]

mysqld = /usr/local/mysql/bin/mysqld_safe

mysqladmin = /usr/local/mysql/bin/mysqladmin

user = root

#这个用户应该有关机权限,然后没有其他的权限。建议创建一个通用的,multi_admin用户控制其它的MySQL用户,这里有个例子

#GRANT SHUTDOWN ON *.* TO multi_admin@localhost IDENTIFIED BY 'password'

[mysqld1]

socket = /tmp/mysql.sock1

port = 3306

pid-file /data/3306/mysql.pid

datadir = /data/3306/data

[mysqld2]

socket = /tmp/mysql.sock2

port = 3307

pid-file /data/3307/mysql.pid

datadir = /data/3307/data

#language = /usr/local/mysql/share/mysql/english

#user = unix_user1

[mysqld3]

#mysqld = /path/to/mysqld_safe

#ledir = /path/to/mysqld-binary/

#mysqladmin = /path/to/mysqladmin

socket = /tmp/mysql.sock3

port = 3308

pid-file /data/3308/mysql.pid

datadir = /data/3308/data

#language = /usr/local/mysql/share/mysql/swedish

#user = unix_user2

以上是简易的配置文件。这个配置文件只能让MySQL启动起来。

6、启动MySQL

mysqld_multi --defaults-file=/data/multi.cnf start 1,2,3

ss -tnl #查看监听端口

LISTEN 0 50 *:3306 *:*

LISTEN 0 50 *:3307 *:*

LISTEN 0 50 *:3308 *:*

7、登录mysql与一些安全措施

mysql -S /tmp/mysql.sock1 #指定socket登录

mysql> show databases;

+--------------------+

| Database |

+--------------------+

| information_schema |

| mysql |

| performance_schema |

test |

+--------------------+

4 rows in set (0.01 sec)

mysql> drop database test;

Query OK, 0 rows affected (0.04 sec)

mysql> select User,Host from mysql.user;

+------+-----------+

| User | Host |

+------+-----------+

| root | 127.0.0.1 |

| root | ::1 |

| | localhost |

| root | localhost |

| | node1 |

| root | node1 |

+------+-----------+

6 rows in set (0.01 sec)

mysql> delete from mysql.user where User='';

Query OK, 2 rows affected (0.00 sec)

mysql> delete from mysql.user where Host='::1';

Query OK, 1 row affected (0.00 sec)

mysql> delete from mysql.user where Host='node1';

Query OK, 1 row affected (0.00 sec)

其余的操作类似,就不在演示

8、关闭MySQL

mysqladmin -S /tmp/mysql.sock1 shutdown 建议使用


musqld_multi --defaults-file stop [#,#]


killall mysqld 不建议使用

9,、提供简易管理脚本

#!/bin/bash

#

basedir=/usr/local/mysql

bindir=/usr/local/mysql/bin

conf=/data/multi.cnf

export PATH=$bindir:/$PATH

if test -x $bindir/mysqld_multi

then

mysqld_multi="$bindir/mysqld_multi";

else

echo "Can't execute $bindir/mysqld_multi from dir $basedir";

exit;

fi

case "$1" in

'start' )

"$mysqld_multi" --defaults-extra-file=$conf start $2

;;

'stop' )

"$mysqld_multi" --defaults-extra-file=$conf stop $2

;;

'report' )

"$mysqld_multi" --defaults-extra-file=$conf report $2

;;

'restart' )

"$mysqld_multi" --defaults-extra-file=$conf stop $2

"$mysqld_multi" --defaults-extra-file=$conf start $2

;;

*)

echo "Usage: $0 {start|stop|report|restart}" >&2

;;

esac

10、为mysqlroot用户创建密码

mysqladmin -uroot -S /tmp/mysql.sock2 password "123456" #指定socket文件位置即可

其余的操作一样

11、附,多配置文件安装mysql多实例,这里增加mysql 3309端口

mkdir -pv /data/3309/data


chown mysql.mysql -R 3309/


cd /usr/local/mysql


scripts/mysql_install_db --datadir=/data/3309/data/ --user=mysql --basedir=/usr/local/mysql/


cp support-files/my-small.cnf /data/3309/my.cnf


vim /data/3309/my.cnf

[client]

port = 3309 #这里也需要注意下吧

socket = /tmp/mysql.sock4

[mysqld]

port = 3309 #注意端口

socket = /tmp/mysql.sock4 #注意socket

skip-external-locking

key_buffer_size = 16K

max_allowed_packet = 1M

table_open_cache = 4

sort_buffer_size = 64K

read_buffer_size = 256K

read_rnd_buffer_size = 256K

net_buffer_length = 2K

thread_stack = 128K

datadir=/data/3309/data #注意datadir

server-id = 1

[mysqldump]

quick

max_allowed_packet = 16M

mysqld_safe --defaults-file=/data/3309/my.cnf 2&1> > /dev/null #启动mysqld

ss -tnl | grep 330 #查看端口

LISTEN 0 50 *:3306 *:*

LISTEN 0 50 *:3307 *:*

LISTEN 0 50 *:3308 *:*

LISTEN 0 50 *:3309 *:*










本文转自 chengxuyonghu 51CTO博客,原文链接:http://blog.51cto.com/6226001001/1795017,如需转载请自行联系原作者
相关实践学习
基于CentOS快速搭建LAMP环境
本教程介绍如何搭建LAMP环境,其中LAMP分别代表Linux、Apache、MySQL和PHP。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助     相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
目录
相关文章
|
29天前
|
存储 SQL 关系型数据库
创建并配置RDS实例
在阿里云上创建RDS实例涉及登录控制台、进入RDS管理页面、创建实例、选择数据库引擎和版本、配置实例规格与存储、设定网络与安全组、设置实例信息、确认订单并支付,最后初始化数据库。操作步骤可能因界面更新或数据库引擎不同略有差异。
18 1
|
3月前
|
弹性计算 关系型数据库 MySQL
快速上手阿里云RDS MySQL实例创建,轻松管理数据库
快速上手阿里云RDS MySQL实例创建,轻松管理数据库 在数字化时代,数据已成为企业的核心资产。如何高效、安全地存储和管理这些数据,成为企业在云计算时代亟待解决的问题。阿里云的RDS(关系型数据库服务)应运而生,为用户提供稳定、可靠的云上数据库解决方案。本文将详细介绍如何通过阿里云RDS管理控制台快速创建RDS MySQL实例,让您轻松上手,快速部署数据库。
170 2
|
1月前
|
关系型数据库 MySQL 数据库
初始化RDS实例
初始化RDS实例
14 3
|
1月前
|
SQL 关系型数据库 MySQL
购买阿里云RDS实例
购买阿里云RDS实例
165 2
|
1月前
|
弹性计算 关系型数据库 MySQL
连接RDS实例
连接RDS实例
12 1
|
1月前
|
SQL 关系型数据库 MySQL
MySQL多实例部署:从概念到实操的全面指南
MySQL多实例部署:从概念到实操的全面指南
40 0
|
2月前
|
关系型数据库 MySQL Linux
docker构建mysql以及多实例
docker构建mysql以及多实例
26 0
|
3月前
|
关系型数据库 MySQL 数据库
实现RDS MySQL实例数据迁移的详细步骤
实现RDS MySQL实例数据迁移的详细步骤 随着科技的飞速发展,数据库的应用越来越广泛,而数据迁移作为数据库管理的重要环节,其重要性不言而喻。本文将详细介绍如何使用数据传输服务(Data Transmission Service,简称DTS),实现将三节点企业系列的RDS MySQL实例的数据迁移到集群系列的RDS MySQL。
127 4
|
4月前
|
监控 关系型数据库 数据库
rds实例如何备份
rds实例如何备份
133 1
|
4月前
|
关系型数据库 数据库 RDS
如何恢复误删除的rds实例
如何恢复误删除的rds实例
119 1