参考博客

1.mysql数据库的安装

centos7如何安装mysql
1.yum安装
1.1首先配置yum源,然后再用yum进行安装
2. 源代码编译安装
3.rpm包安装 yum安装的前提条件,是准备好yum源,可以选择163源,清华源,阿里云源,等等等 1.安装mariadb的yum源有俩
一个是阿里云的yum源,可能版本较低,并且软件包很小,功能很少
二个是mariadb官方的yum源 yum源的配置方式是什么?就是如何定制yum源?
方法:在/etc/yum.repos.d目录下,建立一个repo文件就是yum仓库
创建一个 mariadb.repo文件,写入如下内容
[mariadb]
name = MariaDB
baseurl = http://yum.mariadb.org/10.1/centos7-amd64
gpgkey=https://yum.mariadb.org/RPM-GPG-KEY-MariaDB
gpgcheck=1 配置好yum源后进行安装
yum install mariadb-server mariadb -y 2.安装mariadb,查看官方的版本号,和软件包信息,启动数据库 systemctl start mariadb #启动mariadb数据库 3.在启动好mysql之后,进行初始化
mysql_secure_installation

2.mysql数据库编码的设置

1.查看数据库编码  /s

2.进行mysql数据库编码统一,修改/etc/my.cnf配置如下 [mysqld] character-set-server=utf8
collation-server=utf8_general_ci
log-error=/var/log/mysqld.log datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
# Disabling symbolic-links is recommended to prevent assorted security risks
symbolic-links=0
# Settings user and group are ignored when systemd is used.
# If you need to run mysqld under a different user or group,
# customize your systemd unit file for mariadb according to the
# instructions in http://fedoraproject.org/wiki/Systemd [mysqld_safe]
log-error=/var/log/mariadb/mariadb.log
pid-file=/var/run/mariadb/mariadb.pid [client]
default-character-set=utf8
[mysql]
default-character-set=utf8

3.数据库授权进行远程登录

授权mysql进行远程登录

1.#授予   所有权限      在    所有的库下的所有的表   对   root 用户  以及所有的主机,设置远程登录的密码  111111
grant all privileges on *.* to root@"%" identified by "111111"; 2.#立即刷新权限表
flush privileges;

4.mysql主从复制(面试)

主从复制技术,保证了,数据库的读写分离,并发性更好,
并且保障数据安全,防止单点数据库故障数据丢失 MySQL主从复制集群功能使得MySQL数据库支持大规模高并发读写成为可能,且有效的保护了服务器宕机的数据备份。

5.mysql主从复制原理

1.master主库的所有SQL变动操作都记录在一个binlog日志中(一个二进制文件)

2.slave从库和master主库建立连接,就是从库开启一个线程去读取binlog日志中的sql变动

3.如果从库检测slave检测到主库有SQL变动,就再开启一个线程将主库SQL的变动写入到自己本地的中继日志(relay.log)当中

4.salve从库将自己的中继日志记录转化为SQL,自己在执行一遍,使从库与主库的数据一致

6.mysql主从库配置流程如下

mysql主从配置流程如下
环境准备,准备2台服务器,安装好2个数据库
192.168.226.128 是主库
192.168.226.130 是从库 主库配置
编辑主库的/etc/my.cnf 写入如下配置 [mysqld]
  server-id=1
  log-bin=s18mysql-bin #s18mysql是日志的名字 2.改了配置文件,重启数据库
systemctl restart mariadb 3.登录数据库,创建一个用于远程复制数据的账户
create user 'yazhou'@'%' identified by 'yazhouhao'; 4.授予yazhou这个账号,从库的身份
grant replication slave on *.* to 'yazhou'@'%'; #立即刷新权限表
flush privileges; 5.锁住主库,防止数据写入,保证主从库数据一致,如果配置的时候没有人写入数据,可以不写 (可写可不写,如果写了,必须执行第9步进行解锁)
flush table with read lock; 6.登出数据库,导出当前所有的数据,发送给从库
mysqldump -uroot -p --all-databases > /opt/all.sql 7.发送这个数据给从库
scp /opt/all.sql root@192.168.226.130:/opt/ #192.168.22.130为从库ip 8.登录主库数据库,查看主库的binlog状态
show master status; 9.进行解锁
unlock table; 查看slave从库的配置如下:
1.登录从库数据库,修改从库的配置文件/etc/my.cnf
在[mysqld]下写入如下配置
server-id=10
  重启数据库 systemctl restart mariadb
2.导入主库的数据库
#导入数据的第一种方式
登出数据库,然后
mysql -uroot -p < /opt/all.sql
#导入数据的第二种方式
先登录从库mysql
然后
source /opt/all.sql; 3.此时主从数据库已经在同一个起始点了,开始数据同步

这是一段sql语句,在从库mysql中执行的
change master to master_host='192.168.226.128',#192.168.226.128主库的ip
master_user='yazhou', #主库授权的用户
master_password='yazhouhao',
master_log_file='s18mysql-bin.000001', #主库binlog状态信息里面的信息
master_log_pos=709; #主库binlog状态信息里面的信息 4.开启从库同步(在从库mysql中输入的命令)
start slave ; 5.检测是否主从成功 ,
show slave status\G
检查这2个参数
Slave_IO_Running: Yes
Slave_SQL_Running: Yes

6.此时主从数据库配置完成,已经可以在主库写入数据,从库实时写入了,但是从库权限太大,不止能读主库数据,还能给从库数据库写入数据,所以需要配置读写分离(第7步) 7.配置mysql主从复制,读写分离 修改从库的/etc/my.cnf 添加只读参数
在[mysqld]下面写入如下
read-only=true 8.在主库上创建一个普通用户,在从库上进行登录,查看是否可以读写数据库
create user "ywy"@"%" identified by "ywyacd"; 9.给这个普通用户查看数据库的权限
grant select on *.* to ywy@"%" ;
刷新权限

