multi配置mysql多实例的简单介绍

本文目录一览:

mysql创建多个实例,my.cnf配置文件需要几个?

配置文件还是一个,只不过mysql的数据库存放目录需要多个,这根据你的实例来配置数据库存放目录。

给个多实例配置案例:

初始化数据库

[mysql@localhost ~]$ mkdir /mydata/mysql_db/data_1001 #创建数据库存放目录

[mysql@localhost ~]$ mkdir /mydata/mysql_db/data_1002

[mysql@localhost ~]$ mkdir /mydata/mysql_db/data_1003

[mysql@localhost mysql_db]$ ./bin/mysql_install_db –basedir=/mydata/mysql_db –datadir=/mydata/mysql_db/data_1001 –user=mysql #数据库初始化

Installing MySQL system tables…

OK

Filling help tables…

OK

To start mysqld at boot time you have to copy

support-files/mysql.server to the right place for your system

PLEASE REMEMBER TO SET A PASSWORD FOR THE MySQL root USER !

To do so, start the server, then issue the following commands:

/mydata/mysql_db/bin/mysqladmin -u root password ‘new-password’

/mydata/mysql_db/bin/mysqladmin -u root -h localhost password ‘new-password’

Alternatively you can run:

/mydata/mysql_db/bin/mysql_secure_installation

which will also give you the option of removing the test

databases and anonymous user created by default. This is

strongly recommended for production servers.

See the manual for more instructions.

You can start the MySQL daemon with:

cd /mydata/mysql_db ; /mydata/mysql_db/bin/mysqld_safe

You can test the MySQL daemon with mysql-test-run.pl

cd /mydata/mysql_db/mysql-test ; perl mysql-test-run.pl

Please report any problems with the /mydata/mysql_db/scripts/mysqlbug script!

[mysql@localhost mysql_db]$ ./bin/mysql_install_db –basedir=/mydata/mysql_db –datadir=/mydata/mysql_db/data_1002 –user=mysql

[mysql@localhost mysql_db]$ ./bin/mysql_install_db –basedir=/mydata/mysql_db –datadir=/mydata/mysql_db/data_1003 –user=mysql

配置mysql_multi

[mysql@localhost mysql_db]$ cd /home/mysql/

[mysql@localhost ~]$ vi my.cnf

[mysqld_multi] #添加内容如下

mysqld = /mydata/mysql_db/bin/mysqld_safe

mysqladmin = /mydata/mysql_db/bin/mysqladmin

user = mysql

[mysqld1001]

port = 3306

socket = /tmp/mysql3306.sock

pid-file = /tmp/mysql3306.pid

basedir = /mydata/mysql_db

datadir = /mydata/mysql_db/data_1001

skip-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

server-id = 1

[mysqld1002]

port = 3307

socket = /tmp/mysql3307.sock

basedir = /mydata/mysql_db

datadir = /mydata/mysql_db/data_1002

pid-file = /tmp/mysql3307.pid

skip-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

server-id = 1

[mysqld1003]

port = 3308

socket = /tmp/mysql3308.sock

basedir = /mydata/mysql_db

datadir = /mydata/mysql_db/data_1003

pid-file = /tmp/mysql3308.pid

skip-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

server-id = 1

[client]

#password = your_password

port = 3306

socket = /tmp/mysql.sock

多实例启动

[mysql@localhost mysql_db]$ mysqld_multi –defaults-file=/home/mysql/my.cnf –user=mysql start 1001-1003 #启动mysql实例

MySQL在一台db服务器上面如何启动多个实例

一、上传RPM包到服务器上 二、安装mysql服务器端rpm -ivhMySQL-server-5.5.8-1.rhel5.x86_64.rpm 三、安装mysql客户端 rpm -ivhMySQL-client-5.5.8-1.rhel5.x86_64.rpm 四、创建目录 在/data下创建目录,把原来的数据目录/var/lib/mysql 移到/data/mysql/data1和/data/mysql/data2下,并修改mysql目录以及子目录权限 PS:安装后默认的几个重要目录 目录 内容/var/lib/mysql 数据文件,日志文件等等/usr/bin客户端程序和脚本/usr/share/mysql 错误消息和字符集文件/etc/rc.d/init.d/mysql 启动脚本文件 创建目录 修改权限 五、修改并上传配置文件my.cnf 从服务器上的/usr/share/mysql目录中把my-innodb-heavy-4G.cnf拷贝一份到本地。编辑其内容增加数据文件和日志文件的目录,修改socket目录。 六、用mysql_multi启动多个服务 启动:mysqld_multi –defaults-file=/etc/my.cnf start1,2 查看是否启动:mysqld_multi –defaults-file=/etc/my.cnfreport 1 七、查看端口是否打开 八、连接进入指定的mysql服务器 mysql -u root -S/tmp/mysql1.sock 或者mysql -uroot -P3307 -h127.0.0.1 九、记得关闭防火墙

