概述
本文主要介绍如何在同一台Linux服务器上安装多个MySql实例。
解压mysql压缩包,并将文件夹改名为mysql
[root@localhost local]# tar -xvf mysql-8.0.16-linux-glibc2.12-x86_64.tar.xz
[root@localhost local]# mv mysql-8.0.16-linux-glibc2.12-x86_64 mysql
[root@localhost local]# export PATH=$PATH:/usr/local/mysql/bin
在mysql目录中创建数据文件存放路径
[root@localhost local]# mkdir -p mysql/{3306,3307}/data
[root@localhost local]# chown mysql:mysql /usr/local/mysql -R
![c07313c194aaccf2d4e622910c5fdd80.png](https://i-blog.csdnimg.cn/blog_migrate/2f444f945168cf56a82fb1d729e35fe5.jpeg)
实例1配置文件mysql3306.cnf
在mysql下创建文件夹conf
[root@localhost conf]# vi my3306.cnf
datadir=/usr/local/mysql/3306/data
socket=/usr/local/mysql/3306/mysq3306.sock
symbolic-links=0
port=3306
mysqlx_port=33060
[mysqld_safe]
log-error=/usr/local/mysql/3306/log/mysqld3306.log
pid-file=/usr/local/mysql/3306/mysqld.pid
实例2配置文件mysql3307.conf
[root@localhost conf]# vi my3307.cnf
[mysqld]
basedir=/usr/local/mysql
datadir=/usr/local/mysql/3307/data
socket=/usr/local/mysql/3307/mysq3307.sock
symbolic-links=0
port=3307
mysqlx_port=33070
[mysqld_safe]
log-error=/usr/local/mysql/3307/log/mysqld3307.log
pid-file=/usr/local/mysql/3307/mysqld.pid
创建log文件
在3306下创建log文件夹,并创建mysqld3306.log
[root@localhost log]# touch mysqld3306.log
在3307下创建log文件夹,并创建mysqld3307.log
[root@localhost log]# touch mysqld3307.log
再次赋权:
[root@infosec local]# chown mysql:mysql /usr/local/mysql -R
初始化实例
[root@localhost mysql]# mysqld --defaults-file=/usr/local/mysql/conf/my3306.cnf --initialize --user=mysql
[root@localhost mysql]# mysqld --defaults-file=/usr/local/mysql/conf/my3307.cnf --initialize --user=mysql
分别输出密码:
2020-12-03T02:00:59.511631Z 5 [Note] [MY-010454] [Server] A temporary password is generated for root@localhost: ;T>tezU=.7rr
2020-12-03T02:02:52.846440Z 5 [Note] [MY-010454] [Server] A temporary password is generated for root@localhost: fQw2,kSrM!gh
![23d3f940cee202290084dd2ee57bf0a8.png](https://i-blog.csdnimg.cn/blog_migrate/3ce9fb1d11dbb21776569ae415cbb420.jpeg)
启动实例
- 启动实例-3306
[root@localhost mysql]# mysqld_safe --defaults-file=/usr/local/mysql/conf/my3306.cnf --user=mysql &
- 登录mysql3306
[root@localhost 3306]# mysql -S/usr/local/mysql/3306/mysq3306.sock -uroot -p
Enter password:输入之前记录的密码
![8af1d3f8dbce4587ee9d01c5b638e3f5.png](https://i-blog.csdnimg.cn/blog_migrate/8a7940084d29be75ae8edafb3ef453b1.jpeg)
- 启动实例3307
[root@localhost bin]# mysqld_safe --defaults-file=/usr/local/mysql/conf/my3307.cnf --user=mysql &
- 登录mysql3307
[root@localhost 3307]# mysql -S/usr/local/mysql/3307/mysq3307.sock -uroot -p
Enter password:输入之前记录的密码
![95c75f5b3c9c97b37b8513cfdd804fb6.png](https://i-blog.csdnimg.cn/blog_migrate/1407bd7bf922a06f0b6eb81d8735785b.jpeg)
停止实例
以3307为例
[root@localhost bin]# ln -s /usr/local/mysql/bin/mysqladmin /usr/bin
[root@localhost bin]# mysqladmin -uroot -p -S /usr/local/mysql/3307/mysq3307.sock shutdown
Enter password:
或者:
[root@localhost bin]# mysqladmin -S /usr/local/mysql/3307/mysq3307.sock -u root -p123456 shutdown