Linux:MySQL(mariadb) + mysql 的主从复制

MySQL(分支mariadb)

MariaDB数据库管理系统是MySQL的一个分支,主要由开源社区在维护,采用GPL授权许可。

开发这个分支的原因之一是:甲骨文公司收购了MySQL后,有将MySQL闭源的潜在风险,因此社区采用分支的方式来避开这个风险。

MariaDB的目的是完全兼容MySQL,包括API和命令行,使之能轻松成为MySQL的代替品。

 

1、linux中安装的方式

  • yum安装
  • 源码编译安装
  • 下载 rpm 安装

 

 2、yum安装和源码编译安装的区别?

  • 路径区别-yum安装的软件是他yum自己自定义的;源码安装的软件./configure --preifx=软件安装的绝对路径
  • yum仓库的软件,版本可能比较低,而源码编译安装,版本可控
  • 编译安装的软件,支持第三方功能扩展./configure 这里可以加上很多参数,定制功能

 

3、yum仓库的区别?

  • 阿里云的 yum 仓库,有时候更新不及时,版本可能会低
  • 假设mysql官网,也会提供 rpm 包,源码包,以及 yum 源,供给下载

 

'''
注意点:阿里云提供的yum仓库,和epel源仓库,它也有mariadb,但是版本可能会很低

这个是yum默认的mariadb的版本信息
mariadb   x86_64     1:5.5.60-1.el7_5   base    8.9 M

那我们就得选用mariadb的官方yum源
'''

一、yum 安装 mariadb

Red Hat Enterprise Linux/CentOS 7.0 发行版已将默认的数据库从 MySQL 切换到 MariaDB。

方式一:配置 mariadb 的官方 yum 源

该方式功能较齐全,如果用于正式的项目中,一般采用该方式安装高版本的。(由于学习的需要,这里是采用官方yum源安装的)

 

1、配置官方的mariadb的yum源,在路径 /etc/yum.repos.d 中,手动创建 mariadb.repo仓库文件  (此步重要!!!!!!!!!!!)

touch /etc/yum.repos.d/mariadb.repo  # 需要自己创建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

2、通过yum安装 mariadb 软件,安装mariadb服务端和客户端  (由于是国外镜像源,因此下载速度可能很慢)

yum install MariaDB-server MariaDB-client -y      #(官方的是大写)

3、如果下载速度太慢,只是学习使用的话,可以使用阿里云的yum源中的mariadb,但是需要删除 mariadb.repo

rm -rf /etc/yum.repos.d/Mariadb.repo 

# 然后清空yum 缓存 yum clean all

方式二:使用阿里云的 yum 源下载 mariadb

该方式用于下载的 mariadb,版本低,可以用于学习

yum install mariadb-server  mariadb -y     # 阿里云的mariadb包名是小写的,而官方的是大写的!!!!注意的

如果想要卸载阿里云安装的 mariadb,可以采用以下方式:

  linux 下彻底卸载mysql 详解

  linux 中使用命令行卸载 软件

安装后,启动 mariadb 服务端

systemctl  start/stop/restart/status  mariadb   # 启动/关闭/重启/状态
systemctl enable mariadb      # 开机启动 mariadb
systemctl disable mariadb     # 关闭开机自启

开启 mariadb 服务端之后,就可以登录 mysql 了,

mysql -uroot -p

二、MySQL初始化

cd /etc/yum.repos.d/

mysql_secure_installation   # 这条命令可以初始化mysql,删除匿名用户,设置root密码等等....

初始化过程中,会有设置,分别回答 y y n y y 即可

 

初始化过程如下:

 

 

 

三、设置 mysql 中文编码

1、修改 /etc/my.cnf 文件

vi /etc/my.cnf      # 在[mysqld]中添加参数,使得mariadb服务端支持中文

[mysqld]     # 在此位置添加以下两句话
character-set-server=utf8
collation-server=utf8_general_ci

2、重启 mariadb 服务,读取 my.cnf 新配置

systemctl restart mariadb 

3、登录数据库,查看字符编码

mysql -uroot -p 

\s # 该命令查看编码

四、给用户添加权限(包含远程登录)

1、简单的以下mysql 的命令

