热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

从安装MySQL到搭建主从服务器的步骤

MySQL安装方式一:一、rpm包1、wgethttp://repo.mysql.com/mysql-community-release-el7-5.noarch.rpm(

MySQL安装方式一:
一、rpm包
1、wget http://repo.mysql.com/mysql-community-release-el7-5.noarch.rpm(下载rpm
2、rpm -ivh mysql-community-release-el7-5.noarch.rpm(安装rpm包)
3、yum install mysql-server (安装)

二、操作MySQL
1、service mysql start(启动数据库)
2、service mysql status(查看数据库状态)
3、mysql -u root -p(登录数据库,密码为空)
4、GRANT ALL PRIVILEGES ON . TO ‘root’@’%’ IDENTIFIED BY ‘password’ WITH GRANT OPTION;
5、flush privileges; (赋值权限)

MySQL安装方式二:
一.系统环境(阿里云ECS服务器CentOs7.4)
若不清楚版本可用命令查看

[root@wcy ~]# lsb_release -a
LSB Version::core-4.1-amd64:core-4.1-noarch
Distributor ID:CentOS
Description:CentOS Linux release 7.4.1708 (Core)
Release:7.4.1708
Codename:Core

二.删除原来的数据库

//查询已安装的mariadb
[root@wcy ~]# rpm -qa|grep mariadb
mariadb-libs-5.5.56-2.el7.x86_64 //文件名
//卸载mariadb,文件名为上述命令查询出来的文件
[root@wcy ~]# rpm -e --nodeps mariadb-libs-5.5.56-2.el7.x86_64

三、下载与安装MySQL
1.安装MySQL官方的yum repository

[root@wcy ~]# wget -i -c http://dev.mysql.com/get/mysql57-community-release-el7-10.noarch.rpm

2.下载rpm包

[root@wcy ~]# yum -y install mysql57-community-release-el7-10.noarch.rpm

3.安装MySQL服务
如果是centos8
首先执行:

yum module disable mysql

[root@wcy ~]# yum -y install mysql-community-server

4.启动MySQL服务

[root@wcy ~]# systemctl start mysqld.service

查看启动状态

[root@localhost ~]# systemctl status mysqld.service

安装完成!

四:配置MySQL
1.mysql的几个相关命令

重启:systemctl restart mysqld.service
关闭:systemctl stop mysqld.service

配置开机启动

[root@wcy ~]# systemctl enable mysqld
[root@wcy ~]# systemctl daemon-reload

2.配置文件默认路径

配置文件:/etc/my.cnf
日志文件:/var/log/mysqld.log
服务启动脚本:/usr/lib/systemd/system/mysqld.service
socket文件:/var/run/mysqld/mysqld.pid

3.修改root密码

grep 'temporary password' /var/log/mysqld.log

首次通过初始密码登录后,使用以下命令修改密码

mysql -u root -p
mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY'你的root密码';

4.重新载入

mysql> flush privileges;

5.远程访问

GRANT ALL ON *.* TO'root'@'%' IDENTIFIED BY '你的密码'; //只有执行了这一句才可以远程登陆

注意:如果是阿里云用户注意开放3306或相关端口
6.mysql安装之后默认的字符集是latin,我们修改为UTF-8。可以使用status命令查看。

mysql> status;

输入命令:vim /etc/my.cnf

在最下方追加

[client]
default-character-set = utf8
[mysqld]
character-set-server=utf8
lower_case_table_names = 1
[mysql]
default-character-set=utf8

重启MySQL

systemctl restart mysqld.service

更多

五,防火墙
5.1使用命令查看

systemctl status firewalld

5.2.开启防火墙

systemctl start firewalld.service

5.3.重启防火墙

systemctl restart firewalld.service

5.4.查看firewall防火墙的状态

firewall-cmd --state

5.5.查看防火墙开放端口规则

firewall-cmd --list-port

5.6.查看80端口是否开启

firewall-cmd --query-port=80/tcp

5.7.开放80端口

firewall-cmd --permanent --add-port=80/tcp #(–permanent永久生效,没有此参数重启后就失效)

5.8.加载生效开放的端口
每次修改防火墙,或者修改端口都需要用下面的命令重启防火墙

firewall-cmd --reload

5.9.查询指定端口80是否开放

firewall-cmd --query-port=80/tcp

六,主从服务配置
1.主服务器配置
配置文件默认在/etc/my.cnf下:

vim /etc/my.cnf

在配置文件中新增配置:

[mysqld]
## 同一局域网内注意要唯一
server-id=100
## 开启二进制日志功能,可以随便取(关键)
log-bin=mysql-bin

修改配置后需要重启才能生效:

systemctl restart mysqld.service

重启之后进入mysql:

mysql -uroot -p

在master数据库创建数据同步用户,授予用户 slave REPLICATION SLAVE权限和REPLICATION CLIENT权限,用于在主从库之间同步数据。

CREATE USER 'slave'@'%' IDENTIFIED BY '@#$Rfg345634523rft4fa';

GRANT REPLICATION SLAVE, REPLICATION CLIENT ON *.* TO 'slave'@'%';

语句中的%代表所有服务器都可以使用这个用户,如果想指定特定的ip,将%改成ip即可。

查看主mysql的状态:

show master status;

记录下File和Position的值,并且不进行其他操作以免引起Position的变化。

2.从服务器配置
配置文件默认在/etc/my.cnf下:

vim /etc/my.cnf

在从my.cnf配置中新增:

[mysqld]
## 设置server_id,注意要唯一
server-id=101
## 开启二进制日志功能,以备Slave作为其它Slave的Master时使用
log-bin=mysql-slave-bin
## relay_log配置中继日志
relay_log=edu-mysql-relay-bin

