Centos6.7搭建mysql5.7数据库主从
- 搭建数据库提前准备环境
1、修改服务器的openfles数量为65536
echo ulimit -n 65536 >>/etc/profile
source /etc/profile
2、关闭selinux
vi /etc/selinux/config
enforcing改为disabled
然后重启机器
ulimit -a
getenforce
- 安装mysql数据库
链接:https://pan.baidu.com/s/1DL7SfK6kxBFpfwqbIEVOKg
提取码:iggu
链接:https://pan.baidu.com/s/1U-lCpEX5-_rZzSMJj7Zduw
提取码:4o4v
链接:https://pan.baidu.com/s/1WHB5ayAGGVrbvmVvvuooBg
提取码:tx72
- 上传安装包至/opt目录下并安装
安装/opt/libaio/下的rpm包
rpm -ivh libaio-0.3.107-10.el6.x86_64.rpm
rpm -ivh numactl-2.0.9-2.el6.x86_64.rpm
2、创建mysql用户组和用户
groupadd mysql
useradd -r -g mysql -s /bin/false mysql
3、cd /opt解压
tar zxf mysql-5.7.27-linux-glibc2.12-x86_64.tar.gz
移动位置
mv mysql-5.7.27-linux-glibc2.12-x86_64 /usr/local
- 安装数据库
cd /usr/local
建立软连接
ln -s mysql-5.7.27-linux-glibc2.12-x86_64 mysql
创建数据文件夹
mkdir -p /data/mysql
mkdir -p /data/mysql/data
mkdir -p /data/mysql/logs
对数据文件夹更换所有者,并授权750
chown -R mysql:mysql /data/mysql
chmod -R 750 /data/mysql
- 配置my.cnf文件,详见连接。
- 初始化数据库mysql
cd /usr/local/mysql
bin/mysqld --initialize --user=mysql
查看并记录root的临时密码
cat /data/mysql/logs/error.log | grep password
复制mysql的命令到/bin
cp /usr/local/mysql/bin/* /bin
临时启动mysql
bin/mysqld_safe --user=mysql &
打开另一个终端,登录并修改密码
mysql -uroot -p
输入临时密码
修改密码
ALTER USER 'root'@'localhost' IDENTIFIED BY '9KDJyS*&YfilRXeP';
开启远程访问限制
use mysql
update user set host='%' where user='root';
flush privileges;
- 注册mysqld服务
cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqld
- 查看服务状态
service mysqld status
- 设置开机启动
chkconfig mysqld on
同上安装两台
安装mysql主从
1、主(登录本机操作)创建用于备份的用户:
grant replication slave on *.* to 'backup'@'%' identified by 'Back#20200315';
flush privileges;
2、配置主库/etc/my.cnf文件
增加如下配置
server-id=1
expire_logs_days=30
binlog-ignore-db=mysql
binlog-ignore-db=information_schema
binlog-ignore-db=performance_schema
binlog-ignore-db=sys
max_binlog_size=1024M
transaction-isolation=READ-COMMITTED
binlog_cache_size=1M
sync_binlog=1
innodb_flush_log_at_trx_commit=1
innodb_support_xa=1
3、重启mysql
4、.查看主服务器状态
show master status;
记录下File 和Position的值
5、修改配置文件/etc/my.cnf
增加如下配置
replicate-ignore-db=mysql
replicate-ignore-db=sys
replicate-ignore-db=performance_schema
replicate-ignore-db=information_schema
server-id=2
relay-log-recovery=1
relay_log_info_repository=TABLE
read_only=1
6、配置主从复制
change master to master_host='192.158.49.168', master_user='backup',master_port=3307, master_password='Back#20200315', master_log_file='mysql-bin.000003', master_log_pos=154;
其中主库IP:master_host,主库用户及密码:master_user,master_password,根据实际情况而定。
master_log_file及master_log_pos填写上面查询记录的值
7、启动主从复制
mysql> start slave;
8、查看从服务器状态
mysql> show slave status\G
Slave_IO_Running: Yes(网络正常);
Slave_SQL_Running: Yes(表结构正常)
- 测试是否生效
主库创建test库
create database test;
use test;
CREATE TABLE `myTest` (
`id` INT( 5 ) UNSIGNED NOT NULL AUTO_INCREMENT ,
`username` VARCHAR( 20 ) NOT NULL ,
`password` CHAR( 32 ) NOT NULL ,
`last_update` DATETIME NOT NULL ,
`number` FLOAT( 10 ) NOT NULL ,
`content` TEXT NOT NULL ,
PRIMARY KEY ( `id` )
从库查看
show databases;