mysql多实例(个人的情况,不是大众的)里面有配置好的脚本+主从复制
[root@DB-S ~]# ll /usr/local/|grep mysql
lrwxrwxrwx. 1 root root 21 Jun 14 01:52 mysql -> /alidata/server/mysql
#这是脚本免编译的安装的环境(比较复杂)
[root@DB-S /]# tree /data/
/data/
├── 3307
│ └── data
└── 3308
└── data 4 directories, 0 files
[root@DB-S 3307]# find /data -type f -name mysql |xargs chmod 700
[root@DB-S scripts]# ls
mysql_install_db
[root@DB-S scripts]# pwd
/alidata/server/mysql/scripts
[root@DB-S scripts]# ./mysql_install_db --basedir=/alidata/server/mysql --datadir=/data/3307/data --user=mysql
[root@DB-S scripts]# ./mysql_install_db --basedir=/alidata/server/mysql --datadir=/data/3308/data --user=mysql
/usr/local/mysql/bin/mysqld: File '/data/3307/mysql-bin.index' not found (Errcode: 13)
160614 5:46:15 [ERROR] Aborting
#没有权限
root@DB-S data]# chown -R mysql:mysql 330*
[root@DB-S data]# ll
total 8
drwxr-xr-x. 3 mysql mysql 4096 Jun 14 06:03 3307
drwxr-xr-x. 3 mysql mysql 4096 Jun 14 05:48 3308
[root@DB-S 3308]# ./mysql start
+ port=3308
+ echo 3308
3308
+ mysql_user=root
+ CmdPath=/usr/local/mysql/bin
+ mysql_sock=/data/3308/mysql.sock
+ case $1 in
+ function_start_mysql
+ '[' '!' -e /data/3308/mysql.sock ']'
+ printf 'Starting MySQL.....\n'
Starting MySQL.....
+ /bin/bash /usr/local/mysql/bin/mysqld_safe --defaults-file=/data/3308/my.cnf
[root@DB-S 3308]# netstat -lnutp|grep mysqld
tcp 0 0 0.0.0.0:3306 0.0.0.0:* LISTEN 16239/mysqld
tcp 0 0 0.0.0.0:3307 0.0.0.0:* LISTEN 24077/mysqld
tcp 0 0 0.0.0.0:3308 0.0.0.0:* LISTEN 24910/mysqld
[root@DB-S 3308]# mysql -uroot -p -S /data/3308/mysql.sock
Enter password:
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 1
Server version: 5.5.40-log MySQL Community Server (GPL) Copyright (c) 2000, 2014, 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>
关闭不同端口的数据库:
[root@DB-S 3307]# ./mysql stop
3307
Stoping MySQL.....
[root@DB-S 3307]# netstat -lnutp|grep mysqld
tcp 0 0 0.0.0.0:3306 0.0.0.0:* LISTEN 16239/mysqld
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------
[root@DB-S ~]# ls /data/330*
/data/3307:
data my.cnf mysql mysql_barry3307.err mysql-bin.000001 mysql-bin.index mysqld.pid mysql.sock slow.log /data/3308:
data my.cnf mysql mysql_barry3308.err mysql-bin.000001 mysql-bin.index mysqld.pid mysql.sock slow.log #下面有脚本mysql的内容和my.cnf的内容
[root@DB-S ~]# cat /data/3307/my.cnf
[client]
port = 3307
[mysql]
no-auto-rehash
[mysqld]
user = mysql
port = 3307
basedir = /usr/local/mysql
datadir = /data/3307/data
socket = /data/3307/mysql.sock
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 = 2M
long_query_time = 1
#log_long_format
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
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 = 2
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/3307/mysql_barry3307.err
pid-file=/data/3307/mysqld.pid
[root@DB-S ~]# cat /data/3307/mysql
#!/bin/bash
#mysql多实例启动脚本
#init
port=3307
echo $port
mysql_user="root"
#mysql_pwd="" #注意密码
CmdPath="/usr/local/mysql/bin"
mysql_sock="/data/${port}/mysql.sock"
#startup function
function_start_mysql()
{
if [ ! -e "$mysql_sock" ];then
printf "Starting MySQL.....\n"
/bin/bash ${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
printf "MySQL is stopped.... \n"
exit
else
printf "Stoping MySQL.....\n"
${CmdPath}/mysqladmin -u ${mysql_user} -S /data/${port}/mysql.sock shutdown
fi #如查有密码加 -p${mysql_pwd} }
#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
端口3308同上,把3307换成3308就行了!
百度网盘(配好的配置文件):http://pan.baidu.com/s/1bo6MTGV
配置mysql多实例数据库开机自启动:
[root@DB-S 3308]# echo "/data/3307/mysql start" >>/etc/rc.local
[root@DB-S 3308]# echo "/data/3308/mysql start" >>/etc/rc.local
[root@DB-S 3308]# grep "330[7,8]" /etc/rc.
rc.d/ rc.local rc.local.bak rc.sysinit
[root@DB-S 3308]# grep "330[7,8]" /etc/rc.local
/data/3307/mysql start
/data/3308/mysql start
[root@DB-S ~]# cat /etc/rc.local
#!/bin/sh
#
# This script will be executed *after* all the other init scripts.
# You can put your own initialization stuff in here if you don't
# want to do the full Sys V style init stuff. touch /var/lock/subsys/local
/etc/init.d/mysqld start
/etc/init.d/nginx start
/etc/init.d/php-fpm start
systemctl start vsftpd.service
/data/3307/mysql start
/data/3308/mysql start
为root增加密码:
[root@DB-S ~]# mysqladmin -S /data/3307/mysql.sock -uroot password"3307"
mysqladmin: Unknown command: 'password3307'
[root@DB-S ~]# mysqladmin -S /data/3307/mysql.sock -uroot password "3307"
[root@DB-S ~]# mysql -S /data/3307/mysql.sock #这是无法这样登录
ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: NO)
[root@DB-S ~]# mysql -S /data/3307/mysql.sock -uroot -p
Enter password: #密码:3307
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 5
Server version: 5.5.40-log MySQL Community Server (GPL) Copyright (c) 2000, 2014, 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>
主从复制配置:
[root@DB-S ~]# grep 'server-id' /etc/my.cnf
server-id = 1
#server-id = 2
[root@DB-S ~]# grep 'server-id' /data/3307/my.cnf
server-id = 2
[root@DB-S ~]# sed -i 's/server-id.*/server-id = 3/g' /data/3308/my.cnf
[root@DB-S ~]# grep 'server-id' /data/3308/my.cnf
server-id = 3
创建用于同步的帐号:
[root@DB-S ~]# mysql -uroot -p
mysql> grant replication slave on *.* to 'rep'@'%' identified by "3306";
Query OK, 0 rows affected (0.00 sec) mysql> flush privileges;
Query OK, 0 rows affected (0.00 sec)
锁表只读:
mysql> flush tables with read lock;
Query OK, 0 rows affected (0.00 sec)
查看主库状态:
mysql> show master status;
+------------------+----------+--------------+------------------+
| File | Position | Binlog_Do_DB | Binlog_Ignore_DB |
+------------------+----------+--------------+------------------+
| mysql-bin.000017 | 459 | | |#后面的从库复制时是从这个位置开始同步
+------------------+----------+--------------+------------------+
1 row in set (0.00 sec)
导出数据库数据:
[root@DB-S backup]# /alidata/server/mysql/bin/mysqldump -uroot -p3306 --all-databases|gzip >/server/backup/mysql_bak.`date +%F`.sql.gz
-- Warning: Skipping the data of table mysql.event. Specify the --events option explicitly.
[root@DB-S ~]# ls /server/backup/mysql_bak.2016-06-14.sql.gz
/server/backup/mysql_bak.2016-06-14.sql.gz
确保导库期间,数据库没有数据插入,可以再检查下主库状态信息
[root@DB-S ~]# mysql -uroot -p3306 -e "show master status"
+------------------+----------+--------------+------------------+
| File | Position | Binlog_Do_DB | Binlog_Ignore_DB |
+------------------+----------+--------------+------------------+
| mysql-bin.000017 | 459 | | |
+------------------+----------+--------------+------------------+
导库后,解锁主库,恢复可写:
[root@DB-S ~]# mysql -uroot -p3306 -e "unlock tables;"
把主库备份的MySQL数据迁移到从库:
设置server-id值并关闭binlog设置
[root@DB-S ~]# egrep "log-bin|erver-id" /data/3307/my.cnf
#log-bin = /data/3307/mysql-bin
server-id = 2
[root@DB-S ~]# sed -i 's/\(log-bin.*\)/#\1/g' /data/3308/my.cnf
[root@DB-S ~]# egrep "log-bin|erver-id" /data/3308/my.cnf
#log-bin = /data/3308/mysql-bin
server-id = 3
[root@DB-S ~]# service mysqld start
Starting MySQL.. SUCCESS!
[root@DB-S ~]# /data/3307/mysql start
3307
Starting MySQL.....
[root@DB-S ~]# /data/3308/mysql start
[root@DB-S ~]# netstat -lnutp |grep mysqld
tcp 0 0 0.0.0.0:3306 0.0.0.0:* LISTEN 7526/mysqld
tcp 0 0 0.0.0.0:3307 0.0.0.0:* LISTEN 8342/mysqld
tcp 0 0 0.0.0.0:3308 0.0.0.0:* LISTEN 9155/mysqld
还原主数据库导出的数据备份:
[root@DB-S backup]# ls
mysql_bak.2016-06-14.sql.gz
[root@DB-S backup]# which gzip
/bin/gzip
[root@DB-S backup]# gzip -d mysql_bak.2016-06-14.sql.gz
[root@DB-S backup]# ls
mysql_bak.2016-06-14.sql
[root@DB-S backup]# mysql -uroot -p3307 -S /data/3307/mysql.sock <mysql_bak.2016-06-14.sql
[root@DB-S backup]# mysql -uroot -p3308 -S /data/3308/mysql.sock <mysql_bak.2016-06-14.sql
登录从库配置同步参数:
[root@DB-S backup]# mysql -uroot -p3307 -S /data/3307/mysql.sock <<EOF
> CHANGE MASTER TO
> MASTER_HOST='192.168.1.99',
> MASTER_PORT=3306,
> MASTER_USER='rep',
> MASTER_PASSWORD='3306',
> MASTER_LOG_FILE='mysql-bin.000018',
> MASTER_LOG_POS=107;
> EOF
[root@DB-S backup]# mysql -uroot -S /data/3308/mysql.sock <<EOF
CHANGE MASTER TO
MASTER_HOST='192.168.1.99',
MASTER_PORT=3306,
MASTER_USER='rep',
MASTER_PASSWORD='3306',
MASTER_LOG_FILE='mysql-bin.000018',
MASTER_LOG_POS=107;
EOF
启动从库同步开关:
[root@DB-S backup]# mysql -uroot -p'3307' -S /data/3307/mysql.sock -e "start slave;"
[root@DB-S backup]# mysql -uroot -S /data/3308/mysql.sock -e "start slave;"
[root@DB-S backup]# mysql -uroot -p3307 -S /data/3307/mysql.sock -e "show slave status\G;"
*************************** 1. row ***************************
Slave_IO_State: Waiting for master to send event
Master_Host: 192.168.1.99
Master_User: rep
Master_Port: 3306
Connect_Retry: 60
Master_Log_File: mysql-bin.000018
Read_Master_Log_Pos: 107
Relay_Log_File: relay-bin.000002
Relay_Log_Pos: 253
Relay_Master_Log_File: mysql-bin.000018
Slave_IO_Running: Yes
Slave_SQL_Running: Yes
Replicate_Do_DB:
Replicate_Ignore_DB: mysql
Replicate_Do_Table:
Replicate_Ignore_Table:
Replicate_Wild_Do_Table:
Replicate_Wild_Ignore_Table:
Last_Errno: 0
Last_Error:
Skip_Counter: 0
Exec_Master_Log_Pos: 107
Relay_Log_Space: 403
Until_Condition: None
Until_Log_File:
Until_Log_Pos: 0
Master_SSL_Allowed: No
Master_SSL_CA_File:
Master_SSL_CA_Path:
Master_SSL_Cert:
Master_SSL_Cipher:
Master_SSL_Key:
Seconds_Behind_Master: 0
Master_SSL_Verify_Server_Cert: No
Last_IO_Errno: 0
Last_IO_Error:
Last_SQL_Errno: 0
Last_SQL_Error:
Replicate_Ignore_Server_Ids:
Master_Server_Id: 1
[root@DB-S backup]# mysql -uroot -S /data/3308/mysql.sock -e "show slave status\G;"*************************** 1. row ***************************
Slave_IO_State: Waiting for master to send event
Master_Host: 192.168.1.99
Master_User: rep
Master_Port: 3306
Connect_Retry: 60
Master_Log_File: mysql-bin.000018
Read_Master_Log_Pos: 107
Relay_Log_File: relay-bin.000002
Relay_Log_Pos: 253
Relay_Master_Log_File: mysql-bin.000018
Slave_IO_Running: Yes
Slave_SQL_Running: Yes
Replicate_Do_DB:
Replicate_Ignore_DB: mysql
Replicate_Do_Table:
Replicate_Ignore_Table:
Replicate_Wild_Do_Table:
Replicate_Wild_Ignore_Table:
Last_Errno: 0
Last_Error:
Skip_Counter: 0
Exec_Master_Log_Pos: 107
Relay_Log_Space: 403
Until_Condition: None
Until_Log_File:
Until_Log_Pos: 0
Master_SSL_Allowed: No
Master_SSL_CA_File:
Master_SSL_CA_Path:
Master_SSL_Cert:
Master_SSL_Cipher:
Master_SSL_Key:
Seconds_Behind_Master: 0
Master_SSL_Verify_Server_Cert: No
Last_IO_Errno: 0
Last_IO_Error:
Last_SQL_Errno: 0
Last_SQL_Error:
Replicate_Ignore_Server_Ids:
Master_Server_Id: 1
mysql多实例(个人的情况,不是大众的)里面有配置好的脚本+主从复制的更多相关文章
- MySQL多实例部署与优化
MySQL安装 ##上传MySQL安装包## mkdir /home/oldboy/tools -p cd /home/oldboy/tools/ ###wget -q http://mirrors. ...
- MySQL数据库实例参数对比脚本
如何对比两个MySQL实例的参数情况,生产中常会有这样的需求,最近写了个python脚本,可基本实现该需求. 脚本 #!/usr/bin/python import MySQLdb,sys def f ...
- mysql 优化实例之索引创建
mysql 优化实例之索引创建 优化前: pt-query-degist分析结果: # Query 23: 0.00 QPS, 0.00x concurrency, ID 0x78761E301CC7 ...
- mysql多实例的配置和管理
原文地址:mysql多实例的配置和管理 作者:飞鸿无痕 多实例mysql的安装和管理 mysql的多实例有两种方式可以实现,两种方式各有利弊.第一种是使用多个配置文件启动不同的进程来实现多实例,这种方 ...
- MySQL多实例,主从同步
由于背景原因,所做的主从同步还是要基于MySQL 5.1的版本,主从同步主要是一个数据库读写访问原来的数据库热度过大,需要做到使用从库对读分压. MySQL主从同步介绍 MySQL 支持单双向 ...
- Mysql多实例 安装以及配置
MySQL多实例 1.什么是MySQL多实例 简单地说,Mysql多实例就是在一台服务器上同时开启多个不同的服务端口(3306.3307),同时运行多个Mysql服务进程,这些服务进程通过不同的soc ...
- 如何在同一台机器上安装多个MySQL的实例
转自:'http://www.cnblogs.com/shangzekai/p/4375271.html 最近由于工作的需要,需要在同一台机器上搭建两个MySQL的实例,(注:已经存在了一个3306的 ...
- Mysql 多实例 +表损坏
什么是实例? 进程+多个线程+预分配的内存结构 MySQL多实例: 多个进程+多个线程+多个预分配内存结构 多个配置文件: 1)多个端口 2)多个数据目录 3)多个socket文件 ./mysql_i ...
- MySQL多实例的环境下,服务器端本地连接到指定实例的问题(sock方式连接)
涉及到sock连接的问题. 为了测试MySQL的某些个特性,在一个机器上安装了多个MySQL的实例,如下截图,有两个实例,一个端口是8000,一个端口是8001.在使用mysql -uroot -p ...
随机推荐
- mysql语句分析
explain的每个输出行提供一个表的相关信息,并且每个行包括下面的列: 1,id select识别符.这是select的查询序列号.2,select_type 可以为一下任何一种类型simple ...
- Shell编程检测监控mysql的CPU占用率
shell编程很强大! 网站访问量大的时候mysql的压力就比较大,当mysql的CPU利用率超过300%的时候就不能提供服务了,近乎卡死状态,这时候最好的方法就是重启mysql服务.由于这种事具有不 ...
- cannot get gid for group ‘nobody’
启动php-fpm /data1/server/php-cgi/sbin/php-fpm 错误[28-Mar-2012 11:15:01] ERROR: failed to open configur ...
- ECSHOP后台商品列表显示商品缩略图
ECSHOP后台商品列表显示商品缩略图 ECSHOP教程/ ecshop教程网(www.ecshop119.com) 2013-11-06 ecshop 后台商品列表显示商品缩略图,大楷步凑如下: ...
- Python初学笔记
一.安装:直接通过软件管理程序,搜索Python,安装:安装过程中自定义路径,有个选项类似“add Python3.5 to Path”,勾选后便可以在cmd命令窗口,通过输入Python,启动Pyt ...
- FCK编辑器漏洞总结
1.查看编辑器版本FCKeditor/_whatsnew.html————————————————————————————————————————————————————————————— 2. Ve ...
- powerdesigner设置表主键列为自动增长。
powerdesigner 版本12.5 创建表就不说了.下面开始介绍设置自动增长列. 1 在表视图的列上创建.双击表视图,打开table properties ———>columens ,双击 ...
- HttpApplication的处理管道19个事件。
HttpApplication对象是由Asp.net帮助我们创建的,它是asp.net中处理请求的重要对象.为了便于扩展,HttpApplication采用处理管道的方式进行处理,将处理的步骤分为多个 ...
- ubuntu安装wiz笔记
wiz笔记支持跨平台 下面记录一下如何在ubuntu下面安装wiz笔记 1,ubuntu默认是没有wiz资源的,需要先添加官方ppa软件仓库 sudo add-apt-repository ppa:w ...
- 【原创】angularjs1.3.0源码解析之scope
Angular作用域 前言 之前我们探讨过Angular的执行流程,在一切准备工作就绪后(我是指所有directive和service都装载完毕),接下来其实就是编译dom(从指定的根节点开始遍历do ...