Loading

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文件, 这里只配置了基本启动配置

  1. [mysqld_multi]        //启用多实例
  2. mysqld = /usr/local/mysql/bin/mysqld_safe        //指定进程文件路径
  3. mysqladmin = /usr/local/mysql/bin/mysqladmin    //指定管理命令路径
  4. user = root        //指定进程用户
  5. [mysqld1]        //实例进程名称
  6. port=3307        //端口号
  7. datadir=/data3307        //数据库目录 ,要手动创建
  8. socket=/data3307/mysqld.sock        //指定sock文件的路径和名称
  9. pid-file=/data3307/mysql1.pid        //进程pid号文件位置
  10. log-error=/data3307/mysql1.err        //错误日志位置
  11. [mysqld2]
  12. port=3308
  13. datadir=/data3308
  14. socket=/data3308/mysqld.sock
  15. pid-file=/data3308/mysql2.pid
  16. log-error=/data3308/mysql2.err

4)创建数据库目录

  1. [root@mysql mysql]# mkdir -p /data3307
  2. [root@mysql mysql]# mkdir -p /data3308

5)创建进程运行的所有者和组 mysql

  1. [root@mysql mysql]# useradd mysql
  2. [root@mysql mysql]# chown mysql:mysql /data*

6)初始化授权库

 
  1. [root@mysql mysql]# mysqld --user=mysql --basedir=/usr/local/mysql
  2. --datadir=/data3307 --initialize
  3. ...
  4. 2018-09-26T07:07:33.443378Z 1 [Note] A temporary password is generated for root@localhost: 7L?Vi!dGKmgu        //root用户登录的初始化密码
  5. [root@mysql mysql]# mysqld --user=mysql --basedir=/usr/local/mysql
  6. --datadir=/data3308 --initialize
  7. ...
  8. 2018-09-26T07:08:07.770289Z 1 [Note] A temporary password is generated for root@localhost: kC)BbyUp1a-b        //root用户登录的初始化密码

7)启动多实例

  1. [root@mysql mysql]# mysqld_multi start 1        //1为实例编号
  2. [root@mysql mysql]# mysqld_multi start 2

8)查看端口

 
  1. [root@mysql mysql]# netstat -utnlp | grep :3307
  2. tcp6 0 0 :::3307 :::* LISTEN 21009/mysqld
  3. [root@mysql mysql]# netstat -utnlp | grep :3308
  4. tcp6 0 0 :::3308 :::* LISTEN 21177/mysqld
  5. [root@mysql mysql]# ps -C mysqld
  6. PID TTY TIME CMD
  7. 21009 pts/1 00:00:00 mysqld
  8. 21177 pts/1 00:00:00 mysqld

9)访问多实例

使用初始化密码登录多实例1(多实例2也是一样操作)

  1. [root@mysql mysql]# mysql -u root -p'7L?Vi!dGKmgu' -S /data3307/mysqld.sock(实例sock进程)
  2. mysql> alter user root@"localhost" identified by '123456';        //修改密码
  3. mysql> show databases;
  4. +--------------------+
  5. | Database |
  6. +--------------------+
  7. | information_schema |
  8. | mysql |
  9. | performance_schema |
  10. | sys |
  11. +--------------------+
  12. 4 rows in set (0.00 sec)
posted @ 2020-12-25 17:49  bathing  阅读(268)  评论(0)    收藏  举报
Live2D