如何在同一台机器上安装多个MySQL的实例

这种架构一般用在以下三类场景

1. 备份多台 Server 的数据到一台如果按照数据切分方向来讲,那就是垂直切分。比如图 2,业务 A、B、C、D 是之前拆分好的业务,现在需要把这些拆分好的业务汇总起来备份,那这种需求也很适用于多源复制架构。实现方法我大概描述下:业务 A、B、C、D 分别位于 4 台 Server,每台 Server 分别有一个数据库来隔离前端的业务数据,那这样,在从库就能把四台业务的数据全部汇总起来,而不需要做额外的操作。那没有多源复制之前,要实现这类需求,只能在汇总机器上搭建多个 MySQL 实例,那这样势必会涉及到跨库关联的问题,不但性能急剧下降,管理多个实例也没有单台来的容易。

2. 用来聚合前端多个 Server 的分片数据。

同样,按照数据切分方向来讲,属于水平切分。比如图 3,按照年份拆分好的数据,要做一个汇总数据展现,那这种架构也非常合适。实现方法稍微复杂些:比如所有 Server 共享同一数据库和表,一般为了开发极端透明,前端配置有分库分表的中间件,比如爱可生的 DBLE。

3. 汇总并合并多个 Server 的数据

第三类和第一种场景类似。不一样的是不仅仅是数据需要汇总到目标端,还得合并这些数据,这就比第一种来的相对复杂些。比如图 4,那这样的需求,是不是也适合多源复制呢?答案是 YES。那具体怎么做呢?

mysql如何创建多个实例,求步骤,谢谢,急求

大多情况下,需要可靠而有效地克隆 MySQL 实例数据。这包括 MySQL 高可用的解决方案,其中需要在将实例加入组复制集群之前配置实例,或者在经典复制模型中将其添加为 Slave。

为复制拓扑而创建 MySQL 副本一直很麻烦。涉及的步骤很多,首先要备份 MySQL 服务器,通过网络将备份传输到我们想要添加到复制集的新 MySQL 节点,然后在该节点上恢复备份并手动启动 MySQL 服务器。为了高可用,最好还要将其正确设置备份的 GTID,并启动并运行群集。涉及的手动步骤数量过多不利于高可用。CLONE 插件解决了这个问题并简化了副本配置。使您可以使用 MySQL 客户端(和 SQL 命令)来配置新节点并在发生时观察克隆进度。无需手动处理多个步骤并维护自己的基础架构来配置新的 MySQL 节点。

MySQL 8.0.17 引入了 CLONE SQL 语句,使当前的 MySQL 服务器成为另一个运行在不同节点的 MySQL 服务器的“克隆”。我们将执行 clone 语句的服务器实例称为“受体”。克隆的源服务器实例称为“供体”。供体克隆以一致的快照存储在 InnoDB 存储引擎中的所有数据和元数据,以替换受体中的数据。

成功执行 CLONE SQL 语句后,将自动重新启动受体服务器。重新启动涉及恢复克隆的快照数据,就像用老方法复制数据一样。恢复完成后,受体就是供体的克隆版,随时可以使用!

这里有一些关于克隆过程的重要注意事项。

不克隆 MySQL 配置参数,并且受体保留所有原始配置参数,如克隆之前。这样做是因为许多配置可能特定于节点(例如 PORT),因此保留它们似乎是一个不错的选择。另一方面,一些存储配置确实需要在供体和受体之间匹配(例如 innodbpagesize),如果这样的配置参数不匹配,CLONE 将报告错误。

CLONE 插件不会克隆二进制日志。

CLONE 插件目前仅支持 InnoDB 存储引擎。在其他存储引擎(如 MyISAM 和 CSV)中创建的表将被克隆为空表。克隆基础架构的设计允许克隆 MySQL 支持的任何存储引擎。但是,只有 InnoDB 序列化和反序列化方法已经实现并经过测试。

克隆会阻止供体中的所有并发 DDL。

需要注意的事实是受体放弃所有数据以及任何二进制日志,以便成为供体实例的克隆。在执行 CLONE 之前,如果认为有必要,需要备份当前受体数据。

求助:mysql 多个端口配置/多实例安装

给你个linux的配置 my.cnf的内容

[mysqld_multi]

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

[client]

socket = /tmp/mysql.sock

default-character-set=utf8

[mysqld1]

datadir=/usr/local/mysql/data

basedir=/usr/local/mysql

character-set-server=utf8

default-storage-engine=innodb

port = 3306

table_open_cache = 64

innodb_data_home_dir = /usr/local/mysql/data

