在CentOS7上编译安装多实例mysql

编译安装过程

  1. 首先准备mysql5.7的通用二进制安装包和msyql的配置文件 (在mysql5.7中是没有msyql配置文件的模板,在文章末尾会提供模板)
    说明:
    安装位置: /usr/local/mysql
    数据位置: /data/mysql/mysql3306/data
    临时文件位置: /data/mysql/mysql3306/tmp
    日志文件位置: /data/mysql/mysql3306/logs/mysql-bin
    socket文件位置: /tmp/mysql3306.sock
  2. 安装msyql
  # groupadd mysql   				           >>> 创建组
  # useradd -r -g mysql -s /sbin/nologin mysql      	   >>>创建msyql的运行用户
  # tar xf /root/mysql-5.7.23-linux-glibc2.12-x86_64.tar.gz>>>解压二进制msyql数据包
  # mv mysql-5.7.23-linux-glibc2.12-x86_64 /usr/local/     >>>移动msyql到安装目录
  # cd /usr/local 
  # ln -sv mysql-5.7.23-linux-glibc2.12-x86_64/ mysql      >>>做软连接方便后续管理
  # chown mysql.mysql mysql -R                             >>>更改属主和属组
  1. 创建相关目录
  # mkdir /data/mysql/mysql3306/{data,tmp,logs} -pv
  # chown -R mysql.mysql /data
  1. 初始化mysql (生成msyql的系统表和库)
  # /usr/local/mysql/bin/mysqld --initialize --user=mysql

补充: 当使用–initialize-inseucre来做初始化的时候,root的初始密码为空;上述方式的话,在/data/msyql/mysql3306/data/error.log中的root@localhost后的字符串就是root的初始化密码,使用以下命令查看密码:

  # cat /data/mysql/mysql3306/data/error.log | grep "password"
  2018-10-11T16:54:45.703420Z 1 [Note] A temporary password is generated for root@localhost: Be4M9hxepF#(
  1. 导出msyql的二进制文件,方便使用
  # cat <<eof >/etc/profile.d/msyql.sh
  # > PATH=$PATH:/usr/local/mysql/bin
  # > export PATH
  # >eof
  1. 生成服务管理脚本
  • CentOS 5和CentOS 6
  # cp /usr/local/mysql/support-files/mysql.server /etc/rc.d/init.d/mysqld
  # chkconfig --add mysqld
  # chkcongig mysqld on
  • CentOS 7
  # vim mysql3306.service
      [Unit]
      Description=mysql 3306 service

      [Service]
      Type=forking
      ExecStart=/bin/bash /usr/local/mysql/support-files/mysql.server start
      ExecStop=/bin/bash /usr/local/mysql/support-files/mysql.server stop
      ExecRestart=/bin/bash /usr/local/mysql/support-files/mysql.server restart

      [Install]
      WantedBy=multi-user.target

  # mv mysql3306.service /usr/lib/systemd/system/
  # systemctl enable mysql3306.service 
  1. 启动msyql
  • CentOS 5和CentOS 6
  # service msyqld start      >>>启动mysql
  # chkconfig msyqld on       >>>实现开机自启
  • CentOS 7
  # /usr/local/mysql/support-files/mysql.server start

或者

  # systemctl start mysql
  1. 登录msyql
  # mysql -uroot -pxxxx
  1. 修改root密码
  > ALTER USER user() IDENTIFIED BY "123";

第二个msyql实例配置如下:

端口: 3307
安装位置: /usr/local/mysql
数据位置: /data/mysql/mysql3307/data
临时文件位置: /data/mysql/mysql3307/tmp
日志文件位置: /data/mysql/mysql3307/logs/mysql-bin
socket文件位置: /tmp/mysql3307.sock
配置文件: /data/mysql/mysql3307/my.cnf

  1. 创建相关目录
  # mkdir /data/mysql/mysql3307/{tmp,data,logs} -pv
  # chown -R mysql.mysql /data
  1. 生成配置文件
  # cp /etc/my.cnf /data/mysql/mysql3307/
  # sed -i  's/3306/3307/g' /data/mysql/mysql3307/my.cnf 
  # cat /data/mysql/mysql3307/my.cnf 
  1. 初始化mysql
  # /usr/local/mysql/bin/mysqld --defaults-file=/data/mysql/mysql3307/my.cnf --initialize
  1. 启动mysql3307 (这里必须使用–defaults-file指定配置文件位置)
  # /usr/local/mysql/bin/mysqld --defaults-file=/data/mysql/mysql3307/my.cnf &
  1. 登录msyql3307 (这里的登录密码在/data/mysql/mysql3307/data/error.log中,同时需要使用-S指定socket文件位置)
  # mysql -uroot -pc-7ae#sgan1K -S /tmp/mysql3307.sock

通过以上操作就可以完成mysql的多实例,第二次开始也可以不使用初始化,直接复制第一个mysql的数据文件即/data/msyql/msyql3306/data下的全部文件到新建的msyql的存放数据的目录下,这样就相当于初始化生成msyql的系统表和库;这里的root用户密码和mysqy3306中的root密码一致。

猜你喜欢

转载自blog.csdn.net/guchengxinfen/article/details/83032428