MySQL安装与主从配置
本文仅为记录本人的安装过程
系统:centos7.4
MYSQL:5.7.21
一、设置系统环境
1、关掉服务器(主备两台)的selinux
vim /etc/selinux/config
将其中的SELINUX的值,修改为:disabled,如:

2、关闭防火墙
主备两台都要关闭
systemctl stop firewalld.service
systemctl disable firewalld.service
二、安装mysql
如果是可以联网的话,可以通过在线安装,没有联网的,可以下载rpm的集合包来安装,以下以在线方式安装
(1)下载mysql的安装仓库并安装:
wget https://dev.mysql.com/get/mysql57-community-release-el7-11.noarch.rpm rpm -ivh mysql57-community-release-el7-11.noarch.rpm
(2)安装mysql
yum -y install mysql-server
三、修改配置文件:、/etc/my.conf
内容如下:
[client]
port = 3306
socket = /work/mysql/mysql.sock
[mysqld]
datadir=/work/mysql
socket=/work/mysql/mysql.sock
# Disabling symbolic-links is recommended to prevent assorted security risks
symbolic-links=0
log-error=/work/mysql/mysqld.log
pid-file=/work/mysql/mysqld.pid
# config master for replication start.
log-bin = /work/mysql/binlog/mysql-bin.log
server-id = 128
binlog_format = ROW
binlog-row-image = FULL
binlog_cache_size = 4M
max_binlog_size = 1G
max_binlog_cache_size = 2G
sync_binlog = 0
slave-skip-errors = 1062
expire_logs_days = 3
slave_parallel_workers = 4
# config master for replication end.
将绝色部分替换成你自己的数据目录 即可。
配置最后一段是主从数据中主数据的配置,server-id是用来标识唯一性的,最好直接取当前主机ip的最后几个位数字,这样可以避免server-id重复。
备库的配置如下:
# config slave for replication start. server-id=131 relay-log = /work/mysql/binlog/relaylog max_relay_log_size = 1G relay_log_purge = 1 relay_log_recovery = 1 binlog_checksum = CRC32 slave_allow_batching = 1 master_verify_checksum = 1 binlog_rows_query_log_events = 1 master_info_repository = TABLE relay_log_info_repository = TABLE log_slave_updates sync_binlog = 0 # config slave for replication end.
其它配置同主库一样,也可以自己去调整,通常备库主要用来读,不会去写数据。
四、初始化数据库
mysqld --initialize --datadir=/work/program/mysql --user=mysql
主备数据库都需要先初始化数据库。
datadir是我自己mysql数据库将要放置的目录,你也可以修改自己的目录。
初始化完成后,会在mysql的日志文件中输出一个临时密码,日志大致是这个样子:
[Note] A temporary password is generated for root@localhost: o:uEY62ecdc*
这个密码要记住,第六步需要登录使用,然后修改为自己的密码
五、启动mysql
systemctl start mysqld.service
六、修改mysql默认密码
执行命令如下
mysql -uroot -p //回车后会提示输入密码,然第四步中的密码粘贴过来,然后回车即可 mysql>set password=password('your password'); mysql>quit; //然后用新密码登录即可
在master的服务器上增加一个用于备机同步的数据库用户
GRANT REPLICATION SLAVE ON *.* to 'rep1'@'10.0.30.114' identified by 'rep1';
10.0.30.114是备机的ip地址。增加了同步用户rep1,密码为rep1。
七、设置slave同步参数
(1)查看master的状态
show master status;
mysql> show master status;
+------------------+----------+--------------+------------------+-------------------+
| File | Position | Binlog_Do_DB | Binlog_Ignore_DB | Executed_Gtid_Set |
+------------------+----------+--------------+------------------+-------------------+
| mysql-bin.000005 | 11958906 | | | |
+------------------+----------+--------------+------------------+-------------------+
1 row in set (0.00 sec)
mysql>
上面显示当前bin-log的名字为mysql-bin.000005,当前bindlog的位置position是:11958906
(2)设置slave
mysql> change master to -> master_host='10.0.30.81', -> master_user='rep1', -> master_password='rep1', -> master_port=3306, -> master_log_file='mysql-bin.000005', -> master_log_pos=11958906, -> master_connect_retry=10; mysql> start slave; mysql>set global read_only=1;
设置master的信息,并设置slave为read_only的状态
(3)查看slave的状态

八、一个服务版本my.conf配置
这个版本的配置主要是针对配置8G内存的优化方案,仅供参考
https://files.cnblogs.com/files/cw2030/mysql-master-slve.zip
浙公网安备 33010602011771号