多实例介绍:

  mysql多实例就是一台服务器开启多个不同的服务端口(3306,3307),运行多个MySQL服务进程,这些服务进程通过不同的socket监听不同的服务端口来提供各自的服务端口。

  这些mysql多实例共用一套mysql安装程序,使用不同的my.cnf配置文件、启动程序、数据文件。在提供服务时,多实例MySQL在逻辑上看来十个字独立的,多个实例之间是根据配置文件的设定值,来取得服务器的相关硬件资源

MySQL多实例常见配置方案

1.多配置文件方案
#通过多个配置文件及多个启动程序来实现多实例的方案 2.单一配置文件部署方案
#把所有的实例放在一个配置文件里,一个mysqld就是一个实例

安装配置多实例

1.建立MySQL多实例的条件
首先要用前面说过的四中安装方法之一(编译安装,cmake安装,yum安装,免编译安装)安装好数据库,
2.安装(看前面的) 3.开始配置
[root@MySQL /]# service mysqld stop
[root@MySQL /]# mkdir /data/{3306,3307}/data -p #创建多实例目录
[root@MySQL /]# cat /data/3306/my.cnf
####
[client]
port = 3306
socket = /tmp/mysql_3306.sock [mysql]
no-auto-rehash [mysqld]
user = mysql
port = 3306
socket = /tmp/mysql_3306.sock
basedir = /usr/local/mysql-5.5.54/
datadir = /data/3306/data/
open_files_limit = 1024
back_log = 600
max_connections = 800
max_connect_errors = 3000
table_cache = 614
external-locking = FALSE
max_allowed_packet = 8M
sort_buffer_size = 1M
join_buffer_size = 1M
thread_cache_size = 100
thread_concurrency = 2
query_cache_size = 2M
query_cache_limit = 1M
query_cache_min_res_unit = 2K
#default_table_type = InnoDB
thread_stack = 192K
#transaction_isolation = READ-COMMITTED
tmp_table_size = 2M
max_heap_table_size = 1
#log_long_format
log-error = /data/3306/error_3306.log
log-slow-queries = /data/3306/slow.log
pid-file = /data/3306/mysql.pid
log-bin = /data/3306/mysql-bin
relay-log = /data/3306/relay-bin
relay-log-info-file = /data/3306/relay-log.info
binlog_cache_size = 1M
max_binlog_cache_size = 1M
max_binlog_size = 2M
expire_logs_days = 7
key_buffer_size = 16M
read_buffer_size = 1M
read_rnd_buffer_size = 1M
bulk_insert_buffer_size = 1M
#myisam_sort_buffer_size = 1M
#myisam_max_sort_file_size = 10G
#myisam_max_extra_sort_file_size = 10G
#myisam_repair_threads = 1
#myisam_recover lower_case_table_names = 1
skip-name-resolve
slave-skip-errors = 1032,1062
replicate-ignore-db=mysql server-id = 1
innodb_additional_mem_pool_size = 4M
innodb_buffer_pool_size = 32M
innodb_data_file_path = ibdata1:128M:autoextend
innodb_file_io_threads = 4
innodb_thread_concurrency = 8
innodb_flush_log_at_trx_commit = 2
innodb_log_buffer_size = 2M
innodb_log_file-size = 4M
innodb_log_files_in_group = 3
innodb_max_dirty_pages_pct = 90
innodb_lock_wait_timeout = 120
innodb_file_per_table = 0 [mysqldump]
quick
max_allowed_packet = 2M [mysqld_safe]
log-error=/data/3306/mysql_3306.err
pid-file=/data/3306/mysqld_3306.pid
####
#另一个就不看了,把所有的3306换成3307即可
[root@MySQL /]# touch /data/3306/mysql_3306.err #创建相关错误日志文件
[root@MySQL /]# touch /data/3307/mysql_3307.err #创建相关错误日志文件
[root@MySQL /]# chown -R mysql.mysql /data
[root@MySQL /]# mysql_install_db --basedir=/usr/local/mysql --datadir=/data/3306/data --user=mysql
[root@MySQL /]# mysql_install_db --basedir=/usr/local/mysql --datadir=/data/3307/data --user=mysql
#初始化
[root@MySQL /]# mysqld_safe --defaults-file=/data/3306/my.cnf 2>&1 &
[root@MySQL /]# mysqld_safe --defaults-file=/data/3307/my.cnf 2>&1 &
#启动 #这里启动可以自己写个脚本,脚本放在下面 [root@MySQL /]# mysqladmin -uroot password -S /tmp/mysql_3306.sock
[root@MySQL /]# mysqladmin -uroot password -S /tmp/mysql_3307.sock
#为两个实例创建管理员和密码
[root@MySQL /]# mysql -uroot -p -S /tmp/mysql_3306.sock #连接数据库 #多实例到这里就安装完了

脚本

#!/bin/bash
PORT=3306
USERNAME="root"
PASSWORD="3306"
start_mysql()
{
printf "Starting MySQL...\n"
/bin/sh /usr/local/mysql/bin/mysqld_safe --defaults-file=/data/${PORT}/my.cnf 2>&1 > /dev/null &
}
stop_mysql()
{
printf "Stoping MySQL...\n"
/usr/local/mysql/bin/mysqladmin -u${USERNAME} -p${PASSWORD} -S /tmp/mysql_${PORT}.sock shutdown
}
restart_mysql()
{
printf "Restarting MySQL...\n"
stop_mysql
start_mysql
}
kill_mysql()
{
kill -9 $(ps -ef | grep 'bin/mysqld_safe' | grep ${PORT} | awk '{printf $2}')
kill -9 $(ps -ef | grep 'libexec/mysqld' | grep ${PORT} | awk '{printf $2}')
}
case $1 in
start)
start_mysql;;
stop)
stop_mysql;;
kill)
kill_mysql;;
restart)
restart_mysql;;
*)
echo "Usage: /data/dbdata_${mysql_port}/mysqld {start|stop|restart|kill}";;
esac

