1.msql安装
下载并安装MySQL官方的 Yum Repository
wget -i -c http://dev.mysql.com/get/mysql57-community-release-el7-10.noarch.rpm
yum -y install mysql57-community-release-el7-10.noarch.rpm
yum -y install mysql-community-server
以上步骤 完成mysql的安装。
systemctl start mysqld.service
systemctl status mysqld.service
启动mysql服务和查看运行状态命令
grep "password" /var/log/mysqld.log
使用上边的命令查看安装后mysql首次登录的密码
mysql -uroot -p
登录mysql命令
ALTER USER 'root'@'localhost' IDENTIFIED BY 'new password';
修改数据库密码
grant all privileges on *.* to 'root'@'192.168.0.1' identified by 'password' with grant option;
flush privileges;
开启远程访问。
以上完成了数据库的密码修改和远程登录的相关设置。
修改数据库的编码格式,对/etc/my.cnf文件进行修改,添加
character-set-server=utf8
collation-server=utf8_general_ci
重启数据库,登陆后使用status查看数据库编码格式:
以上完成数据库的编码格式配置。
2.主从复制配置
配置主服务器
修改my.cnf文件。在[mysqld]段下添加:
#要给从机同步的库
binlog-do-db=mytestdb
#不给从机同步的库(多个写多行)
binlog-ignore-db=mysql
binlog-ignore-db=information_schema
binlog-ignore-db=performance_schema
binlog-ignore-db=performance_schema
binlog-ignore-db=sys
#自动清理 7 天前的log文件,可根据需要修改
expire_logs_days=7
# 启用二进制日志
log-bin=mysql-bin
# 服务器唯一ID,一般取IP最后一段
server-id=101
重启mysql服务器
测试log_bin是否成功开启:
mysql> show variables like ‘%log_bin%’;
建立账户并授权slave
mysql>GRANT FILE ON *.* TO 'backup'@'%' IDENTIFIED BY '123456';
mysql>GRANT REPLICATION SLAVE, REPLICATION CLIENT ON *.* to 'backup'@'%' identified by '123456';
查询主服务器的状态:
show master status;
配置从服务器
修改my.cnf文件。在[mysqld]段下添加:
server-id=102
#加上以下参数可以避免更新不及时,SLAVE 重启后导致的主从复制出错。
read_only = 1
master_info_repository=TABLE
relay_log_info_repository=TABLE
在从机上设置从服务器
change master to master_host='10.0.0.7',master_port=3306,master_user='backup',master_password='ABCabc123',master_log_file='mysql-bin.000001',master_log_pos=120;
重启从服务使用show slave status \G查看状态:
以上完成主从复制的配置,若想要多个从数据库重复从服务配置即可。
3.在运行过程中会出现同步错误Slave_SQL_Running:No错误
解决办法:
首先停掉Slave服务:stop slave ;
到主服务器上查看主机状态:
记录File和Position对应的值
进入master
mysql> show master status;
+----------------------+----------+--------------+------------------+
| File | Position | Binlog_Do_DB | Binlog_Ignore_DB |
+----------------------+----------+--------------+------------------+
| localhost-bin.000001 | 151 | | |
+----------------------+----------+--------------+------------------+
1 row in set (0.00 sec)
然后到slave服务器上执行手动同步:
mysql> change master to
> master_host='master_ip',
> master_user='user',
> master_password='password',
> master_port=3306,
> master_log_file='localhost-bin.000001',
> master_log_pos=151,master_auto_position=0;
start slave ;
此时再查看从机:
mysql> show slave status \G
参考链接:
CentOS7安装MySQL(完整版)_24只羊羊羊的博客-CSDN博客