准备环境:两台虚拟机安装mysql
服务机192.168.110.198从库
客户机192.168.110.160主库
服务机配置:
关闭防火墙和沙盒
systemctl stop firewalld.service
setenforce 0
下载解压mysql 包有安装包 拖进去就行
unzip AliSQL-AliSQL-5.6.32-9.zip
下载依赖包
yum -y install cmake bison git ncurses-devel gcc gcc-c++
注意:如果这里报错,显示另一个进程被占用 则使用这个命令把进程杀掉就行 这个是报错显示内容:
命令:rm -f /var/run/yum.pid
4.添加用户
groupadd mysql
useradd -g mysql mysql
5.下载perl并解压
wget http://repo.openfusion.net/centos7-x86_64//perl-Data-Dumper-2.154-1.of.el7.x86_64.rpm
rpm -ivh http://repo.openfusion.net/centos7-x86_64//perl-Data-Dumper-2.154-1.of.el7.x86_64.rpm
切换到目录,编译安装
cd AliSQL-AliSQL-5.6.32-9/
cmake -DCMAKE_INSTALL_PREFIX=/data/server/mysql -DMYSQL_UNIX_ADDR=/data/server/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/server/mysql/data -DMYSQL_TCP_PORT=3306 -DMYSQL_USER=mysql -DENABLE_DOWNLOADS=1
make && make install
7.AliSQL修改目录主权限
chown -R mysql:mysql /data/server/mysql
8.修改完成后,切换到mysql下
复制文件,并给权限
cd /data/server/mysql
cp support-files/my-default.cnf ./my.cnf
chown -R mysql:mysql my.cnf
配置文件vim my.cnf 在脚本末尾添加 切记不要打错 我打的时候把data打成dat ,所以启动的时候失败 以下标黄处就是
basedir = /data/server/mysqldatadir = /data/server/mysql/datasocket = /data/server/mysql/mysql.socklog-error = /data/server/mysql/data/error.logpid-file = /data/server/mysql/data/mysql.piduser = mysqltmpdir = /tmp
basedir = /data/server/mysql
datadir = /data/server/mysql/data
socket = /data/server/mysql/mysql.sock
log-error = /data/server/mysql/data/error.log
pid-file = /data/server/mysql/data/mysql.pid
user = mysql
tmpdir = /tmp
注意这里的 data 少打了一个字母a
10.数据库初始化
scripts/mysql_install_db --defaults-file=./my.cnf --user=mysql
11.cd切换到support-files中
cd /support-files
12.启动数据库,启动后会有报错
./mysql.server start
解决报错方法如下
rm -rf /etc/my.cnf
cd /data/server/mysql
rm -rf my.cnf
cd data
rm -rf *
cd /data/server/mysql/
scripts/mysql_install_db --defaults-file=./my.cnf --user=mysql
cd support-files
./mysql.server start 开启mysql
切换到/bin目录下,重启数据库
cd /data/server/mysql/bin
./mysql –u root –p 记得这里“.”前面不能有空格
按回车后进入交互界面 密码不用敲 直接按enter回车就行
14.安装ntp服务 yum install ntp ntpdate -y
15.修改ntp.conf配置文件,restrict前去掉注释,server后地址为服务端地址192.168.110.198
16.启动ntp服务 service ntpd start
最好是使用systemctl start ntpd
17.在系统引导的时候自动启动,执行
service ntpd startchkconfig ntpd on
以上操作是错误的,应该是
systemctl enable ntpd.service
18.检查时间服务器是否正确同步
客户机配置
在客户机做以下步骤之前必须先安装mysql!!!! 跟服务机前面的步骤是一样的,直到NTP这里
关闭防火墙和沙盒
systemctl stop firewalld
setenforce 0
2.客户端安装ntp服务
yum install ntp ntpdate -y
在客户机配置ntp.conf文件,restrict前去掉注释,server后面IP地址为客户端地址192.168.110.160
在客户机手动同步时间 IP为服务机的IP
Ntpdate 192.168.110.198
5.在客户机进行 Master主库配置。 注意我把客户机定为了主库,服务机定为了从库
切换到mysql下
进入配置文件添加
第7行
6.切换到support-files,重启mysql
cd /data/server/mysql/support-files/ ./mysql.server restart
7.切换到mysql/bin下进入mysql 注意配置的时候我把客户机设为主库,服务机设为从库了
新建用于主从同步的用户zc,允许登录从库为服务机里的“192.168.110.198”此处为服务机的IP
cd /data/server/mysql/bin
./mysql -u root -p
create user zc
@192.168.110.198
identified by ‘123’; 此处也是服务机的IP
grant replication slave on . to zc
@192.168.110.198
; 此处也是服务机的IP
注意这里的用户是zc 不是zs 图片里的错误打的时候忽略掉就行
如果此处创建用户失败 234则先刷新再建; 要是还报错则删除再刷新再创建,如下:
在客户机里给从库账号授权,说明给zc从库复制的权限,在192.168.110.198
grant replication slave on . to zc
@192.168.110.198
;
与第6点一样 ,第6题我把上图给截取出来了
检查主库创建的复制账号
select user,host from mysql.user;
检查主库状态
show master status;
exit退出
注意从这儿开始去服务机操作 ,以下操作都是在服务机进行的。
去服务机里进行Slave从库配置
切换路径 cd … 进入到mysql 中
然后编辑配置文件
设置server-id值,关闭binlog功能参数
修改slave的/etc/my.cnf,写入
修改保存后,切换到support-files,重启数据库
cd support-files
./mysql.server restart
进入数据库检查各项参数
cd ..
cd bin/
./mysql -u root -p
show variables like 'log_bin';
show variables like 'server_id';
配置复制参数,Slave从库连接Master主库的配置(分别为主库ip、库名、密码、配置参数、状态值,这里是客户机IP,因为我把客户机定为了主库)
开始 以下这个是个小知识点儿 记住就行 可忽略
在mysql数据库里面注意如果要继续打,继续操作,最后不要写分号,写逗号。
例如:
你看这里写的是分号,结果就结束了
你看这里写的是逗号,结果就出来下一行让继续敲了停止
从这里继续
>change master to master_host=’192.168.110.160’,主客ip
>master_user=’zc’,
>master_password=’123’,
>master_log_file=’mysql-bin.000001’,1
>master_log_pos=435;2
以下是排错
上面配置的数据是错误的,当时做的时候不太懂,应该要匹配到master
这里的引号都是单引号,没有反撇号
如果这里配置错了,可以采用以下这个方法:
错误点:Master Slave 主从同步错误
Slave_IO_Running:NO
Slave_SQL_Running:Yes
排错的方法:
#在Slave库上查看状态
mysql> show slave status\G
Slave_IO_Running: No
Slave_SQL_Running: Yes
#重启master库:service mysqld restart
mysql> show master status;
±-----------------±---------±-------------±-----------------+
| File | Position | Binlog_Do_DB | Binlog_Ignore_DB |
±-----------------------±-------------±-------------±-----------------+
| mysql-bin.000534 | 14670663 | | |
±-----------------------±-------------±-------------±-----------------+
mysql> stop slave;
mysql> change master to Master_Log_File=‘mysql-bin.000001’,Master_Log_Pos=98;
mysql> start slave;
mysql> show slave status\G
Slave_IO_Running: Yes
Slave_SQL_Running: Yes
以上是排错
启动从库的同步开关,测试主从复制情况
查看从库的状态
show slave status\G
进行测试:
在客户机主库里创建或删除文件 去服务机从库里去查看是否创建或删除成功
具体操作格式如下:
主库创建数据库文件:create database 文件名
去从库查看:show databases;
如需删除该文件 ,进入主库:drop database 文件名
主机从机查看show databases;
以下为创建文件 wxy:
主库:Create database wxy;
从库:show databases;
以下为删除文件wxy:
主库删除:drop database wxy
并产看:show databases;
去从库检查是否同步删除:
Show databases;
Mysql 主从复制验证成功。