单台主机MySQL多实例部署
二进制安装mysql-5.7.26
[root@mysql ~]# cd /server/tools/
[root@mysql tools]# ll
total 629756
-rw-r--r-- 1 root root 644869837 Jul 4 11:26 mysql-5.7.26-linux-glibc2.12-x86_64.tar.gz
[root@mysql tools]# tar xf mysql-5.7.26-linux-glibc2.12-x86_64.tar.gz
[root@mysql tools]# mkdir -p /application
[root@mysql tools]#
[root@mysql tools]# mv mysql-5.7.26-linux-glibc2.12-x86_64 /application/
[root@mysql tools]# cd /application/
[root@mysql application]# mv mysql-5.7.26-linux-glibc2.12-x86_64/ mysql-5.7.26
[root@mysql application]# ln -s mysql-5.7.26/ mysql
[root@mysql application]# ll
total 0
lrwxrwxrwx 1 root root 13 Aug 28 09:05 mysql -> mysql-5.7.26/
drwxr-xr-x 9 root root 129 Aug 28 09:02 mysql-5.7.26
用户创建处理原始环境
[root@mysql ~]# yum -y remove mariadb-libs-5.5.56-2.el7.x86_64
[root@mysql ~]# useradd -s /sbin/nologin mysql
设置环境变量
[root@mysql ~]# echo 'export PATH=$PATH:/application/mysql/bin' >> /etc/profile
[root@mysql ~]# source /etc/profile
root@mysql ~]# mysql -V
mysql Ver 14.14 Distrib 5.7.26, for linux-glibc2.12 (x86_64) using EditLine wrapper
创建新的硬盘做数据盘
mysql数据库由两大部分组成:软件部分、数据部分
数据部分应该与软件部分、操作系统的根独立
[root@mysql ~]# fdisk -l
Disk /dev/sdb: 21.5 GB, 21474836480 bytes, 41943040 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
[root@mysql ~]# mkfs.xfs /dev/sda
sda sda1 sda2 sda3
[root@mysql ~]# mkfs.xfs /dev/sdb
meta-data=/dev/sdb isize=512 agcount=4, agsize=1310720 blks
= sectsz=512 attr=2, projid32bit=1
= crc=1 finobt=0, sparse=0
data = bsize=4096 blocks=5242880, imaxpct=25
= sunit=0 swidth=0 blks
naming =version 2 bsize=4096 ascii-ci=0 ftype=1
log =internal log bsize=4096 blocks=2560, version=2
= sectsz=512 sunit=0 blks, lazy-count=1
realtime =none extsz=4096 blocks=0, rtextents=0
[root@mysql ~]# mkdir /data
[root@mysql ~]# blkid
/dev/sdb: UUID="986b42ee-540d-47f5-82a6-65a328dd20b4" TYPE="xfs"
[root@mysql ~]# tail -1 /etc/fstab
UUID=986b42ee-540d-47f5-82a6-65a328dd20b4 /data xfs defaults 0 0
[root@mysql ~]#
[root@mysql ~]# mount -a
授权
[root@mysql ~]# chown -R mysql.mysql /application/*
[root@mysql ~]# chown -R mysql.mysql /data
初始化数据(创建系统数据)
5.6版本:初始化命令:/application/mysql/scripts/mysql_install_db
5.7版本:初始化命令:mysqld --initalize
有密码初始化
--initialize 参数:
对于密码复杂度进行定制:12位,4种方式组成
密码过期时间:180天
给root@localhost用户设置临时密码
[root@mysql ~]# mkdir -p /data/mysql/data
[root@mysql ~]# chown -R mysql.mysql /data/
[root@mysql ~]# yum -y install libaio-devel
[root@mysql ~]# mysqld --initialize --user=mysql --basedir=/application/mysql --datadir=/data/mysql/data
2019-08-28T01:33:44.886913Z 0 [Warning] TIMESTAMP with implicit DEFAULT value is deprecated. Please use --explicit_defaults_for_timestamp server option (see documentation for more details).
2019-08-28T01:33:45.393308Z 0 [Warning] InnoDB: New log files created, LSN=45790
2019-08-28T01:33:45.610222Z 0 [Warning] InnoDB: Creating foreign key constraint system tables.
2019-08-28T01:33:45.681098Z 0 [Warning] No existing UUID has been found, so we assume that this is the first time that this server has been started. Generating a new UUID: e0660f6c-c933-11e9-af51-000c29d70b6d.
2019-08-28T01:33:45.682790Z 0 [Warning] Gtid table is not ready to be used. Table 'mysql.gtid_executed' cannot be opened.
2019-08-28T01:33:45.684184Z 1 [Note] A temporary password is generated for root@localhost: DI<-ZsDU=4.0
无密码初始化
--initialize-insecure 参数:
无限制,无临时密码
[root@mysql ~]# \rm -rf /data/mysql/data/*
[root@mysql ~]# mysqld --initialize-insecure --user=mysql --basedir=/application/mysql --datadir=/data/mysql/data
2019-08-28T01:40:43.207923Z 0 [Warning] TIMESTAMP with implicit DEFAULT value is deprecated. Please use --explicit_defaults_for_timestamp server option (see documentation for more details).
2019-08-28T01:40:43.482220Z 0 [Warning] InnoDB: New log files created, LSN=45790
2019-08-28T01:40:43.519569Z 0 [Warning] InnoDB: Creating foreign key constraint system tables.
2019-08-28T01:40:43.606086Z 0 [Warning] No existing UUID has been found, so we assume that this is the first time that this server has been started. Generating a new UUID: d980595d-c934-11e9-bbfc-000c29d70b6d.
2019-08-28T01:40:43.608963Z 0 [Warning] Gtid table is not ready to be used. Table 'mysql.gtid_executed' cannot be opened.
2019-08-28T01:40:43.612502Z 1 [Warning] root@localhost is created with an empty password ! Please consider switching off the --initialize-insecure option.
设置配置文件
[root@mysql data]# cat >/etc/my.cnf<<EOF
[mysqld]
user=mysql
basedir=/application/mysql
datadir=/data/mysql/data
socket=/tmp/mysql.sock
server_id=6
port=3306
[mysql]
socket=/tmp/mysql.sock
EOF
[root@mysql data]#
启动数据库
方法1:service
[root@mysql data]# cp /application/mysql/support-files/mysql.server /etc/init.d/mysqld
[root@mysql data]# service mysqld restart
ERROR! MySQL server PID file could not be found!
Starting MySQL.Logging to '/data/mysql/data/mysql.err'.
. SUCCESS!
[root@mysql data]#
[root@mysql data]# netstat -lntup|grep 3306
tcp6 0 0 :::3306 :::* LISTEN 2575/mysqld
[root@mysql data]# /etc/init.d/mysqld stop
Shutting down MySQL.. SUCCESS!
[root@mysql data]#
方法2:systemd
[root@mysql data]# cat /etc/systemd/system/mysqld.service
[Unit]
Description=MySQL Server
Documentation=man:mysqld(8)
Documentation=http://dev.mysql.com/doc/refman/en/using-systemd.html
After=network.target
After=syslog.target
[Install]
WantedBy=multi-user.target
[Service]
User=mysql
Group=mysql
ExecStart=/application/mysql/bin/mysqld --defaults-file=/etc/my.cnf
LimitNOFILE = 5000
[root@mysql data]#
[root@mysql data]# systemctl start mysqld
[root@mysql data]# systemctl status mysqld
● mysqld.service - MySQL Server
Loaded: loaded (/etc/systemd/system/mysqld.service; disabled; vendor preset: disabled)
Active: active (running) since Wed 2019-08-28 09:53:46 CST; 4s ago
方法3:命令行启动
[root@mysql data]# /application/mysql/bin/mysqld --defaults-file=/etc/my.cnf
密码设置
[root@mysql ~]# mysqladmin -uroot password 123456
数据库密码忘记解决方法
--skip-grant-tables #跳过授权表
--skip-networking #跳过远程登录
#启动数据库到维护模式
[root@mysql ~]# mysqld_safe --skip-grant-tables --skip-networking &
[root@mysql ~]# mysql
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 2
Server version: 5.7.26 MySQL Community Server (GPL)
Copyright (c) 2000, 2019, Oracle and/or its affiliates. All rights reserved.
Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
mysql>
mysql> flush privileges;
mysql> grant all on *.* to root@'localhost' identified by '1';
Query OK, 0 rows affected, 1 warning (0.00 sec)
mysql>
[root@mysql ~]# /etc/init.d/mysqld restart
以上是单实例的部署,以下是多实例的部署
准备多个目录
[root@mysql ~]# mkdir -p /data/330{7..9}/data
准备配置文件
[root@mysql ~]# cat /data/3307/my.cnf
[mysqld]
basedir=/application/mysql
datadir=/data/3307/data
socket=/data/3307/mysql.sock
log_error=/data/3307/mysql.log
port=3307
server_id=7
log_bin=/data/3307/mysql-bin
[root@mysql ~]# cat /data/3308/my.cnf
[mysqld]
basedir=/application/mysql
datadir=/data/3308/data
socket=/data/3308/mysql.sock
log_error=/data/3308/mysql.log
port=3308
server_id=8
log_bin=/data/3308/mysql-bin
[root@mysql ~]# cat /data/3309/my.cnf
[mysqld]
basedir=/application/mysql
datadir=/data/3309/data
socket=/data/3309/mysql.sock
log_error=/data/3309/mysql.log
port=3309
server_id=9
log_bin=/data/3309/mysql-bin
[root@mysql ~]#
授权
[root@mysql system]# chown -R mysql.mysql /data/*
初始化数据
[root@mysql ~]#cp /etc/my.cnf /etc/my.cnf.bak
[root@mysql ~]#mysqld --initialize-insecure --user=mysql --datadir=/data/3307/data --basedir=/application/mysql
[root@mysql ~]#mysqld --initialize-insecure --user=mysql --datadir=/data/3308/data --basedir=/application/mysql
[root@mysql ~]#mysqld --initialize-insecure --user=mysql --datadir=/data/3309/data --basedir=/application/mysql
systemd管理多实例
[root@mysql ~]# cd /etc/systemd/system/
[root@mysql system]# cp mysqld.service mysqld3307.service
[root@mysql system]# cp mysqld.service mysqld3308.service
[root@mysql system]# cp mysqld.service mysqld3309.service
[root@mysql system]# sed -i 's#--defaults-file=/etc/my.cnf#--defaults-file=/data/3307/my.cnf#g' mysqld3307.service
[root@mysql system]# sed -i 's#--defaults-file=/etc/my.cnf#--defaults-file=/data/3308/my.cnf#g' mysqld3308.service
[root@mysql system]# sed -i 's#--defaults-file=/etc/my.cnf#--defaults-file=/data/3309/my.cnf#g' mysqld3309.service
启动
[root@mysql system]# systemctl start mysqld3307.service
[root@mysql system]# systemctl start mysqld3308.service
[root@mysql system]# systemctl start mysqld3309.service
验证多实例
[root@mysql system]# netstat -lntup |grep mysqld
tcp6 0 0 :::3307 :::* LISTEN 11319/mysqld
tcp6 0 0 :::3308 :::* LISTEN 11773/mysqld
tcp6 0 0 :::3309 :::* LISTEN 11821/mysqld
tcp6 0 0 :::3306 :::* LISTEN 3558/mysqld
[root@mysql system]#
[root@mysql system]# mysql -S /data/3307/mysql.sock # 登陆进3307端口的数据库
单台主机MySQL多实例部署的更多相关文章
- weblogic11g 安装集群 —— win2003 系统、单台主机
weblogic11g 安装集群 —— win2003 系统.单台主机 注意:此为weblogic11g 在win2003系统下(一台主机)的安装集群,linux.hpux.aix及多个主机下原理一 ...
- MySQL多实例部署与优化
MySQL安装 ##上传MySQL安装包## mkdir /home/oldboy/tools -p cd /home/oldboy/tools/ ###wget -q http://mirrors. ...
- Linux下MySQL多实例部署记录
什么是MySQL多实例 简单地说,Mysql多实例就是在一台服务器上同时开启多个不同的服务端口(3306.3307),同时运行多个Mysql服务进程,这些服务进程通过不同的socket监听不同的服务端 ...
- mysql多实例部署
mysql 多实例常规来讲,主要有二种方案可以实现,这二种方案各有利弊,如下:1.基于多配置文件 通过使用多个配置文件来启动不同的进程,以此来实现多实例. 优点:逻辑简单,配置简单 缺点:管理起来不方 ...
- Mysql利用mysql_multi配置一台主机多个实例(转)
在Mysql官方帮助文档中,详细记录中Mysql的启动方式,有mysqld_safe.mysql.server.mysql_multi这三种.关于mysql_multi的介绍: Mysqld_mult ...
- mysql 多实例部署
Centos7.6 部署3个Mariadb 实例 [root@localhost ~]# yum install mariadb-server -y # 创建对应的目录文件 [root@localho ...
- mysql 5.5多实例部署【图解】
mysql5.5数据库多实例部署,我们可以分以下几个步骤来完成. 1. mysql多实例的原理 2. mysql多实例的特点 3. mysql多实例应用场景 4. mysql5.5多实例部署方法 一. ...
- mysql 5.5多实例部署
mysql5.5数据库多实例部署,我们可以分以下几个步骤来完成. 1. mysql多实例的原理 2. mysql多实例的特点 3. mysql多实例应用场景 4. mysql5.5多实例部署方法 一. ...
- 烂泥:mysql5.5多实例部署
本文由秀依林枫提供友情赞助,首发于烂泥行天下. mysql5.5数据库多实例部署,我们可以分以下几个步骤来完成. 1. mysql多实例的原理 2. mysql多实例的特点 3. mysql多实例应用 ...
随机推荐
- 简单状压dp的思考 - 最大独立集问题和最大团问题 - 贰
接着上文 题目链接:最大独立集问题 上次说到,一种用状压DP解决任意无向图最大团问题(MCP)的方程是: 注:此处popcountmax代表按照二进制位下1的个数作为关键字比较,即选择二进制位下1的个 ...
- Java核心知识体系2:注解机制详解
1 Java注解基础 注解是JDK1.5版本开始引入的一个特性,用于对程序代码的说明,可以对包.类.接口.字段.方法参数.局部变量等进行注解. 它主要的作用有以下四方面: 生成javadoc文档,通过 ...
- 循环队列(严3.30)--------西工大NOJ习题.9
#define _CRT_SECURE_NO_WARNINGS #include <stdio.h> #include <stdlib.h> typedef struct _Q ...
- 西文字符与中文GBK编码的区别
一般来讲二者读取的时候西文字符的数值是正,而中文字符的数值是负的,此时读取的是中文字符的前一半,需要再读取一个char类型的数据,在大多数运行环境下这个规则都是用. ps:转自算法竞赛的笔记,要注意在 ...
- 类型转换_str()函数与int()函数
数据类型转换 需要将不同数据类型拼接在一起的时候就需要先进行数据类型转换 str+str//这里的+叫做连接字符,有点类似C++中的操作符重载,老对象里面的内容了 在python中整型和字符串类型不能 ...
- 【PMP学习笔记】第1章 PMP体系引论
一.什么是项目? 项目是为创造独特的产品.服务或成果而进行的临时性工作. 项目管理是把事办成的方法论,万物皆可项目. 项目的特性 临时性:有明确的"起"和"止" ...
- 使用OnPush和immutable.js来提升angular的性能
angular里面变化检测是非常频繁的发生的,如果你像下面这样写代码 <div> {{hello()}} </div> 则每次变化检测都会执行hello函数,如果hello函数 ...
- python 读取yaml文件
简介 在实际开发过程中,我们可能需要读取一些配置文件的配置信息,例如ini.yaml.property等格式,本文将讲述怎么去获取和设置yaml文件的相关参数. 示例yaml文件 test1: tes ...
- npm、cnpm与package-lock.json的操作
来源:npm.cnpm与package-lock.json的操作_IT码农-爱吃辣条的博客-CSDN博客_cnpm lock package.json文件只能锁定大版本,也就是版本号的第一位,并不能锁 ...
- HTML表单学习
HTML表单学习 前言 HTML基础学习会由HTML基础标签学习.HTML表单学习和一张思维导图总结HTML基础三篇文章构成,文章中博主会提取出重点常用的知识和经常出现的bug,提高学习的效率,后续会 ...