第三篇:mysql多实例
一、mysql的多实例
mysql多实例:同一个软件启动多次,就是多个进程,每个进程监听的端口不同
1.不同的数据目录
2.不同的端口
3.不同的socket文件
4.不同的日志文件
MySQL数据库多种安装方式
数据库官网下载地址 https://downloads.mysql.com/arc
一 linux系统
1.1二进制安装(自定义安装目录)
1)下载二进制包
[root@db01 ~]# wget https://downloads.mysql.com/archives/get/p/23/file/mysql-5.6.46-linux-glibc2.12-x86_64.tar.gz
“wget: 无法解析主机地址”的解决方法
解决方法:
修改DNS的名字为如下
[root@db01 ~]# cat /etc/resolv.conf # Generated by NetworkManager nameserver 8.8.8.8 nameserver 8.8.8.4
设置IP如下:
[root@db01 network-scripts]# cat ifcfg-eth0 DEVICE=eth0 HWADDR=00:0C:29:FD:0D:F7 TYPE=Ethernet UUID=eaac7e98-3bac-4059-a3cb-fbd9853ad8ca ONBOOT=yes NM_CONTROLLED=yes BOOTPROTO=static IPADDR=192.168.91.106 NeTMASK=255.255.255.0 GATEWAY=192.168.91.2 DNS1=8.8.8.8
2)安装依赖
[root@db01 ~]# yum install -y ncurses-devel libaio-devel gcc gcc-c++ glibc cmake autoconf
https://blog.csdn.net/chmod_R_755/article/details/114388654
https://vault.centos.org/ 注意镜像文件的下载
3)解压安装包
[root@db01 ~]# tar xf mysql-5.6.46-linux-glibc2.12-x86_64.tar.gz
4)创建自定义目录
[root@db01 ~]# mkdir /service
5)移动目录并改名
[root@db01 ~]# mv mysql-5.6.46-linux-glibc2.12-x86_64 /service/mysql-5.6.46
6)做软连接
[root@db01 ~]# ln -s /service/mysql-5.6.46 /service/mysql
7)创建数据库用户
[root@db01 ~]# useradd mysql -s /sbin/nologin -M #-M 表示不创建主目录 -s 表示不允许登录
8)配置环境变量
配置环境变量直接使用mysql [root@db01 ~]# vim /etc/profile export PATH=/service/mysql/bin:$PATH [root@db01 ~]# source /etc/profile
9)创建多个数据目录
[root@db01 ~]# mkdir /data/{3307,3308,3309} -p
10)准备多个配置文件
[root@db01 data]# vim /data/3307/my.cnf [mysqld] basedir=/service/mysql datadir=/data/3307/data port=3307 socket=/data/3307/mysql.sock log-error=/data/3307/data/mysql.err log-bin=/data/3307/data/mysql-bin server_id=7 ------------------------------------------- [root@db01 data]# vim /data/3308/my.cnf [mysqld] basedir=/service/mysql datadir=/data/3308/data port=3308 socket=/data/3308/mysql.sock log-error=/data/3308/data/mysql.err log-bin=/data/3308/data/mysql-bin server_id=8 -------------------------------------------- [root@db01 data]# vim /data/3309/my.cnf [mysqld] basedir=/service/mysql datadir=/data/3309/data port=3309 socket=/data/3309/mysql.sock log-error=/data/3309/data/mysql.err log-bin=/data/3309/data/mysql-bin server_id=9
11)初始化多套数据目录
[root@db01 scripts]# ./mysql_install_db --defaults-file=/data/3307/my.cnf --user=mysql --basedir=/service/mysql --datadir=/data/3307/data [root@db01 scripts]# ./mysql_install_db --defaults-file=/data/3308/my.cnf --user=mysql --basedir=/service/mysql --datadir=/data/3308/data [root@db01 scripts]# ./mysql_install_db --defaults-file=/data/3309/my.cnf --user=mysql --basedir=/service/mysql --datadir=/data/3309/data #使用tree可以查看 [root@db01 scripts]# tree -L 3 /data
12)授权目录
[root@db01 scripts]# chown -R mysql.mysql /data
13)启动数据库
[root@db01 scripts]# mysqld_safe --defaults-file=/data/3307/my.cnf & [root@db01 scripts]# mysqld_safe --defaults-file=/data/3308/my.cnf & [root@db01 scripts]# mysqld_safe --defaults-file=/data/3309/my.cnf &
14)检查启动
[root@db01 scripts]# netstat -lntup|grep 330 tcp6 0 0 :::3307 :::* LISTEN 25550/mysqld tcp6 0 0 :::3308 :::* LISTEN 25722/mysqld tcp6 0 0 :::3309 :::* LISTEN 25894/mysqld
15)多实例设置密码
[root@db01 scripts]# mysqladmin -uroot -S /data/3307/mysql.sock password '3307' [root@db01 scripts]# mysqladmin -uroot -S /data/3308/mysql.sock password '3308' [root@db01 scripts]# mysqladmin -uroot -S /data/3309/mysql.sock password '3309'
16)多实例验证
[root@db01 scripts]# mysql -uroot -p3307 -S /data/3307/mysql.sock -e "show variables like 'server_id';" Warning: Using a password on the command line interface can be insecure. +---------------+-------+ | Variable_name | Value | +---------------+-------+ | server_id | 7 | +---------------+-------+ [root@db01 scripts]# mysql -uroot -p3308 -S /data/3308/mysql.sock -e "show variables like 'server_id';" Warning: Using a password on the command line interface can be insecure. +---------------+-------+ | Variable_name | Value | +---------------+-------+ | server_id | 8 | +---------------+-------+ [root@db01 scripts]# mysql -uroot -p3309 -S /data/3309/mysql.sock -e "show variables like 'server_id';" Warning: Using a password on the command line interface can be insecure. +---------------+-------+ | Variable_name | Value | +---------------+-------+ | server_id | 9 | +---------------+-------+
17)连接多实例小技巧
[root@db01 scripts]# vim /usr/bin/mysql3309 mysql -uroot -p3309 -S /data/3309/mysql.sock [root@db01 scripts]# vim /usr/bin/mysql3308 mysql -uroot -p3308 -S /data/3308/mysql.sock [root@db01 scripts]# vim /usr/bin/mysql3307 mysql -uroot -p3307 -S /data/3307/mysql.sock [root@db01 scripts]# chmod +x /usr/bin/mysql*
18)多实例停止数据库
多实列停止数据库 [root@db01 bin]# netstat -lntup |grep 330 tcp 0 0 :::3307 :::* LISTEN 5708/mysqld tcp 0 0 :::3308 :::* LISTEN 5881/mysqld tcp 0 0 :::3309 :::* LISTEN 6053/mysqld [root@db01 bin]# mysqladmin -uroot -p3307 -S /data/3307/mysql.sock shutdown #停止3307 Warning: Using a password on the command line interface can be insecure. 210907 13:13:37 mysqld_safe mysqld from pid file /data/3307/data/db01.pid ended [1] Done mysqld_safe --defaults-file=/data/3307/my.cnf (wd: /service/mysql/scripts) (wd now: /service/mysql/bin) [root@db01 bin]# netstat -lntup |grep 330 tcp 0 0 :::3308 :::* LISTEN 5881/mysqld tcp 0 0 :::3309 :::* LISTEN 6053/mysqld [root@db01 bin]#

浙公网安备 33010602011771号