santaclaus 发表于 2018-10-10 07:55:22

mysql5.7.11的多实例配置

  Mysql通关很久终于到了第二阶段,是时候搞些有意思的东西了。
  PS:第一次用Markdown;为了省时间安装用的是rpm包;水平有限还望指正;不兼容Mysql5.5。###你将要看到的有:
  1.配置Mysql多实例的准备
  2.启动多个Mysql实例
  3.连接Mysql
  4.一些简单设置(可选)
  5.Mysql的关闭
  6.再增加一个Mysql实例
  ####1.配置Mysql多实例的准备
  1.1创建文件目录
  打算运行两个实例,一个占用3306端口,一个占用3307端口,下面简称3306,3307实例
  mkdir -p /mysql_multi/{3306,3307}/data
  由于是root创建的还要把权限更改下,这步先放一放留到2.1。
  1.2准备配置文件
  vim编辑两个my.cnf配置文件,编辑完后可以按ZZ或者wq!直接保存退出:
  简单来说就是1.端口不一样 2.目录路径不同
  实例1的配置文件:
  datadir=/mysql_multi/3306/data
  socket=/mysql_multi/3306/mysql.sock
  log-error=/mysql_multi/3306/mysqld.log
  pid-file=/mysql_multi/3306/mysqld.pid
  server-id=1
  port=3306
  实例2的配置文件:
  datadir=/mysql_multi/3307/data
  socket=/mysql_multi/3307/mysql.sock
  log-error=/mysql_multi/3307/mysqld.log
  pid-file=/mysql_multi/3307/mysqld.pid
  server-id=2
  port=3307
  copy到/mysql_multi/3306和/mysql_multi/3307下
  ####2.启动多个Mysql实例
  2.1初始化两个Mysql数据库
  先改下目录的权限:
  chown-Rmysql:mysql /mysql_multi
  现在是Mysql5.7,之前的5.5都没有这一步。
  对于3306,执行:
  mysqld --defaults-file=/mysql_multi/3306/my.cnf --initialize-insecure --user=mysql
  解释:
  --defaults-file=/mysql_multi/3306/my.cnf:指定启动的配置文件
  --initialize-insecure :初始化数据库,加上-insecure不生成随机密码
  (直接登陆,不加上-insecure会在mysqld.log生成密码,到时候要自己找temporary password)
  --user=mysql : 指定用户,这个没什么好说
  3307的也一样:
  mysqld --defaults-file=/mysql_multi/3307/my.cnf --initialize-insecure --user=mysql
  要注意查看data目录下面有没有相关的数据库文件,如果有问题,要看下你的mysqld.log
  这是成功初始化的:
  ![输入图片说明](/2014th7cj/d/file/p/20161019/ohzfepkkjtx.png "在这里输入图片标题")
  2.2启动实例
  终于到启动实例的关键时刻 输入:
  启动3306实例:mysqld --defaults-file=/mysql_multi/3306/my.cnf --user=mysql &
  启动3307实例:mysqld --defaults-file=/mysql_multi/3307/my.cnf --user=mysql &
  注意:最后面要加入 &让它运行在后台,不然打完按回车就"卡住"了
  和刚刚差不多就是少了--initialize-insecure初始化数据库这一步,运行成不成功可以看下mysql.log或者
  输入netstat -ntlp 查看下占用端口的进程(成功就可以看到两个mysqld进程,分别占用3306,3307端口)
  ####3.连接Mysql
  连接
  连接3306:mysql -uroot -p -S /mysql_multi/3306/mysql.sock
  提示输入密码,直接回车进入。
  连接3307:mysql -uroot -p -S /mysql_multi/3307/mysql.sock
  和上面是一样的
  可以输入 system mysql -S /mysql_multi/3307/mysql.sock切换实例
  ####4.一些简单设置(可选)
  更改root密码
  UPDATE mysql.user SET authentication_string = PASSWORD('123456') WHERE USER LIKE '%root%';

  grant all privileges on *.* to 'root'@'%'>  flush privileges;
  从管理角度来讲,应该要加个system的管理员用作远程管理

  grant all privileges on *.* to system@'%'>  ####5.Mysql的关闭
  注意:一定要用mysqladmin关闭
  mysqladmin -S /mysql_multi/3306/mysql.sock shutdown
  mysqladmin -S /mysql_multi/3307/mysql.sock shutdown
  ####6.再增加一个Mysql实例
  和上面步骤差不多
  1.创建相关目录
  mkdir -p/mysql_multi/3308/data
  2.更改所属用户和所属组
  chown -R mysql:mysql 3308
  3.复制修改配置文件(不细说了)
  4.初始化: mysqld --defaults-file=/mysql_multi/3308/my.cnf --initialize-insecure --user=mysql
  5.启动:mysqld --defaults-file=/mysql_multi/3308/my.cnf--user=mysql & 完成~

页: [1]
查看完整版本: mysql5.7.11的多实例配置