芯火信息做网站怎么样,沈阳电子商务网站建设,wordpress阿里云数据库,深圳专业网站设计公司价格概述MySQL 多实例是指在同一台物理服务器#xff08;或虚拟机#xff09;上#xff0c;通过不同的配置文件、端口、数据目录等隔离参数#xff0c;运行多个独立的 MySQL 服务进程。每个实例拥有自己的数据库、用户、权限、日志和内存资源#xff08;可通过配置限制#x…概述MySQL 多实例是指在同一台物理服务器或虚拟机上通过不同的配置文件、端口、数据目录等隔离参数运行多个独立的 MySQL 服务进程。每个实例拥有自己的数据库、用户、权限、日志和内存资源可通过配置限制逻辑上等同于多台独立的 MySQL 服务器。通过大白话讲就是一般在一个系统环境中可以运行多个相同的服务程序信息并且产生不同的进程和网络端口信息就可以称为多实例概念在数据库服务运行过程中也可以启动多个数据库服务程序产生多个数据库服务进程和不同的服务端口形成多实例多个数据库服务实例信息中存储的数据库信息是相互隔离和独立的并且利用数据库服务多实例可以实现测试与分布式架构需求。企业数据库服务端实例应用架构设计图image回到顶部MySQL多实例的核心作用资源利用率最大化核心价值单台服务器硬件资源CPU、内存、磁盘未饱和时多实例可充分利用空闲资源避免硬件浪费。例一台 32 核 64G 内存的服务器仅运行 1 个 MySQL 实例占用 16G 内存剩余内存可部署 2-3 个实例服务不同业务。隔离性与风险控制业务隔离不同业务如电商订单、用户会员、数据分析部署在独立实例避免某业务的慢查询、高并发影响其他业务。权限隔离每个实例有独立的 root 用户和业务账号防止跨业务数据泄露或误操作。故障隔离一个实例崩溃如内存溢出、表损坏其他实例不受影响降低整体服务中断风险。成本优化减少服务器数量降低硬件采购、机房托管、电力散热等成本尤其适合中小团队或测试环境。避免 “为单一低负载业务单独部署服务器” 的资源浪费。灵活适配不同需求可针对不同实例配置差异化参数核心业务实例分配更多内存innodb_buffer_pool_size、更高 IO 优先级优化并发性能。测试 / 报表实例分配较少资源允许较低的查询性能不影响核心业务。支持不同 MySQL 版本如 5.7 和 8.0共存满足老系统兼容和新功能测试需求。回到顶部MySQL多实例配置实操部署规划实例服务端口 实例存储路径 实例配置文件 套接字文件端口信息3307 /data/3307/data /data/3307/data/my.cnf /tmp/mysql3307.sock端口信息3308 /data/3308/data /data/3308/data/my.cnf /tmp/mysql3308.sock端口信息3309 /data/3309/data /data/3309/data/my.cnf /tmp/mysql3309.sock下载前置依赖# 下载libtinfo5、libnuma1依赖rootmaster:~# apt update -y apt install -y libtinfo5 libnuma1下载mysql服务方式一进入官网下载并上传到宿主机中适合离线环境官网下载地址 https://downloads.mysql.com/archives/community/image方式二直接在宿主机中使用wget进行下载适合宿主机联网环境rootmaster:/data00/software/mysql_8.0.26# wget https://downloads.mysql.com/archives/get/p/23/file/mysql-8.0.26-linux-glibc2.12-x86_64.tar.xz解压mysql服务并配置# 服务解压至家目录rootmaster:/data00/software/mysql_8.0.26# tar -xvf mysql-8.0.26-linux-glibc2.12-x86_64.tar.xz# 创建软链接rootmaster:/data00/software/mysql_8.0.26# ln -s /data00/software/mysql_8.0.26/mysql-8.0.26-linux-glibc2.12-x86_64 /root/mysql# 配置环境变量rootmaster:~# echo export PATH/root/mysql/bin:$PATH /etc/profilerootmaster:~# source /etc/profile# 检查环境变量rootmaster:~# mysql -Vmysql Ver 8.0.26 for Linux on x86_64 (MySQL Community Server - GPL)创建mysql虚拟用户及存储目录创建虚拟用户# 创建用户rootmaster:~# useradd -s /sbin/nologin -M mysql# 检查用户rootmaster:~# id mysqluid2001(mysql) gid2002(mysql) groups2002(mysql)创建存储目录rootmaster:~# mkdir -p /data00/data/mysql330{7..9}rootmaster:~# ll /data00/data/total 16drwxr-xr-x 6 mysql mysql 4096 Nov 28 14:27 mysqldrwxr-xr-x 2 root root 4096 Nov 28 15:03 mysql3307drwxr-xr-x 2 root root 4096 Nov 28 15:03 mysql3308drwxr-xr-x 2 root root 4096 Nov 28 15:03 mysql3309进行多实例数据目录初始化步骤# 如果存在my.cnf挪走rootmaster:~# ll /etc/my.cnf-rw-r--r-- 1 root root 394 Nov 28 14:25 /etc/my.cnfrootmaster:~# mv /etc/my.cnf /tmp# 初始化3307实例rootmaster:~# mysqld --initialize-insecure --usermysql --datadir/data00/data/mysql3307 --basedir/root/mysql2025-11-28T07:06:59.371413Z 0 [System] [MY-013169] [Server] /data00/software/mysql_8.0.26/mysql-8.0.26-linux-glibc2.12-x86_64/bin/mysqld (mysqld 8.0.26) initializing of server in progress as process 7124552025-11-28T07:06:59.378238Z 1 [System] [MY-013576] [InnoDB] InnoDB initialization has started.2025-11-28T07:06:59.908463Z 1 [System] [MY-013577] [InnoDB] InnoDB initialization has ended.2025-11-28T07:07:00.800804Z 0 [Warning] [MY-013746] [Server] A deprecated TLS version TLSv1 is enabled for channel mysql_main2025-11-28T07:07:00.801007Z 0 [Warning] [MY-013746] [Server] A deprecated TLS version TLSv1.1 is enabled for channel mysql_main2025-11-28T07:07:00.831043Z 6 [Warning] [MY-010453] [Server] rootlocalhost is created with an empty password ! Please consider switching off the --initialize-insecure option.# 初始化3308实例rootmaster:~# mysqld --initialize-insecure --usermysql --datadir/data00/data/mysql3308 --basedir/root/mysql2025-11-28T07:07:51.734893Z 0 [System] [MY-013169] [Server] /data00/software/mysql_8.0.26/mysql-8.0.26-linux-glibc2.12-x86_64/bin/mysqld (mysqld 8.0.26) initializing of server in progress as process 7125722025-11-28T07:07:51.742666Z 1 [System] [MY-013576] [InnoDB] InnoDB initialization has started.2025-11-28T07:07:52.250511Z 1 [System] [MY-013577] [InnoDB] InnoDB initialization has ended.2025-11-28T07:07:53.016441Z 0 [Warning] [MY-013746] [Server] A deprecated TLS version TLSv1 is enabled for channel mysql_main2025-11-28T07:07:53.016686Z 0 [Warning] [MY-013746] [Server] A deprecated TLS version TLSv1.1 is enabled for channel mysql_main2025-11-28T07:07:53.060209Z 6 [Warning] [MY-010453] [Server] rootlocalhost is created with an empty password ! Please consider switching off the --initialize-insecure option.# 初始化3309实例rootmaster:~# mysqld --initialize-insecure --usermysql --datadir/data00/data/mysql3309 --basedir/root/mysql2025-11-28T07:08:28.983028Z 0 [System] [MY-013169] [Server] /data00/software/mysql_8.0.26/mysql-8.0.26-linux-glibc2.12-x86_64/bin/mysqld (mysqld 8.0.26) initializing of server in progress as process 7128432025-11-28T07:08:28.989875Z 1 [System] [MY-013576] [InnoDB] InnoDB initialization has started.2025-11-28T07:08:29.529660Z 1 [System] [MY-013577] [InnoDB] InnoDB initialization has ended.2025-11-28T07:08:30.454927Z 0 [Warning] [MY-013746] [Server] A deprecated TLS version TLSv1 is enabled for channel mysql_main2025-11-28T07:08:30.455127Z 0 [Warning] [MY-013746] [Server] A deprecated TLS version TLSv1.1 is enabled for channel mysql_main2025-11-28T07:08:30.593524Z 6 [Warning] [MY-010453] [Server] rootlocalhost is created with an empty password ! Please consider switching off the --initialize-insecure option.编写实例配置文件# 3307实例rootmaster:~# cat /data00/data/mysql3307/my.cnf EOF[mysqld]server_id3307port3307usermysqlbasedir/root/mysqldatadir/data00/data/mysql3307socket/tmp/mysql3307.sockEOF# 3308实例rootmaster:~# cat /data00/data/mysql3308/my.cnf EOF[mysqld]server_id3308port3308usermysqlbasedir/root/mysqldatadir/data00/data/mysql3308socket/tmp/mysql3308.sockEOF# 3309实例rootmaster:~# cat /data00/data/mysql3309/my.cnf EOF[mysqld]server_id3309port3309usermysqlbasedir/root/mysqldatadir/data00/data/mysql3309socket/tmp/mysql3309.sockEOF编写systemd配置文件# 3307 systemdrootmaster:~# cat /usr/lib/systemd/system/mysqld3307.serviceEOF[Unit]DescriptionMySQL ServerDocumentationmysqld.serviceAfternetwork.targetAftersyslog.target[Install]WantedBymulti-user.target[Service]UsermysqlGroupmysqlExecStart/root/mysql/bin/mysqld --defaults-file/data00/data/mysql3307/my.cnfLimitNOFILE 5000EOF# 3308 systemdrootmaster:~# cat /usr/lib/systemd/system/mysqld3308.serviceEOF[Unit]DescriptionMySQL ServerDocumentationmysqld.serviceAfternetwork.targetAftersyslog.target[Install]WantedBymulti-user.target[Service]UsermysqlGroupmysqlExecStart/root/mysql/bin/mysqld --defaults-file/data00/data/mysql3308/my.cnfLimitNOFILE 5000EOF# 3309 systemdrootmaster:~# cat /usr/lib/systemd/system/mysqld3309.serviceEOF[Unit]DescriptionMySQL ServerDocumentationmysqld.serviceAfternetwork.targetAftersyslog.target[Install]WantedBymulti-user.target[Service]UsermysqlGroupmysqlExecStart/root/mysql/bin/mysqld --defaults-file/data00/data/mysql3309/my.cnfLimitNOFILE 5000EOF启动mysql# 加载systemd文件rootmaster:~# systemctl daemon-reload# 启动服务rootmaster:~# systemctl start mysqld3307rootmaster:~# systemctl start mysqld3308rootmaster:~# systemctl start mysqld3309登录实例并初始化修改密码、授权初始化3307rootmaster:~# mysql -uroot -S /tmp/mysql3307.sock# 修改root用户密码为rootmysql ALTER USER rootlocalhost IDENTIFIED BY root;Query OK, 0 rows affected (0.01 sec)# 创建一个可远程连接的root用户可选mysql CREATE USER root% IDENTIFIED BY root;Query OK, 0 rows affected (0.01 sec)# 授权可选mysql GRANT ALL PRIVILEGES ON *.* TO root% WITH GRANT OPTION;Query OK, 0 rows affected (0.01 sec)# 刷新权限mysql FLUSH PRIVILEGES;Query OK, 0 rows affected (0.00 sec)# 退出mysql重新使用用户名、密码连接rootmaster:~# mysql -uroot -proot -P3307mysql: [Warning] Using a password on the command line interface can be insecure.Welcome to the MySQL monitor. Commands end with ; or \g.Your MySQL connection id is 13Server version: 8.0.26 MySQL Community Server - GPLCopyright (c) 2000, 2021, Oracle and/or its affiliates.Oracle is a registered trademark of Oracle Corporation and/or itsaffiliates. Other names may be trademarks of their respectiveowners.Type help; or \h for help. Type \c to clear the current input statement.mysql初始化3308# 使用sock连接mysqlrootmaster:~# mysql -uroot -S /tmp/mysql3308.sock# 修改root用户密码为rootmysql ALTER USER rootlocalhost IDENTIFIED BY root;Query OK, 0 rows affected (0.01 sec)# 创建一个可远程连接的root用户可选mysql CREATE USER root% IDENTIFIED BY root;Query OK, 0 rows affected (0.01 sec)# 授权可选mysql GRANT ALL PRIVILEGES ON *.* TO root% WITH GRANT OPTION;Query OK, 0 rows affected (0.01 sec)# 刷新权限mysql FLUSH PRIVILEGES;Query OK, 0 rows affected (0.00 sec)# 退出mysql重新使用用户名、密码连接rootmaster:~# mysql -uroot -proot -P3308mysql: [Warning] Using a password on the command line interface can be insecure.Welcome to the MySQL monitor. Commands end with ; or \g.Your MySQL connection id is 13Server version: 8.0.26 MySQL Community Server - GPLCopyright (c) 2000, 2021, Oracle and/or its affiliates.Oracle is a registered trademark of Oracle Corporation and/or itsaffiliates. Other names may be trademarks of their respectiveowners.Type help; or \h for help. Type \c to clear the current input statement.mysql初始化3309rootmaster:~# mysql -uroot -S /tmp/mysql3309.sock# 修改root用户密码为rootmysql ALTER USER rootlocalhost IDENTIFIED BY root;Query OK, 0 rows affected (0.01 sec)# 创建一个可远程连接的root用户可选mysql CREATE USER root% IDENTIFIED BY root;Query OK, 0 rows affected (0.01 sec)# 授权可选mysql GRANT ALL PRIVILEGES ON *.* TO root% WITH GRANT OPTION;Query OK, 0 rows affected (0.01 sec)# 刷新权限mysql FLUSH PRIVILEGES;Query OK, 0 rows affected (0.00 sec)# 退出mysql重新使用用户名、密码连接rootmaster:~# mysql -uroot -proot -P3309mysql: [Warning] Using a password on the command line interface can be insecure.Welcome to the MySQL monitor. Commands end with ; or \g.Your MySQL connection id is 13Server version: 8.0.26 MySQL Community Server - GPLCopyright (c) 2000, 2021, Oracle and/or its affiliates.Oracle is a registered trademark of Oracle Corporation and/or itsaffiliates. Other names may be trademarks of their respectiveowners.Type help; or \h for help. Type \c to clear the current input statement.mysql