centos6.5安装mysql并配置主主集群

准备工作

执行如下命令安装依赖:

 

 

# yum install gcc gcc-c++ ncurses-devel zip make cmake

执行如下命令(确保系统内无mysql的遗留信息):

rm –rf /etc/my.cnf

userdel mysql

groupdel mysql

 

 

安装mysql前需要查询系统中含有的有关mysql的软

 

rpm -qa | grep -i mysql    //grep -i不分大小写,含有mysql就显示如下信息:

mysql-libs-5.1.71-1.el6.i686 //它是好几个软件的依赖,其中在mini版本中postfix软件依赖mysql-libs,网上很多建议都是直接删除,

# yum remove mysql-libs //或者执行下面命令

# rpm -e --nodeps mysql-libs-5.1.71-1.el6.i686 //这样做不是最好的办法。

安装mysql

 

1.上传 mysql-5.6.22.tar.gz 到 /opt/soft下:

# rz

2.进入 /opt/soft:

# cd  /opt/soft

3.解压安装包 :

# tar -zxvf mysql-5.6.22.tar.gz

4.创建安装需要的目录:

# mkdir -p /opt/usr/mysql

# mkdir -p /opt/data/mysql

# mkdir -p /opt/log/mysql

 

 
5.进入解压后的mysql目录:

 

 

# cd /opt/soft/mysql-5.6.22

6.执行cmake:

# cmake -DCMAKE_INSTALL_PREFIX=/opt/usr/mysql/mysql-5.6.22 \

-DMYSQL_DATADIR=/opt/data/mysql/data \

-DDEFAULT_CHARSET=utf8 \

-DDEFAULT_COLLATION=utf8_general_ci \

-DWITH_INNOBASE_STORAGE_ENGINE=1 \

-DWITH_ARCHIVE_STORAGE_ENGINE=1 \

-DWITH_BLACKHOLE_STORAGE_ENGINE=1 \

-DWITH_FEDERATED_STORAGE_ENGINE=1 \

-DWITH_PARTITION_STORAGE_ENGINE=1 \

-DENABLED_LOCAL_INFILE=1

7.编译安装:
 

成功后进行编译安装,执行如下命令:

# make -j2 && make install -j2

8.上传mysql配置文件my.cnf:

# cd /opt/usr/mysql/mysql-5.6.22/etc
#rz  //(注:my.cnf参考附录,主从有少许区别)

9.初始化数据库:

    9.1.进入目录:
        #cd /opt/usr/mysql/mysql-5.6.22/scripts
    9.2.执行数据库初始化命令:
 

        # ./mysql_install_db --basedir=/opt/usr/mysql/mysql-5.6.22 --datadir=/opt/data/mysql --user=root --        defaults-file=/opt/usr/mysql/mysql-5.6.22/etc/my.cnf

10.拷贝support-files下的mysql.server拷贝到根目录下

# cd /opt/usr/mysql/mysql-5.6.22/support-files

 

# cp mysql.server ../

编辑mysql.server的283行,添加参数:--user="root"

可以使用:set nu查看行号

 

 
11.  主主集群详细

 

    - 删除data_dir目录下的auto.cnf删除

进入到/opt/data/mysql目录下,执行如下命令:

rm –rf auto.cnf (防止相同的UUID)

    - 修改主库/opt/usr/mysql/mysql-5.6.22/etc/my.cnf文件里的serverid,建议使用当前服务器IP的最后一位
    - 修改从库/opt/usr/mysql/mysql-5.6.22/etc/my.cnf文件里的serverid,建议使用当前服务器IP的最后一位
    - 在主库的/opt/usr/mysql/mysql-5.6.22/etc/my.cnf文件中[mysqld]下面添加如下命令:

auto_increment_increment=2 (步进值为2使得两条绝对同时插入的纪录不产生冲突)

auto_increment_offset=1(偏移量为1)

log_slave_updates=1

    - 在从库的/opt/usr/mysql/mysql-5.6.22/etc/my.cnf文件中[mysqld]下面添加如下命令:

auto_increment_increment=2

auto_increment_offset=2(偏移量为2)

