mysql单机多实例配置
主机安排:
- 在主机192.168.4.56上,配置第1个MySQL实例
- 实例名称mysql1、端口3307
- 数据库目录/data3307、pid文件mysql1.pid
- 错误日志mysql1.err
- 在主机192.168.4.56上,配置第2个MySQL实例
- 实例名称mysql2、端口3308
- 数据库目录/data3308、pid文件mysql2.pid
- 错误日志mysql2.err
1.什么是多实例:
在一台物理主机上运行多个数据库服务,可以节约运维成本,提高硬件利用率
1)解压软件、修改目录名
[root@mysql ~]# wget https://cdn.mysql.com/archives/mysql-5.7/mysql-5.7.28-linux-glibc2.12-i686.tar.gz
[root@mysql ~]# tar -xvf mysql-5.7.28-linux-glibc2.12-i686.tar.gz
[root@mysql ~]# mv mysql-5.7.28-linux-glibc2.12-i686 /usr/local/mysql
2)调整PATH变量
[root@mysql mysql]# echo "export PATH=/usr/local/mysql/bin:$PATH" >> /etc/profile
[root@mysql mysql]# source /etc/profile
[root@mysql mysql]# echo $PATH
/usr/local/mysql/bin:/usr/local/mycat/bin:/usr/local/mycat/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin:/root/bin
3)编辑主配置文件/etc/my.cnf
每个实例要有独立的数据库目录、监听端口号、实例名称和独立的sock文件, 这里只配置了基本启动配置
- [mysqld_multi] //启用多实例
- mysqld = /usr/local/mysql/bin/mysqld_safe //指定进程文件路径
- mysqladmin = /usr/local/mysql/bin/mysqladmin //指定管理命令路径
- user = root //指定进程用户
- [mysqld1] //实例进程名称
- port=3307 //端口号
- datadir=/data3307 //数据库目录 ,要手动创建
- socket=/data3307/mysqld.sock //指定sock文件的路径和名称
- pid-file=/data3307/mysql1.pid //进程pid号文件位置
- log-error=/data3307/mysql1.err //错误日志位置
- [mysqld2]
- port=3308
- datadir=/data3308
- socket=/data3308/mysqld.sock
- pid-file=/data3308/mysql2.pid
- log-error=/data3308/mysql2.err
4)创建数据库目录
- [root@mysql mysql]# mkdir -p /data3307
- [root@mysql mysql]# mkdir -p /data3308
5)创建进程运行的所有者和组 mysql
- [root@mysql mysql]# useradd mysql
- [root@mysql mysql]# chown mysql:mysql /data*
6)初始化授权库
- [root@mysql mysql]# mysqld --user=mysql --basedir=/usr/local/mysql
- --datadir=/data3307 --initialize
- ...
- 2018-09-26T07:07:33.443378Z 1 [Note] A temporary password is generated for root@localhost: 7L?Vi!dGKmgu //root用户登录的初始化密码
- [root@mysql mysql]# mysqld --user=mysql --basedir=/usr/local/mysql
- --datadir=/data3308 --initialize
- ...
- 2018-09-26T07:08:07.770289Z 1 [Note] A temporary password is generated for root@localhost: kC)BbyUp1a-b //root用户登录的初始化密码
7)启动多实例
- [root@mysql mysql]# mysqld_multi start 1 //1为实例编号
- [root@mysql mysql]# mysqld_multi start 2
8)查看端口
- [root@mysql mysql]# netstat -utnlp | grep :3307
- tcp6 0 0 :::3307 :::* LISTEN 21009/mysqld
- [root@mysql mysql]# netstat -utnlp | grep :3308
- tcp6 0 0 :::3308 :::* LISTEN 21177/mysqld
- [root@mysql mysql]# ps -C mysqld
- PID TTY TIME CMD
- 21009 pts/1 00:00:00 mysqld
- 21177 pts/1 00:00:00 mysqld
9)访问多实例
使用初始化密码登录多实例1(多实例2也是一样操作)
- [root@mysql mysql]# mysql -u root -p'7L?Vi!dGKmgu' -S /data3307/mysqld.sock(实例sock进程)
- mysql> alter user root@"localhost" identified by '123456'; //修改密码
- mysql> show databases;
- +--------------------+
- | Database |
- +--------------------+
- | information_schema |
- | mysql |
- | performance_schema |
- | sys |
- +--------------------+
- 4 rows in set (0.00 sec)
记录工作中的一下问题

浙公网安备 33010602011771号