文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

CentOS下mysql多实例操作指南

2024-04-02 19:55

关注

Mysql工作中无处不在,无数次安装,优化,一直没有时间,整理进行归档,最近在做mysql的Dass服务,把最近遇到的问题,进行整理,梳理一份操作指南;供大家参考;

序言

Mysql多实例即一台服务器上运行多个Mysql服务进程 ,开启不同的服务端口,通过不同的socket 监听不同的服务端口来提供各自的服务。

Mysql多例的好处:

  1、 有效利用服务器资源:通过多实例地配置,可以将服务器剩余的资源充分利用起来。
  2、 资源互相抢占问题:资源互相抢占问题,当某个服务实例服务并发很高时或者开启慢查询时,会消耗更多的内存、CPU、磁盘IO资源,导致服务器上的其他实例提供服务的质量下降。
  3、 节约资源。

部署多实例的两种方式

  1. 使用多个配置文件启动不同的进程来实现多实例,这种方式的优势逻辑简单,配置简单,缺点是管理起来不太方便;
  2. 通过官方自带的mysqld_multi使用单独的配置文件来实现多实例,这种方式定制每个实例的配置不太方面,优点是管理起来很方便,集中管理;

同一开发环境下安装两个数据库,必须处理以下问题

centos7 x64 参考地址:https://dev.mysql.com/downloads/mysql/
mysql 5.7.22(压缩版)

cd /usr/local  
wget https://dev.mysql.com/get/Downloads/MySQL-5.7/mysql-5.7.22-linux-glibc2.12-x86_64.tar.gz
tar -zxvf  mysql-5.7.22-linux-glibc2.12-x86_64.tar.gz  
mv mysql-5.7.22-linux-glibc2.12-x86_64.tar.gz  /usr/local/mysql

初始化用户组及用户

创建一个mysql用户组及用户,且这个用户是不可登录的
创建用户组:groupadd mysql
创建不可登录用户:useradd -g mysql -s /sbin/nologin -d /opt/mysql mysql
查看下创建后的用户信息:id msyql

 id mysql
uid=501(mysql) gid=501(mysql) groups=501(mysql)

创建相关目录

cd /  
mkdir /data  
cd /data  
mkdir mysql  
cd mysql   
mkdir {mysql_3306,mysql_3307}  
cd /data/mysql/mysql_3306  
mkdir {data,log,tmp}  
cd /data/mysql/mysql_3307  
mkdir {data,log,tmp}

更改目录权限

chown -R mysql:mysql /data/mysql/  
chown -R mysql:mysql /usr/local/mysql/  

添加环境变量

echo 'export PATH=$PATH:/usr/local/mysql/bin' >>  /etc/profile  
source /etc/profile   

CentOS下mysql多实例操作指南

检查是否配置

cat /etc/profile

复制my.cnf文件到etc目录(mysql 5.722没有my-default.cnf ,需要自动手动创建或者之前的地方进行copy)

[client]
port=3306
socket=/tmp/mysql.sock

[mysqld_multi] 
mysqld = /usr/local/mysql/bin/mysqld_safe 
mysqladmin = /usr/local/mysql/bin/mysqladmin 
log = /data/mysql/mysqld_multi.log 

[mysqld] 
user=mysql 
basedir = /usr/local/mysql 
sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES 

[mysqld3306] 
mysqld=mysqld 
mysqladmin=mysqladmin 
datadir=/data/mysql/mysql_3306/data 
port=3306 
server_id=3306 
socket=/tmp/mysql_3306.sock 
log-output=file 
slow_query_log = 1 
long_query_time = 1 
slow_query_log_file = /data/mysql/mysql_3306/log/slow.log 
log-error = /data/mysql/mysql_3306/log/error.log 
log-bin = /data/mysql/mysql_3306/log/mysql3306_bin
binlog-ignore-db = mysql 

[mysqld3307] 
mysqld=mysqld 
mysqladmin=mysqladmin
datadir=/data/mysql/mysql_3307/data 
port=3307 
server_id=3307 
socket=/tmp/mysql_3307.sock 
log-output=file 
slow_query_log = 1 
long_query_time = 1 
slow_query_log_file = /data/mysql/mysql_3307/log/slow.log 
log-error = /data/mysql/mysql_3307/log/error.log 
log-bin = /data/mysql/mysql_3307/log/mysql3307_bin

replicate-ignore-db=mysql
relay-log = slave-relay-bin
relay-log-index = slave-relay-bin.index
read_only

初始化数据库

初始化各个实例:初始化完后会在日志中生成密码,记得保存,初始化密码用到

cd /usr/local/mysql/

bin/mysqld --initialize --user=mysql --basedir=/usr/local/mysql --datadir=/data/mysql/mysql_3306/data/
bin/mysqld --initialize --user=mysql --basedir=/usr/local/mysql --datadir=/data/mysql/mysql_3307/data/

##开启各实例的SSL连接
bin/mysql_ssl_rsa_setup --user=mysql --basedir=/usr/local/mysql --datadir=/data/mysql/mysql_3306/data/
bin/mysql_ssl_rsa_setup --user=mysql --basedir=/usr/local/mysql --datadir=/data/mysql/mysql_3307/data/

PS:
--basedir:mysql的安装目录
--datadir:数据库的数据文件目录

查看数据库是否初始化成功

cd /data/mysql/mysql_3306/data

CentOS下mysql多实例操作指南

设置启动文件

cp /usr/local/mysql/support-files/mysqld_multi.server /etc/init.d/mysqld_multi

给予脚本可执行权限

chmod +x /etc/init.d/mysqld_multi

加入service服务管理

chkconfig --add mysqld_multi  

mysqld_multi进行多实例管理

set password=password('123456');
flush privileges;

CentOS下mysql多实例操作指南

应用路径:/data/web/wordpress

nginx 配置:/usr/local/openresty/nginx/conf/site-enable/help.conf

3307的就不写了,你按照以上方法,进行操作;

设置远程连接mysql:

GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'password' WITH GRANT OPTION;

FLUSH PRIVILEGES; 

其中,root 是用户名,% 表示所有人都可以访问,password是密码,尽量不用使用root,安全很重要
如果你看到当前位置,你已经成功了,致敬在路上学习的小伙伴伴,与你一起知识总结;
如果感觉还不错,就分享出去,后续给大家介绍,mysql主从操作构建;

mysql的经典工作操作指南;

Percona Toolkit

https://www.percona.com/downloads/percona-toolkit/LATEST/

percona-xtrabackup

https://www.percona.com/doc/percona-xtrabackup/2.1/xtrabackup_bin/incremental_backups.html#

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-数据库
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