Linux成长库

使用rpm快速安装部署MySQL5.6以及主从设置

2017-08-03  本文已影响4人  泡菜爱上WaSabi

1、首先再linux上配置好yum源和epel源

若以配置,则直接跳过这步

2、首先,登录MySQL官网,下载rpm包

https://dev.mysql.com/get/Downloads/MySQL-5.6/MySQL-5.6.37-1.el6.x86_64.rpm-bundle.tar

3、将rpm包上传至服务器,可以是rz上传,也可以是Xshell的Xftp上传

这里采用Xftp,将rpm包传至相关目录下

4、解压安装包

#tar -xvf MySQL-5.6.37-1.el6.x86_64.rpm-bundle.tar

MySQL-shared-5.6.37-1.el6.x86_64.rpm

MySQL-shared-compat-5.6.37-1.el6.x86_64.rpm

MySQL-server-5.6.37-1.el6.x86_64.rpm

MySQL-test-5.6.37-1.el6.x86_64.rpm

MySQL-client-5.6.37-1.el6.x86_64.rpm

MySQL-devel-5.6.37-1.el6.x86_64.rpm

MySQL-embedded-5.6.37-1.el6.x86_64.rpm

5、移除已经安装的早期版本

由于centos6.5的yum源中默认有MySQL 5.1.73版,因此由于冲突原因,删除老版本

rpm -qa | grep mysql

rpm -e --nodeps mysql

6、使用rpm命令安装

rpm -ivh MySQL-*.rpm

warning: MySQL-client-5.6.37-1.el6.x86_64.rpm: Header V3 DSA/SHA1 Signature, key ID 5072e1f5: NOKEY

Preparing...                ########################################### [100%]

1:MySQL-devel            ########################################### [ 14%]

2:MySQL-client          ########################################### [ 29%]

3:MySQL-test            ########################################### [ 43%]

4:MySQL-embedded        ########################################### [ 57%]

5:MySQL-shared-compat    ########################################### [ 71%]

6:MySQL-shared          ########################################### [ 86%]

7:MySQL-server          ########################################### [100%]

。。。。。。。。。。。

7、注意,在Mysql-server安装完成后,要注意下面的提示,查看/root/.mysql_secret文件的内容,记录下其中l临时生成的密码:

查看文件的内容:cat /root/.mysql_secret

The random password set for the root user at Tue Aug  1 15:42:46 2017 (local time): yRRpKLZ2Y6KFIGG9

8、启动mysql服务

service mysql start

注意:这里面不是"servicemysqld start",在5.6这个版本里,命令和以前的有点区别。

# service mysql start

Starting MySQL.Logging to '/var/lib/mysql/jksyy.err'.

SUCCESS!

9、查找配置文件

mysql --help | grep my.cnf

10、启动客户端

先查看默认密码

[root@localhost mysql]# cat /root/.mysql_secret

# The random password set for the root user at Wed Aug  2 10:40:22 2017 (local time): 0Ix5DP8Gi7Yna9nd

连接客户端,并且输入密码

#mysql -uroot -p

Enter password:

Welcome to the MySQL monitor.  Commands end with ; or \g.

Your MySQL connection id is 2

Server version: 5.6.37

11、更改root用户密码

set password for 'root'@'localhost' =password('123456');

创建一个用户,并且授权

create user admin;

grant all privileges on *.* to admin@'%' with grant option;

flush privileges;

12.主从配置

mysql主从复制

(超简单)

怎么安装mysql数据库,这里不说了,只说它的主从复制,步骤如下:

1、主从服务器分别作以下操作:

1.1、版本一致

1.2、初始化表,并在后台启动mysql

1.3、修改root的密码

2、修改主服务器master:

#vi /etc/my.cnf

[mysqld]

log-bin=mysql-bin  //[必须]启用二进制日志

server-id=222      //[必须]服务器唯一ID,默认是1,一般取IP最后一段

3、修改从服务器slave:

#vi /etc/my.cnf

[mysqld]

log-bin=mysql-bin  //[不是必须]启用二进制日志

server-id=226      //[必须]服务器唯一ID,默认是1,一般取IP最后一段

