MySQL多实例在Linux上的配置与管理
MySQL多实例指的是在一台服务器上运行多个MySQL服务进程,每个进程提供独立的数据库服务,通过不同的端口监听和数据目录来区分不同实例,从而有效利用服务器资源。
(图片来源网络,侵删)
多实例的特点
特点 | 描述 |
优点 | 有效利用服务器资源、节约服务器成本、实现资源逻辑隔离 |
缺点 | 存在资源互相抢占问题,当某个实例负载较高时可能影响其他实例性能 |
部署方式
1. 使用多个配置文件启动不同进程
优点:配置简单,逻辑清晰。
缺点:管理不便,难以集中管理。
2. 使用官方自带的mysqld_multi工具
优点:集中管理方便。
(图片来源网络,侵删)
缺点:定制每个实例的配置不太方便。
具体步骤
1. 安装MySQL
groupadd mysql useradd -r -g mysql -s /bin/false mysql cd /usr/local tar zxvf mysql-5.7.27-linux-glibc2.12-x86_64.tar.gz ln -s mysql-5.7.27-linux-glibc2.12-x86_64.tar.gz mysql
2. 创建相关目录并分配权限
mkdir data/mysql_3306 mkdir data/mysql_3307 chown mysql:mysql data/mysql_3306 -R chown mysql:mysql data/mysql_3307 -R
3. 配置环境变量
echo 'export PATH=$PATH:/usr/local/mysql/bin' >> /etc/profile source /etc/profile
4. 创建配置文件(/etc/my.cnf)
(图片来源网络,侵删)
[mysqld_multi] mysqld = /usr/local/mysql/bin/mysqld_safe mysqladmin = /usr/local/mysql/bin/mysqladmin user = root pass = root@123 log = /usr/local/mysql/log/mysql_multi.log [mysqld3306] basedir = /usr/local/mysql datadir = /usr/local/mysql/data/mysql_3306 socket = /tmp/mysql_3306.sock port = 3306 pid-file = /usr/local/mysql/data/mysql_3306/mysql.pid user = mysql log-output = file slow_query_log = 1 long_query_time = 1 slow_query_log_file = /usr/local/mysql/log/3306/slow.log log-error = /usr/local/mysql/log/3306/error.log binlog_format = mixed server_id = 1 log_bin = mysql-bin [mysqld3307] basedir = /usr/local/mysql datadir = /usr/local/mysql/data/mysql_3307 socket = /tmp/mysql_3307.sock port = 3307 pid-file = /usr/local/mysql/data/mysql_3307/mysql.pid user = mysql server_id = 2 slow_query_log = 1 long_query_time = 1 slow_query_lo
5. 初始化数据目录并启动实例
初始化数据目录 cd /usr/local/mysql ./bin/mysqld --initialize-insecure --user=mysql --datadir=data/mysql_3306 ./bin/mysqld --initialize-insecure --user=mysql --datadir=data/mysql_3307 启动实例 ./bin/mysqld_multi start 3306 ./bin/mysqld_multi start 3307
应用场景
场景 | 描述 |
资金紧张的公司 | 需要独立提供服务但资源有限 |
用户并发访问量不大的业务 | 如古董展示网站,追求稳定而非高并发 |
大型网站 | 如门户网站,通过多实例节省硬件资源 |
注意事项
确保配置文件路径、数据目录、端口号等均不冲突。
注意资源分配,避免高负载实例影响其他实例性能。
到此,以上就是小编对于linux mysql 多实例的问题就介绍到这了,希望介绍的几点解答对大家有用,有任何问题和不懂的,欢迎各位朋友在评论区讨论,给我留言。
本文来源于互联网,如若侵权,请联系管理员删除,本文链接:https://www.9969.net/75093.html