innodb_data_file_path = ibdata1:10M:autoextend

innodb_log_group_home_dir = /usr/local/mysql/data

innodb_buffer_pool_size = 50M

innodb_additional_mem_pool_size = 2M

innodb_log_file_size = 5M

innodb_log_buffer_size = 8M

innodb_flush_log_at_trx_commit = 1

innodb_lock_wait_timeout = 50

[mysqld2]

datadir=/usr/local/mysql/data1

basedir=/usr/local/mysql

character-set-server=utf8

default-storage-engine=innodb

port = 3307

table_open_cache = 64

innodb_data_home_dir = /usr/local/mysql/data1

innodb_data_file_path = ibdata1:10M:autoextend

innodb_log_group_home_dir = /usr/local/mysql/data1

innodb_buffer_pool_size = 50M

innodb_additional_mem_pool_size = 2M

innodb_log_file_size = 5M

innodb_log_buffer_size = 8M

innodb_flush_log_at_trx_commit = 1

innodb_lock_wait_timeout = 50

—-【mysqld】中的配置和单实例的mysqld配置一致,多实例中每个[mysqld]需要有不同的端口号,sock,datadir

然后是启动:/usr/local/mysql/bin/mysqld_mulit –defaults-extra-file=/etc/my.cnf start 1

—-这里的数字1 对应[mysqld1] ,关闭就是 把start 改成stop,启动所有就是 start all

其他命令你自己网上查下吧

运维 一台db服务器能放多少mysql实例

一台数据库服务器为什么运行多个实例?

有一台MySQL数据库服务器硬件利用率往往在30%左右,那剩余的70%岂不是浪费了,这时就可以考虑运行多个MySQL服务,你可以做主从架构,读写分离,数据库隔离,容纳更多的并发链接,充分利用硬件资源,让服务器性能发挥最大化。

1、编译安装MySQL5.5

1

2

3

4

5

6

7

8

9

10

11

12

# yum install -y cmake gcc gcc-c++ make cmake ncurses ncurses-devel

# groupadd mysql

# useradd -g mysql -s /sbin/nologin mysql

# tar zxvf mysql-5.5.31.tar.gz

# cd mysql-5.5.31

# cmake -DCMAKE_INSTALL_PREFIX=/usr/local/mysql5.5 -DSYSCONFDIR=/usr/local/mysql5.5/etc -DMYSQL_DATADIR=/usr/local/mysql5.5/data

# make make install

# mkdir /usr/local/mysql5.5/etc

# cp support-files/my-medium.cnf /usr/local/mysql5.5/etc/my.cnf

# chown -R mysql.mysql /usr/local/mysql5.5/

# echo ‘PATH=$PATH:/usr/local/mysql5.5/bin’ /etc/profile

# source /etc/profile

3、初始化数据库实例

1

2

3

4

# mkdir /usr/local/mysql5.5/data3306 #创建数据库数据目录

# mkdir /usr/local/mysql5.5/data3307

# /usr/local/mysql5.5/scripts/mysql_install_db –basedir=/usr/local/mysql5.5/ –datadir=/usr/local/mysql5.5/data3306/ –user=mysql

# /usr/local/mysql5.5/scripts/mysql_install_db –basedir=/usr/local/mysql5.5/ –datadir=/usr/local/mysql5.5/data3307/ –user=mysql

2、配置多实例信息并使用mysqld_multi工具集中管理

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

# cd /usr/local/mysql5.5/etc/

# vi my.cnf

[mysqld_multi]

mysqld = /usr/local/mysql5.5/bin/mysqld_safe

mysqladmin = /usr/local/mysql5.5/bin/mysqladmin

user = root #登陆数据库用户

password = 123 #登陆数据库密码,用于关闭数据库,两台数据库密码设置一样

[mysqld1]

user = mysql

port = 3306

socket = /tmp/mysql3306.sock

pid-file = /usr/local/mysql5.5/data3306/mysql.pid

basedir = /usr/local/mysql5.5

datadir = /usr/local/mysql5.5/data3306

log_error = /var/log/mysql/3306_error.log

[mysqld2]

user = mysql

port = 3307

socket = /tmp/mysql3307.sock

pid-file = /usr/local/mysql5.5/data3307/mysql.pid

basedir = /usr/local/mysql5.5

datadir = /usr/local/mysql5.5/data3307

log_error = /var/log/mysql/3307_error.log

3、启动实例1,2

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

# 单个实例启动或关闭

# mysqld_multi –defaults-file=/usr/local/mysql5.5/etc/my.cnf start/stop 1

# mysqld_multi –defaults-file=/usr/local/mysql5.5/etc/my.cnf start/stop 2

# 双实例同时启动或关闭

# mysqld_multi –defaults-file=/usr/local/mysql5.5/etc/my.cnf start/stop 1,2

