快捷菜单
常用功能一站直达
更多功能请点顶栏「快捷菜单」

[toc]
1centos7 1810
2mysql-5.7.42-linux-glibc2.12-x86_64.tar.gz链接:https://pan.baidu.com/s/1zFL_PF2J_cEJBCUUPbf3Hg?pwd=0elw
提取码:0elw
2024.4.20-实战:Centos7配置mysql多实例-2024.4.20(测试成功)

进入官网下载专用的mysql安装包,专用的才支持多实例
https://downloads.mysql.com/archives/community/

配置mysql安装环境,首先确保你已经卸载全部之前安装过的mysql文件
1# 卸载方法
2yum list installed | grep mysql
3yum remove -y mysql-server1[root@vm-template ~]#ll -h
2total 647M
3-rw-rw-rw- 1 root root 647M Apr 20 15:12 mysql-5.7.42-linux-glibc2.12-x86_64.tar.gz1tar -xf mysql-5.7.42-linux-glibc2.12-x86_64.tar.gz
2mv mysql-5.7.42-linux-glibc2.12-x86_64 /usr/local/mysql 1#先备份
2cp /etc/my.cnf{,.bak}
3
4vim /etc/my.cnf
5
6[mysqld_multi]
7mysqld = /usr/local/mysql/bin/mysqld_safe
8mysqladmin = /usr/local/mysql/bin/mysqladmin
9user = root
10
11[mysqld1]
12datadir = /mysqlmul/mysqld1
13port = 3306
14log-error = /mysqlmul/mysqld1/mysqld1.err
15pid-file = /mysqlmul/mysqld1/mysqld1.pid
16socket = /mysqlmul/mysqld1/mysqld1.sock
17
18[mysqld2]
19datadir = /mysqlmul/mysqld2
20port = 3307
21log-error = /mysqlmul/mysqld2/mysqld2.err
22pid-file = /mysqlmul/mysqld2/mysqld2.pid
23socket = /mysqlmul/mysqld2/mysqld2.sock1mkdir -p /mysqlmul/mysqld1
2mkdir -p /mysqlmul/mysqld21vim /etc/profile
2
3export PATH=/usr/local/mysql/bin:$PATH
4
5##生效
6source /etc/profile1useradd -M -s /sbin/nologin mysql1mysqld_multi start 1
接下来 拿着这个生成的密码登录mysql:
1 mysql -uroot -p'gFIA/htj*7ho' -S /mysqlmul/mysqld1/mysqld1.sock在修改当前的用户密码 就可以:
1alter user 'root'@'localhost' identified by 'xyy520';
2flush privileges;
1mysqld_multi start 2
同样,修改密码即可:
1mysql -uroot -p'J%oRIn&8sdpX' -S /mysqlmul/mysqld2/mysqld2.sock
2
3alter user 'root'@'localhost' identified by 'xyy520';
4flush privileges;
接下来验证 可以看到3306,3307 端口都在listen 实验成功:

1[root@vm-template ~]#mysqld_multi stop 1
2[root@vm-template ~]#mysqld_multi stop 2
3[root@vm-template ~]#mysqld_multi stop 3
这个方法无法停止mysql实例哦……,只能使用mysqladmin来停止实例了……😒
业务开机自启脚本😒
且这些实例都是以root身份运行的……

以上3个问题后续再看吧,本次到此结束。😂
在原基础上添加一个或多个实例
1 1,首先编辑/etc/my.cnf文件,添加新的实列配置就可以,配置如下
2 vim /etc/my.cnf
3
4 [mysqld_multi]
5mysqld = /usr/local/mysql/bin/mysqld_safe
6mysqladmin = /usr/local/mysql/bin/mysqladmin
7user = root
8
9[mysqld1]
10datadir = /mysqlmul/mysqld1
11port = 3306
12log-error = /mysqlmul/mysqld1/mysqld1.err
13pid-file = /mysqlmul/mysqld1/mysqld1.pid
14socket = /mysqlmul/mysqld1/mysqld1.sock
15
16[mysqld2]
17datadir = /mysqlmul/mysqld2
18port = 3307
19log-error = /mysqlmul/mysqld2/mysqld2.err
20pid-file = /mysqlmul/mysqld2/mysqld2.pid
21socket = /mysqlmul/mysqld2/mysqld2.sock
22
23[mysqld3]
24datadir = /mysqlmul/mysqld3
25port = 3308
26log-error = /mysqlmul/mysqld3/mysqld3.err
27pid-file = /mysqlmul/mysqld3/mysqld3.pid
28socket = /mysqlmul/mysqld3/mysqld3.sock
29
30##创建目录
31mkdir -p /mysqlmul/mysqld3
32
332,再重新按照以下命令启动就可以 密码配置同上面的配置就可以
34mysqld_multi start 3
35
36mysql -uroot -p'tz?jL>ul3x%%' -S /mysqlmul/mysqld3/mysqld3.sock
37
38alter user 'root'@'localhost' identified by 'xyy520';
39flush privileges;验证 可以看见由两台实例变为三台实例:

