环境准备:
系统版本:CentOS release 6.8 (Final) 初始化完成
MySQL版本:mysql5.6.30
MySQL源码下载地址:https://dev.mysql.com/get/Downloads/MySQL-5.6/mysql-5.6.30-linux-glibc2.5-i686.tar.gz
安装流程:
- 下载软件包:
wget https://dev.mysql.com/get/Downloads/MySQL-5.6/mysql-5.6.30-linux-glibc2.5-i686.tar.gz - 删除原来的mysql以及相关文件:
rpm -e --nodeps mysql
find / -name mysql -> 将查找到的文件全部删除
whereis mysql -> 将查找到的文件全部删除 - 安装前准备工作:
3.1 创建MySQL用户组和MySQL用户:
检查系统本身是否有mysql用户和组,没有则进行创建:
~]# cat /etc/passwd | grep mysql
~]# cat /etc/group | grep mysql
~]# groupadd mysql
~]# useradd -g mysql -s /sbin/nologin mysql
4.开始安装:
4.1 将下载的软件包解压到指定路径:
~]# tar -zxvf mysql-5.6.30-linux-glibc2.5-i686.tar.gz -C /usr/local/
4.2 将解压好的文件夹进行改名:
~]# mv /usr/local/mysql-5.6.30-linux-glibc2.5-i686 /usr/local/mysql
4.3 授权:
~]# chown -R mysql:mysql /usr/local/mysql/
5.MySQL初始化:
mysql]# ./scripts/mysql_install_db --datadir=/usr/local/mysql/data/ --basedir=/usr/local/mysql/ --user=mysql
注意所在位置,否则会报 FATAL ERROR: Could not find ./bin/my_print_defaults 错误,原因为按照安装脚本要求需要在当前路径下的bin目录中的my_print_defaults文件,如果未在mysql的安装路径下执行这条命令就无法找到需要的文件。
执行过程中可能出错,报缺少相关包的错误,按要求安装即可。
初始化完成,在/usr/local/mysql 下会再生成一个数据库配置文件my-new.cnf,和原配置文件my.cnf没有区别使用原文件即可。
6.后续操作:
6.1 配置MySQL开机自启:
support-files]# ln -s ./mysql.server /etc/init.d/mysqld
support-files]# chkconfig mysqld on
6.2 将mysql命令加入/usr /bin:
bin]# ln -s ./mysql /usr/bin/mysql
6.3 登入数据库并修改密码:
~]# /etc/init.d/mysqld start
至此二进制包安装MySQL完成。
基于GTID的主从复制:
1. 环境准备:
操作系统:CentOS release 6.8 (Final)
MySQL版本:5.6.30(二进制安装)
IP | 角色 | 端口 |
192.168.1.250 | master | 3306 |
192.168.1.251 | slave | 3306 |
2. 文件位置:
二进制安装,配置文件my.cnf路径:/usr/local/mysql/my.cnf
3. 开始配置:
##### 3.1 修改两台主机的hosts文件:
~]# vim /etc/hosts
192.168.1.250 masterb
192.168.1.251 slaveb
##### 3.2 修改两台主机的MySQL配置文件:
~]# vim /usr/local/mysql/my.cnf
basedir = /usr/local/mysql
datadir = /usr/local/mysql/data
port = 3306
server_id = 1
autocommit=1
log-bin=mysql-bin
binlog_format=row
gtid_mode=ON
enforce_gtid_consistency=1
log-slave-updates
主从都要进行此修改,注意二者服务器标识不同
##### 3.3 保存后重启数据库:
~]# /etc/init.d/mysql restart
Shutting down MySQL............ SUCCESS!
Starting MySQL.. SUCCESS!
##### 3.4 主库授权:
mysql> grant replication slave,reload,super on . to slave@'192.168.1.%' identified by '1234';
mysql> flush privileges;
##### 3.5 从库更改从属关系:
mysql> change master to
-> master_host="192.168.1.250",
-> master_port=3306,
-> master_user="slave",
-> master_password="1234",
-> master_auto_position=1;
mysql> start slave; ##从库启动slave
mysql> show slave status G;
Slave_IO_Running: Yes
Slave_SQL_Running: Yes -> 主从配置成功
如果是克隆方式需要注意修改/usr/local/mysql/data/auto.cnf 中的uuid
4. 测试:
主库建表并插入数据:
mysql> create table t2(id int);
Query OK, 0 rows affected (0.03 sec)
mysql> insert into t1 values (1);
Query OK, 1 row affected (0.01 sec)
从库可以查询到: