参考博客

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. gradle构建scala

    1. 在目录下创建build.gradle文件,内容为: apply plugin: 'idea' apply plugin: 'scala' repositories { mavenLocal() ...

  2. 客户端回调 Watcher ?

    客户端 SendThread 线程接收事件通知,交由 EventThread 线程回调 Watcher. 客户端的 Watcher 机制同样是一次性的,一旦被触发后,该 Watcher 就失效了.

  3. 学习 Haproxy (六)

    HAProxy HAProxy是免费 高效 可靠的高可用及负载均衡解决方案,该软件非常适合于处理高负载站点的七层数据请求,HAProxy的工作模式使其可以非常容易且安全地集成到我们现有的站点架构中.使 ...

  4. Demo示例——Bundle打包和加载

    Unity游戏里面的场景.模型.图片等资源,是如何管理和加载的? 这就是本文要讲的资源管理方式--bundle打包和加载. 图片 Unity游戏资源管理有很多方式: (1)简单游戏比如demo,可以直 ...

  5. Proxy相比于defineProperty的优势

    本文原链接:https://www.jianshu.com/p/860418f0785c https://blog.csdn.net/sinat_17775997/article/details/83 ...

  6. 三种获取数据的方法fetch和ajax和axios

    一 .fetch用法 ( 本人比较喜欢fetch,代码精简,虽说目前axios比较流行,但是fetch很多大厂已经开始用fetch开始封装了, 我觉得以后fetch会取代axios和ajax ) 1. ...

  7. EMS邮件统计

    前提条件:管理员拥有"Organization Management"权限.并且启用邮件跟踪日志. 1.统计时间段内邮件发送情况 案例任务:统计一段时间内服务器"MAIL ...

  8. zabbix 服务器500错误,解决故障。

    ZABBIX 500错误,查看apache错误日志,index.php 32 line.写着语法错误!!! 到路径下打开/var/www/html/zabbix/index.php文件,定位32行,可 ...

  9. Linux上安装RePlace

    RePlAce: Advancing Solution Quality and Routability Validation in Global Placement 项目地址 https://gith ...

  10. 【.NET 6】使用EF Core 访问Oracle+Mysql+PostgreSQL并进行简单增改操作与性能比较

     前言 唠嗑一下.都在说去O或者开源,但是对于数据库选型来说,很多人却存在着误区.例如,去O,狭义上讲,是去Oracle数据库.但是从广义上来说,是去Oracle公司产品或者具有漂亮国垄断地位和需要商 ...