修改配置后需要重启才能生效:

systemctl restart mysqld.service

重启之后进入mysql:

mysql -uroot -p

change master to master_host='192.168.72.140', master_user='slave', master_password='@#$Rfg345634523rft4fa', master_port=3306, master_log_file='mysql-bin.000001', master_log_pos= 617, master_connect_retry=30;

master_host :Master的地址

master_port:Master的端口号

master_user:用于数据同步的用户

master_password:用于同步的用户的密码

master_log_file:指定 Slave 从哪个日志文件开始复制数据,即上文中提到的 File 字段的值

master_log_pos:从哪个 Position 开始读,即上文中提到的 Position 字段的值

master_connect_retry:如果连接失败,重试的时间间隔,单位是秒,默认是60秒

在从mysql中查看主从同步状态:

show slave status \G;

此时的SlaveIORunning 和 SlaveSQLRunning 都是No,因为我们还没有开启主从复制过程。

开启主从复制:

start slave;

再次查看同步状态:

show slave status \G;

SlaveIORunning 和 SlaveSQLRunning 都是Yes说明主从复制已经开启。

若SlaveIORunning一直是Connecting,有下面4种原因:

1、网络不通,检查ip端口

2、密码不对,检查用于同步的用户名和密码

3、pos不对,检查Master的Position

4、mysql8特有的密码规则问题引起:

ALTER USER 'slave'@'%' IDENTIFIED WITH mysql_native_password BY '@#$Rfg345634523rft4fa';

将密码规则修改为:mysql_native_password

如果需要指定想要主从同步哪个数据库,可以在master的my.cnf添加配置:

binlog-do-db:指定mysql的binlog日志记录哪个db

或者在slave的my.cnf添加配置:

replicate-do-db=需要复制的数据库名,如果复制多个数据库,重复设置这个选项即可 replicate-ignore-db=需要复制的数据库名,如果复制多个数据库,重复设置这个选项即可

如果想要同步所有库和表,在从mysql执行:

STOP SLAVE SQL_THREAD;
CHANGE REPLICATION FILTER REPLICATE_DO_DB = ();
start SLAVE SQL_THREAD;

如果以上步骤出现问题,可以查看日志:

/etc/log/mysqld.log

至此完成了mysql8主从同步搭建工作。


推荐阅读
  • 本文档提供了详细的MySQL安装步骤,包括解压安装文件、选择安装类型、配置MySQL服务以及设置管理员密码等关键环节,帮助用户顺利完成MySQL的安装。 ... [详细]
  • PHP网站部署指南:从零开始搭建PHP网站
    本文提供了详细的步骤指导,帮助开发者在不同环境下成功部署PHP网站,包括在IIS和Apache服务器上的具体操作。 ... [详细]
  • 本文详细介绍如何在Spring Boot项目中集成和使用JPA,涵盖JPA的基本概念、Spring Data JPA的功能以及具体的操作步骤,帮助开发者快速掌握这一强大的持久化技术。 ... [详细]
  • 深入探讨Web服务器与动态语言的交互机制:CGI、FastCGI与PHP-FPM
    本文详细解析了Web服务器(如Apache、Nginx等)与动态语言(如PHP)之间通过CGI、FastCGI及PHP-FPM进行交互的具体过程,旨在帮助开发者更好地理解这些技术背后的原理。 ... [详细]
  • 本文介绍了一种有效的方法来监控Web服务器(如Nginx)和数据库服务器(如MySQL)的服务状态,通过端口、进程和服务响应等多种方式确保服务的正常运行。 ... [详细]
  • 本文探讨了在使用Apache Flink向Kafka发送数据过程中遇到的事务频繁失败问题,并提供了详细的解决方案,包括必要的配置调整和最佳实践。 ... [详细]
  • 本文提供了解决在尝试重置MySQL root用户密码时遇到连接失败问题的方法,包括停止MySQL服务、以安全模式启动MySQL、手动更新用户表中的密码等步骤。 ... [详细]
  • 抽象工厂模式 c++
    抽象工厂模式包含如下角色:AbstractFactory:抽象工厂ConcreteFactory:具体工厂AbstractProduct:抽象产品Product:具体产品https ... [详细]
  • 本文探讨了在Node.js环境中如何有效地捕获标准输出(stdout)的内容,并将其存储到变量中。通过具体的示例和解决方案,帮助开发者解决常见的输出捕获问题。 ... [详细]
  • Navicat Premium中MySQL用户管理:创建新用户及高级设置
    本文作为Navicat Premium用户管理系列的第二部分,主要介绍如何创建新的MySQL用户,包括设置基本账户信息、密码策略、账户限制以及SSL配置等。 ... [详细]
  • 圣诞夜的驯鹿之谜:鲁道夫是公是母?
    野生动物专家探讨圣诞老人座驾上的驯鹿性别之谜 ... [详细]
  • 本文详细介绍了Java中的代理模式,包括静态代理、JDK动态代理和Cglib动态代理的实现方式。通过一个火车票销售系统的实例,对比分析了三种代理模式的特点及其应用场景。 ... [详细]
  • J2EE平台集成了多种服务、API和协议,旨在支持基于Web的多层应用开发。本文将详细介绍J2EE平台中的13项关键技术规范,涵盖从数据库连接到事务处理等多个方面。 ... [详细]
  • 微信小程序支付官方参数小程序中代码后端发起支付代码支付回调官方参数文档地址:https:developers.weixin.qq.comminiprogramdeva ... [详细]
  • 酷家乐 Serverless FaaS 产品实践探索
    本文探讨了酷家乐在 Serverless FaaS 领域的实践与经验,重点介绍了 FaaS 平台的构建、业务收益及未来发展方向。 ... [详细]
author-avatar
个信2502907653
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有