新增实例

这个不写,跟前面是一样的,增加一个数据目录,配置文件,脚本,授权,初始化,启动

Mysql进阶-day3的更多相关文章

  1. mysql进阶(二十九)常用函数

    mysql进阶(二十九)常用函数 一.数学函数 ABS(x) 返回x的绝对值 BIN(x) 返回x的二进制(OCT返回八进制,HEX返回十六进制) CEILING(x) 返回大于x的最小整数值 EXP ...

  2. mysql进阶(二十八)MySQL GRANT REVOKE用法

    mysql进阶(二十八)MySQL GRANT REVOKE用法   MySQL的权限系统围绕着两个概念: 认证->确定用户是否允许连接数据库服务器: 授权->确定用户是否拥有足够的权限执 ...

  3. mysql进阶(二十七)数据库索引原理

    mysql进阶(二十七)数据库索引原理 前言   本文主要是阐述MySQL索引机制,主要是说明存储引擎Innodb.   第一部分主要从数据结构及算法理论层面讨论MySQL数据库索引的数理基础.    ...

  4. mysql进阶(二十六)MySQL 索引类型(初学者必看)

    mysql进阶(二十六)MySQL 索引类型(初学者必看)   索引是快速搜索的关键.MySQL 索引的建立对于 MySQL 的高效运行是很重要的.下面介绍几种常见的 MySQL 索引类型.   在数 ...

  5. mysql进阶(十六)常见问题汇总

    mysql进阶(十六)常见问题汇总 MySQL视图学习: http://www.itokit.com/2011/0908/67848.html 执行删除操作时,出现如下错误提示: 出现以上问题的原因是 ...

  6. 【转】MySQL— 进阶

    [转]MySQL— 进阶 目录 一.视图 二.触发器 三.函数 四.存储过程 五.事务 一.视图 视图是一个虚拟表(非真实存在),其本质是[根据SQL语句获取动态的数据集,并为其命名],用户使用时只需 ...

  7. MySQL进阶(视图)---py全栈

    目录 mysql进阶(视图)---py全栈 一.什么是视图? 二.视图的特性 三.视图的优点 四.使用场合 五.视图基本操作 六.案例 mysql进阶(视图)---py全栈 一.什么是视图? 视图是从 ...

  8. mysql进阶练习

    一 .  MySQL进阶练习 /*==========================创建班级表=============================*/ CREATE TABLE class ( ...

  9. MySQL进阶19--函数的创建(举例)/设置mysql的创建函数的权限/查看(show)/删除(drop) / 举4个栗子

    /*MySQL进阶19 函数 存储过程和函数:都类似于java中的方法; 存储过程和函数通用好处: 1.提高代码的重用性 2.简化操作 好处: 减少操作次数,减少了编译次数,减少了和服务器的连接次数, ...

随机推荐

  1. VirtualBox虚拟机克隆方法

    1.定位到Vritualbox的安装目录,不能用全路径的方式直接执行该命令行 2.执行Vboxmanage.exe clonevdi "d:\linux\source.vdi" & ...

  2. 深入理解java集合框架之---------LinkedList

    日常开发中,保存一组数据使用的最多的就是 ArrayList, 其次就是 LinkedList 了. 我们知道 ArrayList 是以数组实现的,遍历时很快,但是插入.删除时都需要移动后面的元素,效 ...

  3. sizeof数组名和字符指针是有区别的

    sizeof数组名和字符指针是有区别的. #include <stdio.h> #include <stdlib.h> void change(char url[]); int ...

  4. Maven Oracle JDBC

    Oracle的JDBC驱动程序无法从公共仓库下载,你只能手动部署Oracle JDBC驱动程序到本地库.命令如下: mvn install:install-file -Dfile={ORACLE_HO ...

  5. PgAdmin4连接数据库报错:Unable to connect to server: ERROR: unrecognized configuration parameter "bytea_output"

    原因: PgAdmin 4不再支持PostgreSQL 9.0 和更早的版本 我的版本是8.2.15 template1=# select version(); version ----------- ...

  6. Vue组件库

    滴滴cube-ui https://didi.github.io/cube-ui/#/zh-CN/docs/quick-start 有赞开源Vant(适合做商城) https://tech.youza ...

  7. 面向对象(基础oop)之属性与构造函数

    大家好,我叫李京阳,,很高兴认识大家,之所以我想开一个自己的博客,就是来把自己所了解的知识点通过自己的话写一下,希望被博客园的朋友们点评和一起讨论一下,也希望从博客园中多认识一些软件开发人员!现在我开 ...

  8. 三分钟理解Java中字符串(String)的存储和赋值原理

    可能很多Java的初学者对String的存储和赋值有迷惑,以下是一个很简单的测试用例,你只需要花几分钟时间便可理解. 1.在看例子之前,确保你理解以下几个术语: 栈:由JVM分配区域,用于保存线程执行 ...

  9. Java包装类、拆箱和装箱详解

    转载:https://www.cnblogs.com/ok932343846/p/6749488.html 虽然 Java 语言是典型的面向对象编程语言,但其中的八种基本数据类型并不支持面向对象编程, ...

  10. xshell ssh连接linux时提示ssh服务器拒绝了密码

    用Xshell root连接时显示ssh服务器拒绝了密码,应该是应该是sshd的设置不允许root用户用密码远程登录 修改 /etc/ssh/sshd_config文件,注意,安装了openssh才会 ...