# 查看MySQL是否启动

# mysqld_multi –defaults-file=./my.cnf report 1,2

Reporting MySQL servers

MySQL server from group: mysqld1 is running

MySQL server from group: mysqld2 is running

# netstat -antp |grep mysql

tcp 0 0 0.0.0.0:3306 0.0.0.0:* LISTEN 20896/mysqld

tcp 0 0 0.0.0.0:3307 0.0.0.0:* LISTEN 21499/mysqld

# 加入开机启动

echo “/usr/local/mysql5.5/mysqld_multi –defaults-file=/usr/local/mysql5.5/etc/my.cnf start 1,2” /etc/rc.local

注:如果不想用mysqld_multi工具,可以独立实例配置文件,自己启动或关闭,如下:

1

2

# /usr/local/mysql5.5/bin/mysqld_safe –defaults-extra-file=/usr/local/mysql5.5/etc/my3306.cnf –datadir=/usr/local/mysql5.5/data3306/ –user=mysql

# mysqladmin -uroot -p123 -S/tmp/mysql3306.sock shutdown

4、本地登录

1

2

3

4

5

# 首次登录先设置密码

# mysql -S /tmp/mysql3306.sock -P 3307 -uroot -p #直接回车进入

mysql set password=password(‘123’);

# mysql -S /tmp/mysql3307.sock -P 3307 -uroot -p

mysql set password=password(‘123’);

5、远程登录(先开启远程访问权限)

1

2

3

mysql grant all on *.* to’root’@’%’ identified by ‘123’;

# mysql -h 192.168.1.10 -P 3306 -uroot -p123

# mysql -h 192.168.1.10 -P 3307 -uroot -p123

原创文章,作者:小蓝,如若转载,请注明出处:https://www.506064.com/n/290832.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
小蓝小蓝
上一篇 2024-12-24 13:13
下一篇 2024-12-24 13:13

相关推荐

  • 如何修改mysql的端口号

    本文将介绍如何修改mysql的端口号,方便开发者根据实际需求配置对应端口号。 一、为什么需要修改mysql端口号 默认情况下,mysql使用的端口号是3306。在某些情况下,我们需…

    编程 2025-04-29
  • Python简单数学计算

    本文将从多个方面介绍Python的简单数学计算,包括基础运算符、函数、库以及实际应用场景。 一、基础运算符 Python提供了基础的算术运算符,包括加(+)、减(-)、乘(*)、除…

    编程 2025-04-29
  • Python生成随机数的应用和实例

    本文将向您介绍如何使用Python生成50个60到100之间的随机数,并将列举使用随机数的几个实际应用场景。 一、生成随机数的代码示例 import random # 生成50个6…

    编程 2025-04-29
  • Python满天星代码:让编程变得更加简单

    本文将从多个方面详细阐述Python满天星代码,为大家介绍它的优点以及如何在编程中使用。无论是刚刚接触编程还是资深程序员,都能从中获得一定的收获。 一、简介 Python满天星代码…

    编程 2025-04-29
  • Python海龟代码简单画图

    本文将介绍如何使用Python的海龟库进行简单画图,并提供相关示例代码。 一、基础用法 使用Python的海龟库,我们可以控制一个小海龟在窗口中移动,并利用它的“画笔”在窗口中绘制…

    编程 2025-04-29
  • Python操作MySQL

    本文将从以下几个方面对Python操作MySQL进行详细阐述: 一、连接MySQL数据库 在使用Python操作MySQL之前,我们需要先连接MySQL数据库。在Python中,我…

    编程 2025-04-29
  • MySQL递归函数的用法

    本文将从多个方面对MySQL递归函数的用法做详细的阐述,包括函数的定义、使用方法、示例及注意事项。 一、递归函数的定义 递归函数是指在函数内部调用自身的函数。MySQL提供了CRE…

    编程 2025-04-29
  • Python樱花树代码简单

    本文将对Python樱花树代码进行详细的阐述和讲解,帮助读者更好地理解该代码的实现方法。 一、简介 樱花树是一种图形效果,它的实现方法比较简单。Python中可以通过turtle这…

    编程 2025-04-28
  • MySQL bigint与long的区别

    本文将从数据类型定义、存储空间、数据范围、计算效率、应用场景五个方面详细阐述MySQL bigint与long的区别。 一、数据类型定义 bigint在MySQL中是一种有符号的整…

    编程 2025-04-28
  • Python大神作品:让编程变得更加简单

    Python作为一种高级的解释性编程语言,一直被广泛地运用于各个领域,从Web开发、游戏开发到人工智能,Python都扮演着重要的角色。Python的代码简洁明了,易于阅读和维护,…

    编程 2025-04-28

发表回复

登录后才能评论