4、重启两台服务器的mysql

/etc/init.d/mysql restart

5、在主服务器上建立帐户并授权slave:

#/usr/local/mysql/bin/mysql -uroot -pmttang

mysql>GRANT REPLICATION SLAVE ON *.* to 'mysync'@'%' identified by 'q123456'; //一般不用root帐号,“%”表示所有客户端都可能连,只要帐号,密码正确,此处可

用具体客户端IP代替,如192.168.145.226,加强安全。

6、登录主服务器的mysql,查询master的状态

mysql>show master status;

+------------------+----------+--------------+------------------+

| File            | Position | Binlog_Do_DB | Binlog_Ignore_DB |

+------------------+----------+--------------+------------------+

| mysql-bin.000004 |      308 |              |                  |

+------------------+----------+--------------+------------------+

1 row in set (0.00 sec)

注:执行完此步骤后不要再操作主服务器MYSQL,防止主服务器状态值变化

7、配置从服务器Slave:

mysql>change master to master_host='192.168.145.222',master_user='mysync',master_password='q123456',

master_log_file='mysql-bin.000004',master_log_pos=308;  //注意不要断开,308数字前后无单引号。

Mysql>start slave;    //启动从服务器复制功能

8、检查从服务器复制功能状态:

mysql> show slave status\G

*************************** 1. row ***************************

Slave_IO_State: Waiting for master to send event

Master_Host: 192.168.2.222  //主服务器地址

Master_User: mysync  //授权帐户名,尽量避免使用root

Master_Port: 3306    //数据库端口,部分版本没有此行

Connect_Retry: 60

Master_Log_File: mysql-bin.000004

Read_Master_Log_Pos: 600    //#同步读取二进制日志的位置,大于等于Exec_Master_Log_Pos

Relay_Log_File: ddte-relay-bin.000003

Relay_Log_Pos: 251

Relay_Master_Log_File: mysql-bin.000004

Slave_IO_Running: Yes    //此状态必须YES

Slave_SQL_Running: Yes    //此状态必须YES

......

注:Slave_IO及Slave_SQL进程必须正常运行,即YES状态,否则都是错误的状态(如:其中一个NO均属错误)。

以上操作过程,主从服务器配置完成。

9、主从服务器测试:

主服务器Mysql,建立数据库,并在这个库中建表插入一条数据:

mysql> create database hi_db;

Query OK, 1 row affected (0.00 sec)

mysql> use hi_db;

Database changed

mysql>  create table hi_tb(id int(3),name char(10));

Query OK, 0 rows affected (0.00 sec)

mysql> insert into hi_tb values(001,'bobu');

Query OK, 1 row affected (0.00 sec)

mysql> show databases;

+--------------------+

| Database          |

+--------------------+

| information_schema |

| hi_db                |

| mysql                |

| test                |

+--------------------+

4 rows in set (0.00 sec)

从服务器Mysql查询:

mysql> show databases;

+--------------------+

| Database              |

+--------------------+

| information_schema |

| hi_db                |      //I'M here,大家看到了吧

| mysql                |

| test          |

+--------------------+

4 rows in set (0.00 sec)

mysql> use hi_db

Database changed

mysql> select * from hi_tb;          //查看主服务器上新增的具体数据

+------+------+

| id  | name |

+------+------+

|    1 | bobu |

+------+------+

1 row in set (0.00 sec)

10、完成:

编写一shell脚本,用nagios监控slave的两个yes(Slave_IO及Slave_SQL进程),如发现只有一个或零个yes,就表明主从有问题了,发短信警报吧。

授权的语句:

grant all privileges on *.* to root@'%' with grant option;

create user admin;

grant all privileges on *.* to admin@'%' with grant option;

flush privileges;

从服务器“read_only=1”只读模式开启的解锁命令为设定“read_only=0”;设定全局锁“flush tables with read lock;”,对应的解锁模式命令为:“unlock tables;”

set global read_only=1;####给从服务器设置只读

set global read_only=0;####取消设置只读属性

上一篇下一篇

猜你喜欢

热点阅读