别裁伪体亲风雅,转益多师是汝师。这篇文章主要讲述Linux 安装Mariadb以及主从搭建相关的知识,希望能为你提供帮助。
1.YUM源配置方法:阿里云yum源1.1
安装wget
[root@localhost ~]# yum install -y wget
1.2 备份/etc/yum.repos.d/CentOS-Base.repo文件
[root@localhost ~]# cd /etc/yum.repos.d/
[root@localhost yum.repos.d]# mv CentOS-Base.repo CentOS-Base.repo.back20190401
1.3 下载阿里云的Centos-7.repo文件
[root@localhost yum.repos.d]# wget -O CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-6.repo
[root@localhost yum.repos.d]# wget -O CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
1.4 重新加载yum
[root@localhost yum.repos.d]# yum clean all
Loaded plugins: fastestmirror, refresh-packagekit, security2 手动配置仓库目录2.1 找到yum仓库目录,创建repo文件
Cleaning repos: base extras updates
Cleaning up Everything
Cleaning up list of fastest mirrors
【Linux 安装Mariadb以及主从搭建】[root@localhost yum.repos.d]# yum makecache
Loaded plugins: fastestmirror, refresh-packagekit, security
Determining fastest mirrors
* base: mirrors.aliyun.com
* extras: mirrors.aliyun.com
* updates: mirrors.aliyun.com
mkdir mariadb.repo
touch /etc/yum.repos.d/mariadb.repo
2.2 写入指定的mysql官方yum源
[mariadb]
name = MariaDB
baseurl = http://yum.mariadb.org/10.1/centos7-amd64
gpgkey=https://yum.mariadb.org/RPM-GPG-KEY-MariaDB
gpgcheck=1
2.3 此时yum会自动的加载这个repo文件,读取内容,此时yum会自动的加载这个repo文件,读取内容
yum install MariaDB-server MariaDB-client
3 配置数据库3.1 拷贝my.cnf 配置文件
cp /usr/share/mysql/my-huge.cnf /etc/my.cnf
cp: overwrite ‘/etc/my.cnf’? y
3.2 启动mariadb数据库
systemctl start mariadb---------用管理工具启动数据库
systemcrl status mariadb-------查看状态,或者ps进程,netstat端口信息
3.3 初始化数据库,清除匿名用户,以及test数据库,保证数据库安全,允许mysql远程登录
mysql_secure_installation---------初始化命令
3.4 修改mariadb数据库的的中文支持
(1)\\s查看数据库编码信息
(2)修改配置文件(yum源安装的在/etc/my.cnf),支持中文
vim /etc/my.cnf
#服务端的编码添加如下内容
[mysqld]
character-set-server=utf8
collation-server=utf8_general_ci
#客户端的编码如下
[client]
default-character-set=utf8
[mysql]
default-character-set=utf8
3.5 mysql远程登录的设置
grant all privileges on *.* to root@% identified by 123456; ---------------不授权,远程无法登陆
3.6 数据库的备份与恢复
备份-----mysqldump -uroot -p --all-databases > /tmp/alldata.sql
恢复:
方式一:进入数据库,执行source命令读取sql文件:
(1)mysql -uroot -h192.168.160.134 -p
(2)source /tmp/alldata.sql
方式二:使用登录命令导入数据
mysql -uroot -p < /tmp/alldata.sql
3.7 主从复制(master-slave):Master主机
3.7.1 修改mysql配置文件,开启binlog日志功能
#服务端添加一下代码
[mysqld]
server-id=1
log-bin=mastermysql-bin
3.7.2 重启数据库生效binlog日志文件
systemctl restart mariadb
3.7.3登录数据库
mysql -uroot -p
3.7.4 主库master创建用于主从复制的用户
create user abc@% identified by 123456;
3.7.5授权slave给主从复制的用户
grant replication slave on *.* to abc@%;
grant select on *.* to abc@%; -------------授权查看给主从复制账号,以便后期登录使用
flush table with read lock; --进行锁表,防止在主从复制设置过程中数据写入------
导出当前master主库数据,发送给slave从库,保证起点的一致性:
mysqldump -uroot -p --all-databases > /tmp/alldata.sql
scp /tmp/alldata.sql root@192.168.160.130:/tmp/
slave从库机读取/tmp/alldata.sql进行master主库数据同步,删除多余数据库,同时进行slave从库机配置
unlock tables: slave从库机配置完后才能后,解锁,进行数据写入,查看从库是否正常执
3.8 主从复制(master-slave):Slave从机
下载mariadb-------------启动mariadb----------------是否初始化自选3.8.1 将master主机的数据库备份文件发送到slave进行恢复
目的是保持主从数据库的数据和配置的一致性
mysql -uroot -p < /tmp/alldata.sql
删除多余的数据库
3.8.2 修改slave从库机的配置文件,开启id, 设为只读模式--vim /etc/my.cnf
#服务端添加一下代码
[mysqld]
server-id=1000
read-only=true
3.8.3重启slave从库机的mariadb数据库
systemctl restart mariadb
3.8.4执行命令,建立主从复制关系
mysql -uroot -p--登录slave从库机数据库
change master to master_host=101.34.141.216,--主库master地址
master_user=abc,--用于主从复制在主库创建的用户
master_password=123456,--用于主从复制在主库创建的用户密码
master_log_file=mysql-bin.000001,--主库biinary log日志文件,主库
master_log_pos=616; --主库数据起点(在主库mysql中执行命令show master status可以查看)
3.8.5开启从库的slave功能
start salve
3.8.6查看从库的状态,检测是否复制成功
show slave status\\G;
查看如下两个参数是否是yes,主从复制即为正确:
Slave_IO_Running: Yes
Slave_SQL_Running: Yes
4.MySQL数据同步,出现Slave_SQL_Running:no和slave_io_running:no问题的解决方法4.1 问题描述:
当我们配置好MySQL主主同步时,是可以实现主主同步,但是重启机器后或者其他原因导致MySQL无法同步了4.2 Slave两个关键进程
mysql replication 中slave机器上有两个关键的进程,死一个都不行,一个是slave_sql_running,一个是Slave_IO_Running,一个负责与主机的io通信,一个负责自己的slave mysql进程。4.3 如果是Slave_SQL_Running:no
解决办法如下:
MariaDB [(none)]> stop slave;
MariaDB [(none)]> SET GLOBAL SQL_SLAVE_SKIP_COUNTER=1; START SLAVE;
MariaDB [(none)]> start slave;
MariaDB [(none)]> show slave status\\G
4.4 如果是slave_io_running:no
解决办法如下:
1、查看主服务器
MariaDB [(none)]> show master status\\G
2、在从服务器上查看
问题所在:发现Master_Log_File没有对应。
3、出现Slave_IO_Running: No的机器上操作
MariaDB [(none)]> slave stop;
MariaDB [(none)]> CHANGE MASTER TO MASTER_LOG_FILE=mysql-bin.000026, MASTER_LOG_POS=0;
MariaDB [(none)]> slave start;
MariaDB [(none)]> show slave status\\G
推荐阅读
- #yyds干货盘点# 解决华为机试(记负均正II)
- OpenHarmony——散点图
- 算法题每日一练---第22天(猜字母(String类))
- pg快速入门--配置文件
- 嵌入式硬件开发有哪些步骤()
- Java网络编程指南
- java OA项目源码 flowable activiti流程引擎 Springboot html vue.js 前后分离
- 面试如何做好自我介绍
- 深度学习教程 | CNN应用(人脸识别和神经风格转换)