Mysql进阶-day3
多实例介绍:
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的更多相关文章
- mysql进阶(二十九)常用函数
mysql进阶(二十九)常用函数 一.数学函数 ABS(x) 返回x的绝对值 BIN(x) 返回x的二进制(OCT返回八进制,HEX返回十六进制) CEILING(x) 返回大于x的最小整数值 EXP ...
- mysql进阶(二十八)MySQL GRANT REVOKE用法
mysql进阶(二十八)MySQL GRANT REVOKE用法 MySQL的权限系统围绕着两个概念: 认证->确定用户是否允许连接数据库服务器: 授权->确定用户是否拥有足够的权限执 ...
- mysql进阶(二十七)数据库索引原理
mysql进阶(二十七)数据库索引原理 前言 本文主要是阐述MySQL索引机制,主要是说明存储引擎Innodb. 第一部分主要从数据结构及算法理论层面讨论MySQL数据库索引的数理基础. ...
- mysql进阶(二十六)MySQL 索引类型(初学者必看)
mysql进阶(二十六)MySQL 索引类型(初学者必看) 索引是快速搜索的关键.MySQL 索引的建立对于 MySQL 的高效运行是很重要的.下面介绍几种常见的 MySQL 索引类型. 在数 ...
- mysql进阶(十六)常见问题汇总
mysql进阶(十六)常见问题汇总 MySQL视图学习: http://www.itokit.com/2011/0908/67848.html 执行删除操作时,出现如下错误提示: 出现以上问题的原因是 ...
- 【转】MySQL— 进阶
[转]MySQL— 进阶 目录 一.视图 二.触发器 三.函数 四.存储过程 五.事务 一.视图 视图是一个虚拟表(非真实存在),其本质是[根据SQL语句获取动态的数据集,并为其命名],用户使用时只需 ...
- MySQL进阶(视图)---py全栈
目录 mysql进阶(视图)---py全栈 一.什么是视图? 二.视图的特性 三.视图的优点 四.使用场合 五.视图基本操作 六.案例 mysql进阶(视图)---py全栈 一.什么是视图? 视图是从 ...
- mysql进阶练习
一 . MySQL进阶练习 /*==========================创建班级表=============================*/ CREATE TABLE class ( ...
- MySQL进阶19--函数的创建(举例)/设置mysql的创建函数的权限/查看(show)/删除(drop) / 举4个栗子
/*MySQL进阶19 函数 存储过程和函数:都类似于java中的方法; 存储过程和函数通用好处: 1.提高代码的重用性 2.简化操作 好处: 减少操作次数,减少了编译次数,减少了和服务器的连接次数, ...
随机推荐
- python pip 安装OpenCV
cmd pip install opencv-contrib-python -i https://pypi.mirrors.ustc.edu.cn/simple/
- WPF 将TextBox更改为PasswordBox样式(文字显示方式为密码)
在TextBox样式中增加如下所诉: <Style x:Key="TxtPwd" TargetType="{x:Type TextBox}"> &l ...
- InnoDB的行记录格式, Compact, Redundant, Compressed, Dynamic
InnoDB存储引擎和大多数数据库一样(如Oracle和Microsoft SQL Server数据库),记录是以行的形式存储的.这意味着页中保存着表中一行行的数据.到MySQL 5.1时,InnoD ...
- 多线程编程(三)-CountDownLatch的使用
CountDownLatch的介绍 类CountDownLatch是同步功能得一个辅助类,使用效果就是给定一个计数,当使用CountDownLatch类的线程判断计数不为0时,则呈wait状态,如果是 ...
- PTA (Advanced Level) 1023 Have Fun with Numbers
Have Fun with Numbers Notice that the number 123456789 is a 9-digit number consisting exactly the nu ...
- Flex 生成行号
private function formatIndexNumber(item:Object, colum:Object):String { return indexNumLabelFun( ...
- centOS 7下无法启动网络(service network start)错误解决办法(应该是最全的了。。。)
今天在centOS 7下更改完静态ip后发现network服务重启不了,翻遍了网络,尝试了各种方法,终于解决了. 现把各种解决方法归纳整理,希望能让后面的同学少走点歪路... 首先看问题:执行serv ...
- C#学习笔记(基础知识回顾)之枚举
一:枚举的含义 枚举是用户定义的整数类型.在声明一个枚举时,要指定该枚举的示例可以包含的一组可接受的值.还可以给值指定易于记忆的名称.个人理解就是为一组整数值赋予意义. 二:枚举的优势 2.1:枚举可 ...
- SQL导出到Excel 存储过程
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[p_exporttb]') and OBJECTPROPER ...
- C++11:实用特性
今天逛cplusplus.com发现C++还真多了不少方便使用的特性,先了解些最常用的 初始化列表 vector<,,,}); vector<pair<int, int> &g ...