CentOS6CentOS
bitsCN.com一.最小化安装centos 二.虚拟机安装完后,iptables会自动开启,永久关闭它 chkconfig iptables off 三.设置静态ip地址,方便以后shell连接 ,mysql主服务器192.168.1.41,从服务器192.168.1.42; 1.vi /etc/sysconfig/network-scripts/ifcfg-eth0 (根据虚拟机网卡的不同,这里eth0也可能是eth1,eth2) DEVICE=eth0 BOOTPROTO=static HWADDR=00:26:18:0B:38:C0 ONBOOT=yes IPADDR=192.168.1.41 NETMASK=255.255.255.0 GATEWAY=192.168.1.1 2.IP生效: /sbin/ifdown eth0 /sbin/ifup eth0 3.通知网关更新信息: /etc/init.d/network restart 4.配置DNS: vi /etc/resolv.conf nameserver 202.101.172.35 5.chattr +i /etc/resolv.conf改为只读 6.重启系统四 使用shell登录192.168.1.41 (mysql主服务器,先设置一台,然后通过复制,克隆,产生从服务区) 五 安装mysql5.6.15 (官网mysql.com下载源码包安装。http://dev.mysql.com/downloads/mysql/) 1.安装编译源码所需的工具和库 yum install gcc gcc-c++ ncurses-devel perl 安装cmake(mysql5.5以后都采用cmake安装了)
wget http://www.cmake.org/files/v2.8/cmake-2.8.10.2.tar.gz
tar -xzvf cmake-2.8.10.2.tar.gz
cd cmake-2.8.10.2
./bootstrap ; make ; make install
2.创建mysql用户与组 groupadd mysql
useradd -r -g mysql mysql
3.新建mysql安装目录和数据目录
mkdir -p /usr/local/mysql
mkdir -p /data/mysqldb
4.下载mysql 源码包并解压安装
在官方网站 http://dev.mysql.com/downloads/mysql/ 找找,一般是最后一个source code 32M左右
tar -zxv -f mysql-5.6.15.tar.gz
5.安装mysql
cd mysql-5.6.15
配置编译信息
cmake / -DCMAKE_INSTALL_PREFIX=/usr/local/mysql / -DMYSQL_UNIX_ADDR=/usr/local/mysql/mysql.sock / -DDEFAULT_CHARSET=utf8 / -DDEFAULT_COLLATION=utf8_general_ci / -DWITH_INNOBASE_STORAGE_ENGINE=1 / -DWITH_ARCHIVE_STORAGE_ENGINE=1 / -DWITH_BLACKHOLE_STORAGE_ENGINE=1 / -DMYSQL_DATADIR=/data/mysqldb / -DMYSQL_TCP_PORT=3306 /
-DENABLE_DOWNLOADS=1
make
make install
注:重新运行配置,需要删除CMakeCache.txt文件
##################解释与说明##############################################
-DCMAKE_INSTALL_PREFIX=dir_name
设置mysql安装目录
-DMYSQL_UNIX_ADDR=file_name
设置监听套接字路径,这必须是一个绝对路径名。默认为/tmp/mysql.sock的中。
-DDEFAULT_CHARSET=charset_name
设置服务器的字符集。缺省情况下,MySQL使用latin1的(CP1252西欧)字符集。
cmake/character_sets.cmake文件包含允许的字符集名称列表。
-DDEFAULT_COLLATION=collation_name
设置服务器的排序规则。
-DWITH_INNOBASE_STORAGE_ENGINE=1
-DWITH_ARCHIVE_STORAGE_ENGINE=1
-DWITH_BLACKHOLE_STORAGE_ENGINE=1
-DWITH_PERFSCHEMA_STORAGE_ENGINE=1
存储引擎选项:
MyISAM,MERGE,MEMORY,和CSV引擎是默认编译到服务器中,并不需要明确地安装。
静态编译一个存储引擎到服务器,使用-DWITH_engine_STORAGE_ENGINE= 1。
可用的存储引擎值有:ARCHIVE, BLACKHOLE, EXAMPLE, FEDERATED, INNOBASE (InnoDB), PARTITION (partitioning support), 和 PERFSCHEMA (Performance Schema).
-DMYSQL_DATADIR=dir_name
设置mysql数据库文件目录
-DMYSQL_TCP_PORT=port_num
设置mysql服务器监听端口,默认为3306
-DENABLE_DOWNLOADS=bool
是否要下载可选的文件。例如,启用此选项(设置为1),cmake将下载谷歌所使用的测试套件运行单元测试。
########################################################################
6.修改mysql安装目录和数据目录的权限
cd /usr/local/mysql
chown -R mysql:mysql .
cd /data/mysqldb
chown -R mysql:mysql .
7.初始化mysql数据库
cd /usr/local/mysql
scripts/mysql_install_db --user=mysql --datadir=/data/mysqldb
8复制mysql服务启动配置文件
cp /usr/local/mysql/support-files/my-default.cnf /etc/my.cnf
9 修改配置文件
vi /etc/my.cnf
修改datadir = /data/mysqldb/
10、复制mysql服务启动脚本及加入PATH路径
cp support-files/mysql.server /etc/init.d/mysqld
vim /etc/profile
PATH=/usr/local/mysql/bin:/usr/local/mysql/lib:$PATH
export PATH
source /etc/profile
11、启动mysql服务并加入开机自启动
service mysqld start
chkconfig --level 35 mysqld on
12、检查mysql服务是否启动
netstat -tulnp | grep 3306
mysql -u root -p
密码为空,如果能登陆上,则安装成功。
13、修改MySQL用户root的密码
mysqladmin -u root password '123456'
六 复制虚拟机,准备做mysql主从复制
1.可以克隆,也可以直接ctrl+c ctrl+v 复制虚拟机。
2.进入刚复制的虚拟机,由于是复制的,有些地方需要修改
hostname mysql42
/etc/sysconfig/network-scripts/ifcfg-eth0 修改静态ip为192.168.1.42
rm /etc/udev/rules.d/70-persistent-net.rules 删除该文件
reboot 重启
3.重启后的从服务器,可以用shell进入,需要修改auto.cnf文件(都是复制虚拟机惹的祸)
cd /data/mysqldb/
vi auto.cnf
把这一长串 16进制 修改一个或多个数,比如把0改成1,把2改成a,随便你改,保证和41服务器不一样就行
七mysql主从配置
1.设置server_id,设置log-bin
192.168.1.41 主服务器
vi /etc/my.cnf ;
修改server_id=1 ;
修改log-bin=mysqlbin-log;
service mysqld restart 重启mysql服务
192.168.1.42 从服务器
vi /etc/my.cnf ;
修改server_id=42 ;(随便取,这里跟ip对应)
修改log-bin=mysqlbin-log; (从服务器可以不设置)
service mysqld restart 重启mysql服务
2.主服务器,创建拥有操作主从权限的账户
进入mysql mysql -uroot -p123456
GRANT REPLICATION SLAVE ON *.* to 'atfire'@'%' identified by 'atfire123';
atfire是帐号,atfire.cn是密码
FLUSH PRIVILEGES; 刷新权限,使权限生效,这句一定要执行,不然无效。
show master status; 查看主服务器bin-log日志的当前为止 ,这里假设是 mysql-bin.000001 120;
3.设置从服务器
进入mysql mysql -uroot -p123456
(可以键入命令help change master to 查看相关配置)
CHANGE MASTER TO
MASTER_HOST='192.168.1.41',
MASTER_USER='atfire',
MASTER_PASSWORD='atfire123',
MASTER_PORT=3306,
MASTER_LOG_FILE='mysqlbin-log.000001',
MASTER_LOG_POS= 120
这些参数分别是 主服务器地址,用户名,密码,端口号,bin-log日志文件,bin-log日志当前地址(由步骤2中查出)
4. start slave;开启从服务器线程
5.show slave status/G;查看从服务器信息
如果
Slave_IO_Running=yes
Slave_SQL_Running=yes
那就表示成功了,这个时候可以去主服务器增删改,从服务器会产生一样的数据
如果 Slave_IO_Running和Slave_SQL_Running有一个不是yes,那就是出错了
不管是no还是connecting,都是错了,要2个都是yes才表示成功
按照笔者的操作下来,理论上是可以成功的(因为笔者是,边操作,边记录的,并且成功了,)
但是实际情况有很多种,也有可能会失败
出错的原因有很多种,可以上网查找答案
bitsCN.com