1、准备工作

groupadd mysql 

useradd -r -g mysql mysql 

mkdir /usr/local/mysql/        #创建mysql安装目录 

mkdir /data/mysql               #创建数据存放目录 

chown mysql:mysql -R /data/mysql 

yum install -y gcc gcc-c++ libtool autoconf automake imake libxml2-devel expat-devel ncurses-devel cmake bison 

 wget  http://mirrors.sohu.com/mysql/MySQL-5.5/mysql-5.5.43.tar.gz

  

2、解压源码包,编译安装

tar -zxvf mysql-5.5.43.tar.gz 

cd mysql-5.5.43              #进入解压后mysql目录 

 cmake -DCMAKE_INSTALL_PREFIX=/usr/local/mysql -DMYSQL_UNIX_ADDR=/usr/local/mysql/mysql.sock -DDEFAULT_CHARSET=utf8 -DDEFAULT_COLLATION=utf8_general_ci -DWITH_MYISAM_STORAGE_ENGINE=1 -DWITH_INNOBASE_STORAGE_ENGINE=1 -DWITH_MEMORY_STORAGE_ENGINE=1 -DWITH_READLINE=1 -DENABLED_LOCAL_INFILE=1 -DMYSQL_DATADIR=/data/mysql/ -DMYSQL_USER=mysql -DMYSQL_TCP_PORT=3306

 

make && make install              #编译通过过,安装

 

3、初始化MySQL

cp support-files/my-medium.cnf /etc/my.cnf          #复制配置文件 

cp support-files/mysql.server /etc/init.d/mysqld    #复制启动脚本 

chmod 755 /etc/init.d/mysqld 

cd /usr/local/mysql      #进入安装目录 

chown -R mysql.mysql . # 授权                                        

./scripts/mysql_install_db --user=mysql --basedir=/usr/local/mysql/ --datadir=/data/mysql  #初始化数据库 

/etc/init.d/mysqld start                                           #启动数据库 

 

4、MySQL配置

chkconfig --add mysqld                                 #添加系统服务 

chkconfig mysqld on                                     #添加开机启动 

export PATH=$PATH:/usr/local/mysql/bin    #添加环境变量  

echo 'PATH=$PATH:/usr/local/mysql/bin' >> /etc/profile 

service mysqld start/stop 



mysql主从配置

192.168.2.96  salve  

192.168.2.97  master

1、首先配置主服务器   

[root@localhost ~]# service mysqld stop
[root@localhost ~]# vi /etc/my.cnf ##在[mysqld]段内添加如下内容(其实默认就是需要检查一下)

log-bin=mysql-bin       ###########启用二进制日志#############

server-id=1        ###########服务器唯一ID###########

[root@localhost ~]# service mysqld start
Starting MySQL..                                           [确定]

[root@localhost ~]# mysqladmin -uroot -p password "123456"  
#默认root用户密码为空,修改密码为123456   这里修改密码也可以直接登录进去 在重新授权
Enter password: 
[root@localhost ~]# mysql -uroot -p   ##登陆mysql终端,授权给从服务器,
mysql> grant replication slave on *.* to 'root'@'192.168.2.96' identified by '123456';
Query OK, 0 rows affected (0.01 sec)

mysql> flush privileges;   ###刷新
Query OK, 0 rows affected (0.00 sec)

mysql> show master status;   ##查询主数据库状态
+------------------+----------+--------------+------------------+
| File             | Position | Binlog_Do_DB | Binlog_Ignore_DB |
+------------------+----------+--------------+------------------+
| mysql-bin.000004 |      471 |              |                  |
+------------------+----------+--------------+------------------+
1 row in set (0.00 sec)
###这里需要记录 File 以及 Position 的值,在操作从服务器时会用到,以当时终端的为准###

2、配置从服务器

[root@localhost ~]# service mysqld stop  ##停止mysql数据库
Shutting down MySQL.                                       [确定]
[root@localhost ~]# vi /etc/my.cnf ##在[mysqld]段内添加如下内容
[mysqld]
log-bin=mysql-bin       ###########启用二进制日志#############
server-id=2       ###########服务器唯一ID###########
[root@localhost ~]# service mysqld start  ##启动数据库
Starting MySQL..                                           [确定]
[root@localhost ~]# mysqladmin -uroot -p password "123456"  #默认root用户密码为空,修改密码为123456   
Enter password:
[root@localhost ~]# mysql -uroot -p   ###登陆mysql终端,

###执行同步SQL语句###

mysql> change master to

    -> master_host='192.168.2.97',

    -> master_user='root',

    -> master_password='123456',

    -> master_log_file='mysql-bin.000004',

    -> master_log_pos=471;

注意:这里完成后最后刷新权限  否则下面查看主从同步状态时显示:Slave_IO_Running: Connecting


mysql> flush privileges;   ###刷新权限
Query OK, 0 rows affected (0.00 sec)

###启动Slave 同步进程####

mysql> start slave;  

Query OK, 0 rows affected (0.00 sec)

####主从同步检查####

mysql> show slave status\G;

       Slave_IO_Running: Yes

       Slave_SQL_Running: Yes

代表mysql主从搭建成功,测试主从服务器是否能够同步,就自己简单的测试一下即可 这里就不做演示了。



mysql主主配置


接着上面的继续简单操作几步即可完成主主配置(其操作步骤和搭建主从一样)


在从服务器上操作如下 (这次从服务器其实是当做主)

mysql> grant replication slave on *.* to 'root'@'192.168.2.97' identified by '123456';
Query OK, 0 rows affected (0.00 sec)

mysql> flush privileges;  
Query OK, 0 rows affected (0.00 sec)

mysql> show master status; 
+------------------+----------+--------------+------------------+
| File             | Position | Binlog_Do_DB | Binlog_Ignore_DB |
+------------------+----------+--------------+------------------+
| mysql-bin.000004 |      700 |              |                  |
+------------------+----------+--------------+------------------+
1 row in set (0.00 sec)


192.168.2.97服务器如下操作:

mysql> change master to  master_host='192.168.2.96', master_user='root', master_password='123456', master_log_file='mysql-bin.000004',    master_log_pos=700; 
Query OK, 0 rows affected (0.01 sec)

mysql> flush privileges;
Query OK, 0 rows affected (0.00 sec)

mysql> start slave;  
Query OK, 0 rows affected (0.00 sec)

mysql> show slave status\G;
*************************** 1. row ***************************
               Slave_IO_State: Waiting for master to send event
                  Master_Host: 192.168.2.96
                  Master_User: root
                  Master_Port: 3306
                Connect_Retry: 60
              Master_Log_File: mysql-bin.000004
          Read_Master_Log_Pos: 700
               Relay_Log_File: linux-relay-bin.000002
                Relay_Log_Pos: 253
        Relay_Master_Log_File: mysql-bin.000004
             Slave_IO_Running: Yes
            Slave_SQL_Running: Yes
              Replicate_Do_DB: 
          Replicate_Ignore_DB: 
           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: 700
              Relay_Log_Space: 409
              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: 2
1 row in set (0.00 sec)

OK!到这里mysql主主搭建完成 


由于博主比较懒  mysql环境搭建就写在一个博文里面了 测试的话就自己简单测试下即可。有错误的地方请指出来 一块学习进步。