log_slave_updates=1

    - 启动主库、从库

sh mysql.server start

    - 主库上拷贝授权账号(只有授权的从库才能进行同步)

GRANT REPLICATION SLAVE ON *.* to 'repl'@'192.168.1.%' identified by 'repl';(注意自己所在网段,末尾用%代替)

    - 从库上拷贝授权账号(只有授权的从库才能进行同步)

GRANT REPLICATION SLAVE ON *.* to 'repl'@'192.168.1.%' identified by 'repl';

    - 查看主库的偏移量

show master status

记录file和position变量

生成如下命令并将如下命令在从库上执行:

change master to

master_host='192.168.56.101',#代表主库的IP

master_user='repl',

master_password='repl',

master_log_file='mysql-bin.000004',#file

master_log_pos=334;#position

将该命名在从库上执行

    - 查看从库的偏移量

show master status

记录file和position变量

生成如下命令并将如下命令在主库上执行:

change master to

master_host='192.168.56.102', #代表主库的IP

master_user='repl',

master_password='repl',

master_log_file='mysql-bin.000004', #file

master_log_pos=120; #position

    - 主库上执行启动命令

start slave;

    - 从库上执行命令

start slave;

    - 验证主主配置状态

show slave status \G;



 

 

 

 

11.1.  创建数据库:
进入mysql执行

    create database jiajiaozaixian;(如果主主成功,在主库创建后,从库自动复制)

11.2.  创建用户 jiajiaozaixian和密码 jiajiaozaixian_123并赋权

    grant all privileges on jiajiaozaixian.* to  jiajiaozaixian@'%'  identified by ' jiajiaozaixian_123'; 

 
11.3.  常见问题排查

先检查change master to 命令所指定的ip、用户等信息是否正确;然后确认防火墙已关闭(Service iptables stop);然后检查mysql.enf中增加的配置是否有误。

 

 

 

 

12. 设置mysql开机启动:

 将mysql.server这个文件copy到/etc/init.d/目录下,改名成mysql

#  cp support-files/mysql.server /etc/init.d/mysql

#  chmod 755 /etc/init.d/mysql //给mysql这个文件赋予“执行”权限

#  chkconfig --add mysql //加入到开机自动运行

#  service mysql restart //重新启动MySQL

#  chkconfig --list  mysql //查看mysql是否开机启动

 

 

 

 

附录: 主机my.cnf
[client]
port = 3306
socket = /var/lib/mysql/mysql.sock
[mysql]
no-auto-rehash
[mysqld]
user = root
port = 3306
socket = /var/lib/mysql/mysql.sock
basedir = /opt/usr/mysql/mysql-5.6.22
datadir = /opt/data/mysql
pid-file = /opt/log/mysql/mysql.pid
open_files_limit = 10240
lower_case_table_names=1
user = root
server-id = 33
log-bin=mysql-bin
binlog-do-db=jiajiaozaixian
binlog-ignore-db=mysql
slow_query_log = 1
long_query_time = 1
log_error = /opt/log/mysql/mysql-error.log
slow_query_log_file = /opt/log/mysql/mysql-slow.logi
 
auto_increment_increment=2
auto_increment_offset=1
log_slave_updates=1
 
从机my.cnf
[client]
port = 3306
socket = /opt/data/mysql/mysql.sock
[mysql]
no-auto-rehash
[mysqld]
user = root
port = 3306
socket = /opt/data/mysql/mysql.sock
basedir = /opt/usr/mysql/mysql-5.6.22
datadir = /opt/data/mysql
pid-file = /opt/log/mysql/mysql.pid
open_files_limit = 10240
lower_case_table_names=1
user = root
server-id = 36
log-bin=mysql-bin
binlog-do-db=jiajiaozaixian
binlog-ignore-db=mysql
slow_query_log = 1
long_query_time = 1
log_error = /opt/log/mysql/mysql-error.log
slow_query_log_file = /opt/log/mysql/mysql-slow.logi
auto_increment_increment=2
auto_increment_offset=2
log_slave_updates=1
 

猜你喜欢

转载自ailikes.iteye.com/blog/2280881