欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

一台centos7下安装多实例mysql(多台都会安,一台算个啥?)

程序员文章站 2024-02-29 11:17:34
...

一台centos7下安装多实例mysql

简介
该文章主要简介在同一台Linux服务器下安装多台mysql,当然多台你都会安装了,那么单台的也是一样的。感谢各位小伙伴的支持,有不对的地方感谢指出!

安装前准备

1、 服务器版本:CentOS 7

2、 将/etc/selinux/config里的SELINUX设置成:disabled

3、 下载mysql:mysql-5.7.19-linux-glibc2.12-x86_64.tar.gz(我这里是以5.7为例的)

安装&配置多实例mysql

1、 解压mysql

a、解压mysq:tar -zxvf mysql-5.7.19-linux-glibc2.12-x86_64.tar.gz

b、移动mysql:sudo mv mysql-5.7.19-linux-glibc2.12-x86_64 /usr/java/mysql

2、 创建mysql实例用户及文件

a、添加用户

		sudo useradd mysql  //添加用户自动会分配一个组,我这里就没有再添加mysql组了(你也可以先添加组再添加用户)

b、将解压的mysql放到该目录下(个人习惯)

		sudo mkdir -p /usr/java/mysql/mysql_files          //数据导入导出目录

c、 创建多实例数据目录
  
   sudo mkdir -p /usr/java/data/mysql_data{3306,3307}

d、 修改mysql目录的属组及用户
  
   sudo chown root.mysql -R /usr/java/mysql

e、 修改专用目录的属主及属组

		sudo chown mysql.mysql -R /usr/java/mysql/mysql_files  /usr/java/data/mysql_data{3306,3307}
3、配置MySQL的配置文件/etc/my.cnf:

[mysqld_multi]

mysqld = /usr/java/mysql/bin/mysqld

mysqladmin = /usr/java/mysql/bin/mysqladmin

log = /tmp/mysql_multi.log

[mysqld1]

datadir = /usr/java/data/mysql_data3306 #设置数据目录
    socket = /tmp/mysql.sock1 #设置sock文件存放路径
    port = 3306 #设置监听开放端口 
    user = mysql #设置运行用户
    performance_schema = off #关闭监控
    innodb_buffer_pool_size = 32M #设置innodb 缓存大小
    bind_address = 0.0.0.0 #设置监听IP地址
    skip-name-resolve = 0 #关闭DNS反向解析

[mysqld2]
    datadir = /usr/java/data/mysql_data3307
    socket = /tmp/mysql.sock2
    port = 3307
    user = mysql
    performance_schema = off
    innodb_buffer_pool_size = 32M
    bind_address = 0.0.0.0
    skip-name-resolve = 0
    [mysqld3]
    。。。。。。如果你需要安装更多的mysql实例,同上一样的道理

4、 初始化各个实例

初始化完后会在日志中生成密码,记得保存,一会要用。
 
    a、sudo /usr/java/mysql/bin/mysqld --initialize --user=mysql --basedir=/usr/java/mysql --datadir=/usr/java/data/mysql_data3306
    
    b、 sudo /usr/java/mysql/bin/mysqld --initialize --user=mysql --basedir=/usr/java/mysql --datadir=/usr/java/data/mysql_data3307

5、 开启各实例的SSL连接

a、sudo /usr/java/mysql/bin/mysql_ssl_rsa_setup --user=mysql --basedir=/usr/java/mysql --datadir=/usr/java/data/mysql_data3306

b、 sudo /usr/java/mysql/bin/mysql_ssl_rsa_setup --user=mysql --basedir=/usr/java/mysql --datadir=/usr/java/data/mysql_data3307

6、 复制多实例脚本到服务管理目录下
sudo cp /usr/java/mysql/support-files/mysqld_multi.server /etc/init.d/mysqld_multi
7、 给予脚本可执行权限
sudo chmod +x /etc/init.d/mysqld_multi
8、 加入service服务管理

加入服务器管理后就可以以服务的方式启动、关闭、重启了

 sudo chkconfig --add mysqld_multi
9、 添加环境变量

a、在文件最后面添加内容:sudo vim /etc/profile

## SETUP MYSQL’S PATH

export MYSQL_HOME=/usr/java/mysql

export PATH=MYSQLHOME/bin:{MYSQL_HOME}/bin:PATH

b、 使修改的配置文件生效:source /etc/profile

10、测试

a、 查看多个实例状态
  
   mysqld_multi report
  
  b、 启动各个实例
  
   sudo mysqld_multi start
  
  c、 查看实例的监听端口
  
   sudo ss -tulpn|grep mysqld

d、 连接实例1:

		I、sudo mysql -S /tmp/mysql.sock1 -p'前面生成的密码'

		注意这里的密码是上面让你记录下来的密码,一定要用''引起来,不然会报错的

		II、  修改root密码
		
			set password=password('123456');
		III、 使修改生效

			flush privileges;

e、 另外两个实例的操作方法与实例1一致,不再赘述。
  
f、 允许远程连接mysql:

GRANT ALL PRIVILEGES ON . TO ‘root’@’%’ IDENTIFIED BY ‘password’ WITH GRANT OPTION;
FLUSH PRIVILEGES;

其中,root 是用户名,% 表示所有人都可以访问,password是密码

这句话的意思是,任何人只要以:用户名为root,密码为password就可以连接到该数据库

至此,centos7安装配置mysql5.7多实例成功。。。。恭喜你,哈哈哈哈

g、启动多实例:mysqld_multi start

接下来,我会教大家另外一种安装多实例MySQL,my.cnf文件不在是/etc/my.cnf。而是自定义路径,哈哈哈哈。欢迎到家关注我的博客