### **mysql多实例安装**
#### **1.关闭mysqld及启动方式**
~~~
pkill mysqld
ps -ef|grep mysql
rm -f /etc/init.d/mysqld
~~~
#### **2.创建目录**
~~~
mkdir -p /data/{3306,3307}/data
tree /data
~~~
/data 总的多实例目录
|-- 3306 3306实例的目录
|-------data 3306实例的数据文件目录
|--3307 3307实例的目录
|-------data 3307实例的数据文件目录
备注:mkdir -p /data/{3306,3307}/data 相当于 mkdir -p /data/3306/data; mkdir -p /data/3307/data 两条命令
**生产硬件配置,MEN 32G 双cpu 8核 磁盘6*600g sas 15k+ 2~3个实例**
#### **3.创建mysql多实例的配置文件**
mysql数据库默认为用户提供了多个配置文件模板,用户可以根据硬件配置大小来选择。
~~~
ls -l support-files/*.cnf
/bin/cp support-files/my-small.cnf /etc/my.cnf
~~~
通过rz等方式上传配置文件模板my.cnf文件到相关目录下
~~~
vi /data/3306/my.cnf
vi /data/3307/my.cnf
~~~
/data/3306/my.cnf
~~~
[client]
port = 3306
socket = /data/3306/mysql.sock
[mysql]
no-auto-rehash
[mysqld]
user = mysql
port = 3306
socket = /data/3306/mysql.sock
basedir=/usr/local/mysql
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
joins_buffer_size = 1M
thread_cache_size = 100
thread_concurency = 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-COMMITED
tmp_table_size = 2M
max_heap_table_size = 2M
long_query_time = 1
log_long_format
log_error = /data/3306/error.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_md_buffer_size = 1M
bulk_insert_buffer_size= 1M
myisam_sort_buffer_size = 1M
myisam_max_sort_file_size =1G
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 = ibdatal:128Mautoextend
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_oldboy3306.err
pid-file = /data/3306/mysqld.pid
~~~
**/data/3306/my.cnf和/data/3307/my.cnf区别**
1./data/3306/my.cnf
~~~
port = 3306
socket = /data/3306/mysql.sock
datadir = /data/3306/data
long_query_time = 1
#log_error = /data/3306/error.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
server-id = 1
log-error = /data/3306/mysql_oldbody3306.err
~~~
1./data/3307/my.cnf
~~~
port = 3307
socket = /data/3307/mysql.sock
datadir = /data/3307/data
#long_query_time = 1
#log_error = /data/3307/error.log
#log-slow-queries = /data/3307/slow.log
pid-file = /data/3307/mysql.pid
log-bin = /data/3307/mysql-bin
relay-log = /data/3307/relay-bin
relay-log-info-file = /data/3307/relay-log.info
server-id = 3
log-error = /data/3307/mysql_oldbody3307.err
~~~
#### **创建mysql多实例的启动文件**
~~~
vi /data/3306/mydql
vi /data/3307/mysql
~~~
通过rz等方式上传配置文件模板mysql文件到相关目录下
/data/3306/mysql
~~~
#!bin/sh
#init
port = 3306
mysql_user = "root"
mysql_pwd = "admin"
CmdPath = "/application/mysql/bin"
mysql_sock = "/data/${port}/mysql.sock"
#startup function
function_start_mysql()
{
if[ ! -e "$mysql_sock" ] then
printf "Starting MySQL....\n"
bin/sh ${CmdPath}/mysqld_safe --defaults-file = data/${port}/my.cnf 2>&1 >
/dev/null &
else
printf "MySQL is running...\n"
exit
fi
}
# stop function
function_stop_mysql()
{
if [ ! -e "$mysql_sock" ] then
print "MySQL is stopped ....\n"
exit
else
printf "Stoping MySQL...\n"
${CmdPath}/mysqladmin -u ${mysql_user} -p${mysql_pwd} -S /data/${port}/mysql.sock shutdown
fi
}
#restart function
function_restart_mysql()
{
printf "Restarting MySQL...\n "
function_stop_mysql
sleep 2
function_start_mysql
}
case $1 in
start)
function_start_mysql
;;
stop)
function_stop_mysql
;;
restart)
function_restart_mysql
;;
*)
printf "Usage: /data/${port}/mysql {start|stop|restart}\n"
esac
~~~
最终目录结构为:
/data
|----3306
|--------data
|-----------my.cnf
|-----------mysql
|------3307
|---------data
|-------------my.cnf
|-------------mysql
多实例启动文件的启动mysql服务实质:
mysqld_safe --default-file = /data/3306/my.cnf 2>&1 >/dev/null &
mysqld_safe --default-file = /data/3307/my.cnf 2>&1 >/dev/null &
多实例停止文件的停止mysql服务实质:
mysqladmin - u root -p admin -S /data/3306/mysql.sock shutdown
mysqladmin - u root -p admin -S /data/3307/mysql.sock shutdown
#### **授权mysql用户和组管理整个多实例目录/data**
~~~
chown -R mysql.mysql /data
find /data/ -name mysql
/data/3306/mysql
/data/3307/mysql
~~~
#### **授权mysql多实例服务所有启动文件mysql可执行**
~~~
#查找/data目录下的mysql 文件
find /data/ -type f -name "mysql"
#查找/data目录下的mysql文件并查看
find /data/ -type f -name "mysql" | xrags ls - l
#查找/data目录下的mysql文件并添加权限
find /data/ -type f -name "mysql" | xargs chmod +x
find /data -name mysql -exec chmod 700 {} \;
find /data -name mysql | xargs chmod 700
find /data -name mysql -exec chmod 700 {} \;
find /data -name mysql -exec chown root.root {} \;
find /data -name mysql -exec ls -l {} \ ;
~~~
#### **配置mysql命令全局使用路径**
~~~
①方法一
#添加全局变量
echo 'export PATH=/usr/local/mysql/bin:$PATH' >>/etc/profile
#查看全局变量
tail -l /etc/profile
#使全局变量生效
source /etc/profile
②方法二
/bin/cp /usr/local/mysql/bin/* /usr/local/sbin/
~~~
#### **初始化mysql多实例的数据库文件**
mysql5.1.x初始化命令:
~~~
mysql_install_db -basedir=/application/mysql
--datadir=/data/3306/data --user=mysql
mysql_install_db -basedir=/application/mysql
--datadir=/data/3307/data --user=mysql
~~~
mysql5.2.x初始化命令为:
~~~
cd /application/mysql/scripts #和5.1的路径不同,不在mysql bin 路径下
./mysql_install_db -basedir=/application/mysql
--datadir=/data/3306/data --user=mysql
./mysql_install_db -basedir=/application/mysql
--datadir=/data/3307/data --user=mysql
~~~
#### **启动多实例mysql**
~~~
/data/3306/mysql start
/data/3307/mysql start
netstat -lntup | grep 330 或 ss -lntup | grep 330
~~~
注:查看mysql错误日志
```
grep log-error my.cnf |tail -l
tail -100 /data/3306/mysql_oldboy3306.err
```
#### **多实例登录mysql**
```
mysql -S /data/3306/mysql.sock
create database d3306
#切换到3307
system mysql -S /data/3307/mysql.sock
```
#### **为root增加密码**
```
mysqladmin -u root -S /data/3306/mysql.scok password 'amdin123'
```
#### **新增加一个3308实例**
```
mkdir -p /data/3308/data
cp /data/3306/my.cnf /data/3308
cp /data/3306/mysql /data/3308
#vi 批量替换my.cnf 3306 为3308
:g/3306/s//3308/
:%s/3306/3308/g
:n1,n2s/3306/3308/gc n1,n2为行号在指定行号之间替换
cd /application/mysql/scripts/
./mysql_install_db --user=mysql --basedir=/application/mysql --datadir = /data/3308/data/
/data/3308/mysql.sock start
```
- 前言准备
- Linux新服务器的前期配置
- 认识linux下的Web服务器
- Linux的基本配置
- LNMP一键安装包快速部署web服务器
- LAMP服务器环境部署
- LAMP服务器管理
- LNMP服务器环境部署
- LNMP服务器管理
- lnmp一键安装包-常见问题
- 使用包管理器快速部署环境
- 包管理器快速部署LAMP服务器环境
- 升级php和mysql版本
- 包管理器快速部署LNMP服务器环境
- 使用源码包部署Linux服务器web环境
- 编译LAMP服务器环境部署
- apache安装与配置
- mysql的安装与配置
- PHP的安装与配置
- 编译LNMP服务器环境部署
- nginx服务启动脚本
- 源码安装常见问题
- Centos6与Centos7的区别
- 默认控制系统服务工具不同
- 设置开机启动的方式不同
- 编写service启动脚本
- 编写systemctl启动脚本
- 服务器安全
- 隐藏服务器信息
- Linux服务器防火墙设置
- 防火墙设置脚本
- 邮件发送
- 任务脚本的编写
- 服务器磁盘和服务器健康状态脚本
- 服务器登录报警脚本
- 数据库备份脚本
- 定时任务及应用
- 常见问题
- linux中使用ping命令不同的问题
- Linux中无法发送邮件
- mailx通过ssl方式发送邮件
- Mysql配置文件
- Linux TCP/UDP 常用端口
- Linux常见命令
- 系统信息
- 关机 (系统的关机、重启以及登出 )
- 文件和目录
- 文件搜索
- 挂载一个文件系统
- 磁盘空间
- 用户和群组
- 文件的权限
- 文件的特殊属性
- 打包和压缩文件
- RPM包
- YUM软件包升级器
- DEB 包 (Debian, Ubuntu 以及类似系统)
- APT 软件工具 (Debian, Ubuntu 以及类似系统)
- 查看文件内容
- 文本处理
- 字符设置和文件格式转换
- 文件系统分析
- 初始化一个文件系统
- SWAP文件系统
- 备份
- 光盘
- 网络-(以太网和WIFI无线)
- vi命令
- cut命令 截取
- Mysql
- MySQL备份-增量备与恢复命令实战
- mysqlbinlog
- mysql的安装
- 卸载mysql
- mysql多实例安装
- mysql 常用基础命令操作
- linux安装jdk、rpm安装mysql
- linux制作本地yum源
- shell脚本