感谢这位博主的详细文档哦:😘
https://blog.csdn.net/m0_56796630/article/details/132433854

以下方法,自己测试一直有问题,这里仅仅做记录:
1yum install mariadb-server
2Systemctl start mariadb
3
4mkdir -pv /mysql/{3306,3307,3308}/{data,etc,socket,log,bin,pid}
5chown -R mysql.mysql /mysql
6
7mysql_install_db --datadir=/mysql/3306/data --user=mysql
8mysql_install_db --datadir=/mysql/3307/data --user=mysql
9mysql_install_db --datadir=/mysql/3308/data --user=mysql
10
11cp /etc/my.cnf /mysql/3306/etc/
12vim /mysql/3306/etc/my.cnf
13[mysqld]
14#加此行,如果port是3306可省略此行
15port=3306
16datadir=/mysql/3306/data/
17socket=/mysql/3306/socket/mysql.sock
18[mysqld_safe]
19log-error=/mysql/3306/log/mariadb.log
20pid-file=/mysql/3306/pid/mariadb.pid
21#重复上面步骤设置3307,3308
22
23vim /mysql/3306/bin/mysqld
24#!/bin/bash
25port=3306
26mysql_user="root"
27mysql_pwd="magedu"
28cmd_path="/usr/bin"
29mysql_basedir="/mysql"
30mysql_sock="${mysql_basedir}/${port}/socket/mysql.sock"
31function_start_mysql()
32{
33 if [ ! -e "$mysql_sock" ];then
34 printf "Starting MySQL...\n"
35 ${cmd_path}/mysqld_safe --defaultsfile=${mysql_basedir}/${port}/etc/my.cnf &> /dev/null &
36 else
37 printf "MySQL is running...\n"
38 exit
39 fi
40}
41function_stop_mysql()
42{
43 if [ ! -e "$mysql_sock" ];then
44 printf "MySQL is stopped...\n"
45 exit
46 else
47 printf "Stoping MySQL...\n"
48 ${cmd_path}/mysqladmin -u ${mysql_user} -p${mysql_pwd} -S ${mysql_sock}
49shutdown
50 fi
51}
52function_restart_mysql()
53{
54 printf "Restarting MySQL...\n"
55 function_stop_mysql
56 sleep 2
57 function_start_mysql
58}
59case $1 in
60start)
61 function_start_mysql
62;;
63stop)
64 function_stop_mysql
65;;
66restart)
67 function_restart_mysql
68;;
69*)
70 printf "Usage: ${mysql_basedir}/${port}/bin/mysqld {start|stop|restart}\n"
71esac
72#重复上述过程,分别建立3307,3308的启动脚本
73
74
75
76/mysql/3306/bin/mysqld start
77/mysql/3307/bin/mysqld start
78/mysql/3308/bin/mysqld start
79
80/mysql/3306/bin/mysqld start
81mysql -uroot -S /mysql/3306/socket/mysql.sock
82mariadb>show variables like ‘port’ #确认连接的端口
83
84mysqladmin -uroot -S /mysql/3306/socket/mysql.sock password 'magedu' #加上新口令
85#或者登录mysql,执行下面也可以
86Mariadb>update mysql.user set password=password(“centos”) where user=’root’;
87Mariadb>flush privileges;
88#重复步骤,分别修改别外两个实例3307,3308对应root口令
89
90mysql -uroot -S /mysql/3306/socket/mysql.sock –p #提示输入口令才能登录我的博客主旨:
🍀 微信二维码
x2675263825 (舍得), qq:2675263825。

🍀 微信公众号
《云原生架构师实战》

🍀 个人博客站点


🍀 语雀
https://www.yuque.com/xyy-onlyone

🍀 csdn
https://blog.csdn.net/weixin_39246554?spm=1010.2135.3001.5421

🍀 知乎
https://www.zhihu.com/people/foryouone

好了,关于本次就到这里了,感谢大家阅读,最后祝大家生活快乐,每天都过的有意义哦,我们下期见!
精选 · 友链 · 更多

One的公众号
爱折腾博客的小白