Centos7.0安装Mysql5.7搭建主从数据库
1.安装Mysql5.7数据库
转载至博客
1.1 下载并安装MySQL官方的 Yum Repository
[root@localhost ~]# wget -i -c http://dev.mysql.com/get/mysql57-community-release-el7-10.noarch.rpm`
使用上面的命令就直接下载了安装用的Yum Repository,大概25KB的样子,然后就可以直接yum安装了。
1.2 [root@localhost ~]# yum -y install mysql57-community-release-el7-10.noarch.rpm
之后就开始安装MySQL服务器。
1.3[root@localhost ~]# yum -y install mysql-community-server
这一步花费时间会比较长。
至此MySQL就安装完成了,然后是对MySQL的一些设置。
2.MySQL数据库设置
首先启动MySQL
[root@localhost ~]# systemctl start mysqld.service
查看MySQL运行状态,运行状态如图:
[root@localhost ~]# systemctl status mysqld.service
此时MySQL已经开始正常运行,不过要想进入MySQL还得先找出此时root用户的密码,通过如下命令可以在日志文件中找出密码:
[root@localhost ~]# grep “password” /var/log/mysqld.log
如下命令进入数据库:
[root@localhost ~]# mysql -uroot -p
输入初始密码,此时不能做任何事情,因为MySQL默认必须修改密码之后才能操作数据库:
mysql> ALTER USER ‘root’@‘localhost’ IDENTIFIED BY ‘new password’;
这里有个问题,新密码设置的时候如果设置的过于简单会报错:
原因是因为MySQL有密码设置的规范,具体是与validate_password_policy的值有关:
可以通过如下命令修改:
mysql> set global validate_password_policy=0;
mysql> set global validate_password_length=1;
3.配置主从数据库
安装以后文件对应的目录
mysql的数据文件和二进制文件: /var/lib/mysql/
mysql的配置文件: /etc/my.cnf
mysql的日志文件: /var/log/mysql.log
上面步骤在两台centos上面分别安装mysql
我把IP为172.168.232.140 为master
- 创建一个用户’repl’,并且允许其他服务器可以通过该用户远程访问master,通过该用户去读取二进制数据,实现数据同步
mysql> Create user repl identified by ‘repl;
repl用户必须具有REPLICATION SLAVE权限,除此之外其他权限都不需要
mysql> GRANT REPLICATION SLAVE ON . TO ‘repl’@’%’ IDENTIFIED BY ‘repl’ ; - 修改140 my.cnf配置文件,在[mysqld] 下添加如下配置 /etc/my.cnf
log-bin=mysql-bin //启用二进制日志文件
server-id=130 服务器唯一ID
- 重启数据库 systemctl restart mysqld
- 登录到数据库,通过show master status 查看master的状态信息
172.168.232.142 为slave 连接到slave数据库做如下配置 - 修改142 my.cnf配置文件, 在[mysqld]下增加如下配置
server-id=132 服务器id,唯一
relay-log=slave-relay-bin
relay-log-index=slave-relay-bin.index
read_only=1 - 重启数据库: systemctl restart mysqld
- 连接到数据库客户端,通过如下命令建立同步连接
mysql> change master to master_host=’192.168.11.140’, master_port=3306,master_user=’repl’,master_password=’repl’,master_log_file=’mysql-bin.000002’,master_log_pos=1415;
加粗部分从master的show master status可以找到对应的值,不能随便写。 - 执行 start slave
10.mysql> show slave status\G;查看slave服务器状态,当如下两个线程状态为yes,表示主从复制配置成功
Slave_IO_Running=Yes
Slave_SQL_Running=Yes
以上步骤完成主从Mysql的搭建,你在master上面新建数据库和表之后都会自动同步到slave节点的数据库。