linux下的mysql数据库以及mysql主从复制的更多相关文章

  1. linux下使用crontab定时备份MYSQL数据库的方法:

    摘要 linux下使用crontab定时备份MYSQL数据库的方法: 只需按照下面3步做,一切都在你的掌控之下: 第一步:在服务器上配置备份目录代码: ------------------------ ...

  2. Linux下安装配置与使用MySQL数据库

    Linux下安装配置与使用MySQL数据库 在Linux下安装做开发时往往少不了要使用到MySQL数据库,下面就Linux系统为例讲解一下,如何安装MySQL数据库,如何启用/停.止MySQL服务,如 ...

  3. Linux下定时备份数据库

    linux下使用crontab定时备份MYSQL数据库的方法只需按照下面3步做,一切都在你的掌控之下: 第一步:在服务器上配置备份目录代码: mkdir /var/lib/mysqlbackup cd ...

  4. 【MySQL 数据库】MySQL目录

    目录 [第一章]MySQL数据概述 [第二章]MySQL数据库基于Centos7.3-部署 [MySQL解惑笔记]Centos7下卸载彻底MySQL数据库 [MySQL解惑笔记]忘记MySQL数据库密 ...

  5. Mysql数据库知识-Mysql索引总结 mysql mysql数据库 mysql函数

    mysql数据库知识-Mysql索引总结: 索引(Index)是帮助MySQL高效获取数据的数据结构. 下边是自己整理的资料与自己的学习总结,,做一个汇总. 一.真的有必要使用索引吗? 不是每一个性能 ...

  6. Linux下用到数据库sqlite3

    最近在Linux下用到数据库sqlite3,于是开始了该方面的学习. 0. 引言 我们这篇文章主要讲述了如何在C/C++语言中调用 sqlite 的函数接口来实现对数据库的管理, 包括创建数据库.创建 ...

  7. plsql 连接 虚拟机Linux下的Oracle数据库 失败

    plsql 连接 虚拟机Linux下的Oracle数据库 失败2017年09月09日 09:10:23 守望dfdfdf 阅读数:187 标签: oraclelinux 更多个人分类: 工具 软件编辑 ...

  8. linux下重启oracle数据库

    如何在linux下重启oracle数据库 | 浏览:3930 | 更新:2013-09-18 19:33 1 2 3 4 5 6 分步阅读 在实际工作项目中,有时候会遇到需要对oracle数据库进行重 ...

  9. windows下plsql连接linux下的oracle数据库

    windows下plsql连接linux下的oracle数据库 经过多方查找,终于找到解决办法,特此记录下来,共享之. PL/SQL Develorper:目前未发现可以在Linux系统中安装的版本. ...

随机推荐

  1. 说出 5 个 JDK 1.8 引入的新特性?

    Java 8 在 Java 历史上是一个开创新的版本,下面 JDK 8 中 5 个主要的特性: Lambda 表达式,允许像对象一样传递匿名函数 Stream API,充分利用现代多核 CPU,可以写 ...

  2. 学习GlusterFS(八)

    GlusterFS集群创建 一.简介 GlusterFS概述 Glusterfs是一个开源的分布式文件系统,是Scale存储的核心,能够处理千数量级的客户端.在传统的解决 方案中Glusterfs能够 ...

  3. 【Linux-vim】vim文件:查看某几行,把某几行复制到另一个文件中

    一.查看文件的某几行1.使用cat命令(1)查看文件的前10行: cat filename |head -n 10(2)查看文件后10行: cat filename |tail -n 10(3)查看文 ...

  4. AWS 6R

    "The 6 R's": 6 Application Migration Strategies "The 6 R's": 6 Application Migra ...

  5. javascript新手实例1-DOM基本操作

    学习javascript好多同学不知道怎么上手,跟着网上的新手教程做了一遍又觉得javascript很简单,但是真正自己用起来又觉得写不出什么东西,我觉得学习最好的方法就是跟着有趣的例子做,所以我们的 ...

  6. 微信小程序 MinUI 组件库系列之 price 价格组件

    MinUI 是基于微信小程序自定义组件特性开发而成的一套简洁.易用.高效的组件库,适用场景广,覆盖小程序原生框架.小程序组件化框架等,并且提供了高效的命令行工具.MinUI 组件库包含了很多基础的组件 ...

  7. Idea运行时Scala报错Exception in thread "main" java.lang.NoSuchMethodError:com.google.common.base.Preconditions.checkArgument(ZLjava/lang/String;Ljava/lang/Object;)V

    一.情况描述 使用idea +scala+spark,运行程序代码如下: package cn.idcast.hello import org.apache.spark.rdd.RDD import ...

  8. C++中的算法头文件<algorithm>,<numeric>和<functional>

    算法部分主要由头文件<algorithm>,<numeric>和<functional>组成.<algorithm>是所有STL头文件中最大的一个,它是 ...

  9. Node的重要性

    一. 为什么要学Node 1. 是自己更全面, 有大局观 2. 提升话语权 3. 升职加薪的筹码 二. Node的作用和应用 1. 脱离浏览器运行 js 2. 后台API编写 3. webpack, ...

  10. oracle 11g rac集群 asm磁盘组增加硬盘

    创建asm磁盘的几种方式 创建asm磁盘方式很多主要有以下几种 1.Faking方式 2.裸设备方式 3.udev方式(它下面有两种方式) 3.1 uuid方式 3.2 raw方式(裸设备方式) 4. ...