第一篇:mysql的安装,主从的配置,ip的规划
第二篇:mysql-mmm所需要的一些包的perl安装
第三篇:mmm安装,配置,启动,监控
第四篇:相关问题的总结,参考文献
咋感觉像写论文一样。。。
一. mysql安装
Ø 开始安装
将下载的mysql-5.1.60.tar.gz文件拷贝到/usr/local/src目录下。版本最好都是统一的 !
以root用户在CentOS的终端中输入以下命令,开始安装MySQL程序。
#cd /usr/local/src/
#groupadd mysql
#useradd -g mysql -s /sbin/nologin mysql
#tar xzvf mysql-5.1.60.tar.gz
#cd mysql-5.1.60/
* 在编译之前,由于缺少ncurses安装包,必须yum install ncurses-devel
#./configure --prefix=/usr/local/mysql --with-extra-charset=all --without-isam --exec-prefix=/usr/local/mysql --with-tcp-port=3306 --with-innodb --with-partition
#make
#make install
Ø MySQL的启动配置
以root用户在CentOS的终端中输入以下命令,让MySQL支持service 启动。
#cd /usr/local/mysql/
#chown -R mysql .
#chgrp -R mysql .
#cd /usr/local/src/mysql-5.1.60/support-files
#cp my-medium.cnf /etc/my.cnf
修改my.cnf文件,修改内容如下。
替换skip-locking为skip-external-locking
在my.cnf中添加如下内容。
datadir=/usr/local/mysql2/data
basedir=/usr/local/mysql2
#cp mysql.server /etc/init.d/mysqld
#chmod 755 /etc/init.d/mysqld
#chkconfig --add mysqld
#chkconfig mysqld on
Ø MySQL DB的安装
#mkdir /usr/local/mysql/data
#mkdir /usr/local/mysql/log
#chown -R mysql:mysql /usr/local/mysql/data
#chmod -R 755 /usr/local/mysql/data
#/usr/local/mysql/bin/mysql_install_db --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data &
Ø MySQL的service启动
#service mysqld restart
Ø MySQL的手动启动
#/usr/local/mysql/bin/mysqld_safe --defaults-file=/etc/my.cnf &
Ø 配置MySQL的远程连接
#mysql -h 127.0.0.1 -P 3306
mysql>use mysql;
mysql>update user set host = '%' where user = 'root';
mysql>select host, user from user;
mysql>GRANT ALL PRIVILEGES ON *.* TO 'root'@'%'WITH GRANT OPTION;
mysql>FLUSH PRIVILEGES;
二。mysql主从配置
Basic configuration of master 1,2,slave3
======================db1============================
log-error=/usr/local/mysql/log/error.log
long_query_time=5
slow_query_log=/usr/local/mysql/log/slow.log
log-bin=mysql-bin
binlog_format=ROW
server-id = 1
#log-bin = /var/log/mysql/mysql-bin.log
#log-bin-index = /var/log/mysql/mysql-bin.index
relay-log = /var/log/mysql/mysql-relay-bin
relay-log-index = /var/log/mysql/mysql-relay-bin.index
expire_logs_days = 10
max_binlog_size = 100M
log_slave_updates =1
auto_increment_increment=2
auto_increment_offset=1
bind-address = 0.0.0.0
===================db2====================
log-error=/usr/local/mysql/log/error.log
long_query_time=5
slow_query_log=/usr/local/mysql/log/slow.log
log-bin=mysql-bin
binlog_format=ROW
server-id = 2
#log-bin = /var/log/mysql/mysql-bin.log
#log-bin-index = /var/log/mysql/mysql-bin.index
relay-log = /var/log/mysql/mysql-relay-bin
relay-log-index = /var/log/mysql/mysql-relay-bin.index
expire_logs_days = 10
max_binlog_size = 100M
log_slave_updates =1
auto_increment_increment=2
auto_increment_offset=2
bind-address = 0.0.0.0
=====================db3=============================
db3修改my.cnf,确定有以下内容
server-id = 3
log-bin=mysql-bin
log_slave_updates =1
========================数据复制=============================
备份出sql:mysqldump -h127.0.0.1 -uroot -proot --lock-tables=0 --all-databases > /tmp/database-backup.sql
拷贝到其他机器:scp /tmp/database-backup.sql root@10.77.50.115:/tmp
在其他机器上执行:source /tmp/database-backup.sql
===========================建立用户===============================
GRANT REPLICATION CLIENT ON *.* TO 'mmm_monitor'@'10.77.50.%' IDENTIFIED BY 'mmm_monitor';
GRANT SUPER, REPLICATION CLIENT, PROCESS ON *.* TO 'mmm_agent'@'10.77.50.%' IDENTIFIED BY 'mmm_agent';
GRANT REPLICATION SLAVE ON *.* TO 'slave'@'10.77.50.%' IDENTIFIED BY 'slave';
FLUSH PRIVILEGES;
=============================建立主从=============================
(db1) mysql> SHOW MASTER STATUS; +------------------+----------+--------------+------------------+ | File | Position | Binlog_Do_DB | Binlog_Ignore_DB | +------------------+----------+--------------+------------------+ | mysql-bin.000002 | 374 | | | +------------------+----------+--------------+------------------+ 1 row in set (0.00 sec)
(db2) mysql> CHANGE MASTER TO master_host='192.168.0.11', master_port=3306, master_user='replication', master_password='replication_password', master_log_file='<file>', master_log_pos=<position>; (db3) mysql> CHANGE MASTER TO master_host='192.168.0.11', master_port=3306, master_user='replication', master_password='replication_password', master_log_file='<file>', master_log_pos=<position>;
(db2) mysql> START SLAVE; (db3) mysql> START SLAVE;
(db2) mysql> SHOW SLAVE STATUS\G *************************** 1. row *************************** Slave_IO_State: Waiting for master to send event Master_Host: 192.168.0.11 Master_User: replication Master_Port: 3306 Connect_Retry: 60 … (db3) mysql> SHOW SLAVE STATUS\G *************************** 1. row *************************** Slave_IO_State: Waiting for master to send event Master_Host: 192.168.0.11 Master_User: replication Master_Port: 3306 Connect_Retry: 60
(db2) mysql> SHOW MASTER STATUS; +------------------+----------+--------------+------------------+ | File | Position | Binlog_Do_DB | Binlog_Ignore_DB | +------------------+----------+--------------+------------------+ | mysql-bin.000001 | 98 | | | +------------------+----------+--------------+------------------+ 1 row in set (0.00 sec)
(db1) mysql> CHANGE MASTER TO master_host = '192.168.0.12', master_port=3306, master_user='replication', master_password='replication_password', master_log_file='<file>', master_log_pos=<position>;
(db1) mysql> START SLAVE;
(db1) mysql> SHOW SLAVE STATUS\G *************************** 1. row *************************** Slave_IO_State: Waiting for master to send event Master_Host: 192.168.0.12 Master_User: <replication> Master_Port: 3306 Connect_Retry: 60上面大概的意思,db1为主,然后分别db2,db3做从。当然,可以扩展到db4.db5。
然后以db2为主,然后db1为从。这样就建立了db1,db2互相主从,db3,db4,db5从于db1.
三。ip的规划
这些虚拟ip最后会在启动的时候自动的由monitor分配给固定ip的db的