desc  查看表结构
create database  数据库名
create table  表名
show create  database  库名          查看如何创建db的
show create table 表名;            查看如何创建table结构的

#修改mysql的密码
set password = PASSWORD('redhat');

#创建mysql的普通用户,默认权限非常低
create user chen@'%' identified by 'chen123';

#查询mysql数据库中的用户信息
use mysql;
select host,user,password  from user;

2、给用户添加权限命令

# 语法
grant all privileges on *.* to 账户@主机名;      #对所有库和所有表授权所有权限

#示例
grant all privileges on *.* to chen@'%';    #给chen用户授予所有权限(包括远程登录)
flush privileges;        # 添加权限之后,需要刷新授权表

3、授予远程登录的权限   (root不能远程登录的问题??需要进行身份验证,才能远程登录)

grant all privileges on *.* to chen@'%';  #给chen用户授予所有权限

grant all privileges on *.* to root@'%' identified by 'redhat';  #给与root权限授予远程登录的命令

# 此时可以在windows登录linux的数据库
mysql -uyining -p  -h  192.168.19.130(服务器的地址)      # 连接服务器的mysql

五、mysql 数据备份和恢复

1、导出数据到文件中(自己指定路径)

mysqldump -u root -p --all-databases > /data/AllMysql.dump  # 导出当前数据库的所有db,到一个文件中,路径自己确定

2、导入数据

  方式一:登录 mysql 之后,导入数据

mysql -u root -p   # 登录mysql
source /data/AllMysql.dump;    #登录之后导入数据

  方式二:登录mysql 时,通过命令导入

mysql -uroot -p   <   /data/AllMysql.dump   #在登录时候,导入数据文件,一样可以写入数据
mysql -uroot -p      # 导入数据之后,需要重新登录一下

mysql 的主从复制架构

mysql的主从复制架构,需要准备两台机器,并且可以通信,安装好2个mysql,保持版本一致性 
mysql -V 查看数据库版本

一、配置主库文件

1.准备主库的配置文件  /etc/my.cnf 
写入开启主库的参数
    [mysqld]
    server-id=1             #标注 主库的身份id
    log-bin=s15mysql-bin        #那个binlog的文件名

2.重启mairadb,读取配置文件
    systemctl restart mariadb 

3.查看主库的状态
    mysql -uroot -p 

    show master status;  #这个命令可以查看 日志文件的名字,以及数据起始点 

4.创建用于主从数据同步的账户
create user 'yuanhao'@'%' identified by 'yuanhaobuxitou';

5.授予主从同步账号的,复制数据的权限
grant replication slave on *.* to 'yuanhao'@'%';

6.进行数据库的锁表,防止数据写入

flush table with read lock;

7.将数据导出 
mysqldump -u root -p --all-databases >  /opt/zhucong.dump

8.然后将主库的数据,发送给从库
scp /opt/zhucong.dump   root@从库:/opt/

9.此时去从库的mysql上,登录,导入主库的数据,保持数据一致性
mysql -uroot -p 
source /opt/zhucong.dump 

二、从库的配置

1.写入my.cnf,从库的身份信息
vi /etc/my.cnf 
[mysqld]
server-id=10

2.检查一下主库和从库的 参数信息 

show variables like 'server_id';
show variables like 'log_bin';

3.通过一条命令,开启主从同步
change master to master_host='192.168.13.78',
master_user='yuanhao',
master_password='yuanhaobuxitou',
master_log_file='s15mysql-bin.000001',
master_log_pos=571;

4.开启从库的slave同步
start slave; 

5.查看主从同步的状态
show slave status\G;  

6.查看两条参数 ,确保主从正常
            Slave_IO_Running: Yes
            Slave_SQL_Running: Yes

 

 

 

小练习:

今日作业

1.在服务器上安装配置好mariadb数据库
2.修改mariadb数据库编码
3.插入mariadb中文数据
4.练习mariadb命令
5.完成mariadb主从复制实验


6.安装配置好redis数据库
7.修改redis配置文件,确保redis安全启动
8.通过redis.conf启动redis服务端,更改端口,配置密码,配置后台启动redis
9.练习redis命令
posted @ 2018-12-30 20:19  葡萄想柠檬  Views(188)  Comments(0)    收藏  举报
目录代码