MySQL多实例配置
在一台物理主机上运行多个数据库服务,可以有效利用服务器资源,节约运维成本和提高硬件利用率,MySQL的多实例配置需要专用的、支持多实例的软件包,例如mysql5.7.24linuxglibc2.12x86_64.tar.gz
。
配置步骤
1. 解压安装包
下载并解压MySQL安装包:
“`bash
tar xf mysql5.7.34linuxglibc2.12x86_64.tar.gz
mv mysql5.7.34linuxglibc2.12x86_64 /usr/local/mysql
“`
2. 创建数据目录和配置文件
创建工作目录和数据目录:
“`bash
mkdir p /mysqlmul/mysqld{1,2}
“`
编写主配置文件my.cnf
:
“`ini
[mysqld_multi]
mysqld = /usr/local/mysql/bin/mysqld_safe
mysqladmin = /usr/local/mysql/bin/mysqladmin
user = root
[mysqld1]
datadir = /mysqlmul/mysqld1
port = 3306
logerror = /mysqlmul/mysqld1/mysqld1.err
pidfile = /mysqlmul/mysqld1/mysqld1.pid
socket = /mysqlmul/mysqld1/mysqld1.sock
[mysqld2]
datadir = /mysqlmul/mysqld2
port = 3307
logerror = /mysqlmul/mysqld2/mysqld2.err
pidfile = /mysqlmul/mysqld2/mysqld2.pid
socket = /mysqlmul/mysqld2/mysqld2.sock
“`
3. 启动实例
启动第1个实例:
“`bash
export PATH=/usr/local/mysql/bin:$PATH
/usr/local/mysql/bin/mysqld_multi start 1
“`
记录临时密码并修改:
“`bash
mysql uroot p’temporary_password’ S /mysqlmul/mysqld1/mysqld1.sock
ALTER USER ‘root’@’localhost’ IDENTIFIED BY ‘new_password’;
“`
启动第2个实例:
“`bash
/usr/local/mysql/bin/mysqld_multi start 2
“`
通过socket连接并修改密码:
“`bash
mysqladmin uroot p’temporary_password’ S /mysqlmul/mysqld2/mysqld2.sock password ‘new_password’
“`
4. 停止服务
停止第1个实例:
“`bash
/usr/local/mysql/bin/mysqld_multi stop 1
“`
5. 加入MySQL命令路径到PATH变量
临时增加:
“`bash
export PATH=$PATH:/usr/local/mysql/bin
“`
永久修改:
“`bash
echo ‘export PATH=$PATH:/usr/local/mysql/bin’ >> ~/.bash_profile
source ~/.bash_profile
“`
常见问题与解答(FAQs)
Q1: 如何查看当前MySQL实例的数量?
A1: 你可以通过以下命令查看当前正在运行的MySQL实例数量和状态:
“`bash
ps ef | grep mysqld
“`
该命令会列出所有名为mysqld
的进程,每个进程对应一个MySQL实例。
Q2: 如果某个实例出现性能问题,该如何排查和解决?
A2: 检查该实例的错误日志文件(如/mysqlmul/mysqld1/mysqld1.err
),查找是否有任何错误信息,使用如下命令查看当前活动的连接数和慢查询:
“`bash
SHOW PROCESSLIST;
SHOW FULL PROCESSLIST;
“`
如果发现有长时间运行的查询或过多的连接数,考虑优化SQL语句或增加硬件资源。
原创文章,作者:未希,如若转载,请注明出处:https://www.kdun.com/ask/1108193.html
本网站发布或转载的文章及图片均来自网络,其原创性以及文中表达的观点和判断不代表本网站。如有问题,请联系客服处理。
发表回复