• 1、mysql安装

a.把安装包放入/home/下
b.解压
tar -xzvf mysql-5.7.30-linux-glibc2.12-x86_64.tar
c.给解压后文件改名
mv mysql-5.7.19-linux-glibc2.12-x86_64 /home/mysql
d.为centos添加mysql用户组和mysql用户(-s /bin/false参数指定mysql用户仅拥有所有权,而没有登录权限)
groupadd mysql
useradd -r -g mysql -s /bin/false mysql
e.进入安装mysql软件的目录
cd /home/mysql
f.修改当前目录拥有者为新建的mysql用户,命令如下:
chown -R mysql:mysql ./
g.安装mysql
./bin/mysqld --user=mysql --basedir=/home/mysql --datadir=/home/mysql/data --initialize
安装成功后,记住随机密码
h.修改/etc/my.cnf
[mysqld]
port=3306
datadir=/home/mysql/data
socket=/home/mysql/mysql.sock
user=mysql
max_connections=2000
symbolic-links=0
lower_case_table_names = 1
character-set-server=utf8
collation-server=utf8_general_ci
bind-address = 0.0.0.0
max_allowed_packet=256M
wait_timeout=300
interactive_timeout = 300
event_scheduler = 1
sql_mode= STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION
[mysqld_safe]
log-error=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid
[client]
socket=/home/mysql/mysql.sock
default-character-set=utf8
i.修改mysql.server文件,开启mysql服务
vim /support-files/mysql.server –将文件安装位置修改为/home/mysql

./support-files/mysql.server start
j.将mysql进程放入系统进程中
cp support-files/mysql.server /etc/init.d/mysqld
k.重新启动mysql服务,命令如下:
service mysqld restart
l.使用随机密码登录mysql数据库
先把mysql的命令设置为环境变量
/etc/profile中添加语句
export PATH=$PATH:/usr/local/mysql/bin
编译/etc/profile
source /etc/profile
登录mysql
mysql -u root -p
等待系统提示,输入随机密码,即可登录
m.进入mysql操作行,为root用户设置新密码
alter user ‘root’@‘localhost’ identified by ‘root_xxx’;
n.设置允许远程连接数据库
先选择数据库
use mysql
update user set user.Host=’%’ where user.User=‘root’;
查看修改后的值
select user,host from user;
o.刷新权限,命令如下:
flush privileges;

  • 2、双主配置

编辑master配置文件:
vim /etc/my.cnf
添加配置:
masterA配置:
log-bin=mysql-bin
server-id=1
auto_increment_offset=1
auto_increment_increment=2
relay-log=mysql-relay #启用中继日志文件
binlog-ignore-db=information_schema
binlog-ignore-db=cluster
binlog-ignore-db=mysql
expire_logs_days=3 #日志保留三天
log-bin-trust-function-creators=1
replicate-ignore-db=mysql
log-slave-updates
slave-skip-errors=all
slave-net-timeout=60
binlog-ignore-db=information_schema
masterB配置:
log-bin=mysql-bin
server-id=2
auto_increment_offset=2
auto_increment_increment=2
relay-log=mysql-relay #启用中继日志文件
binlog-ignore-db=information_schema
binlog-ignore-db=cluster
binlog-ignore-db=mysql
expire_logs_days=3
log-bin-trust-function-creators=1
replicate-ignore-db=mysql
log-slave-updates
slave-skip-errors=all
slave-net-timeout=60
binlog-ignore-db=information_schema
重启mysql:
service mysqld restart
添加主从同步账户:
masterA上:
mysql> grant replication slave on . to ‘root’@‘xxx.xxx.xxx.90’ identified by ‘root_xxx’;
mysql> flush privileges;
masterB上:
mysql> grant replication slave on . to ‘root’@‘xxx.xxx.xxx’ identified by ’ root_xxx’;
mysql> flush privileges;
查看主库的状态:
masterA上:
mysql> show master status;
±-----------------±---------±-------------±-----------------±------------------+

| File | Position | Binlog_Do_DB | Binlog_Ignore_DB | Executed_Gtid_Set |

±-----------------±---------±-------------±-----------------±------------------+

| mysql-bin.000003 | 120 | | | |

±-----------------±---------±-------------±-----------------±------------------+
1 row in set (0.00 sec)
masterB上:
mysql> show master status;
±-----------------±---------±-------------±-----------------±------------------+

| File | Position | Binlog_Do_DB | Binlog_Ignore_DB | Executed_Gtid_Set |

±-----------------±---------±-------------±-----------------±------------------+

| mysql-bin.000003 | 437 | | | |

±-----------------±---------±-------------±-----------------±------------------+
1 row in set (0.00 sec)
配置同步信息:
masterA上:
mysql> stop slave;
mysql> change master to master_host=‘xxx.xxx.xxx.91’,master_port=3306,master_user=‘root’,master_password=‘root_xxx’,master_log_file=‘mysql-bin.000003’,master_log_pos=437;
mysql> start slave;
mysql> show slave status\G;
显示有如下状态则正常:
Slave_IO_Running: Yes
Slave_SQL_Running: Yes
masterB上:
mysql> stop slave;
mysql> change master to master_host=‘xxx.xxx.xxx.90’,master_port=3306,master_user=‘root’,master_password=‘root_xxx’,master_log_file=‘mysql-bin.000003’,master_log_pos=120;
mysql>start slave;
mysql> show slave status\G;
显示有如下状态则正常:
Slave_IO_Running: Yes
Slave_SQL_Running: Yes

  • 3、常见错误解决方案

a.如果MySQL 启动不了,始终显示“The server quit without updating PID file”
解决方法 :
1、给予权限,
执行 “chown -R mysql:mysql /var/data” “chmod -R 755 /usr/local/mysql/data” 然后重新启动mysqld
2、可能进程里已经存在mysql进程
用命令“ps -ef | grep mysqld”查看是否有mysqld进程,如果有使用“kill -9 进程号”杀死,然后重新启动mysqld
3、可能是第二次在机器上安装mysql,有残余数据影响了服务的启动
去mysql的数据目录/data看看,如果存在mysql-bin.index,就赶快把它删除掉吧,它就是罪魁祸首了。
4、mysql在启动时没有指定配置文件时会使用/etc/my.cnf配置文件,
打开这个文件查看在[mysqld]节下有没有指定数据目录(datadir)。请在[mysqld]下设置这一行:datadir = /home/mysql/data
5、skip-federated字段问题
检查一下/etc/my.cnf文件中有没有没被注释掉的skip-federated字段,如果有就立即注释掉吧。
6、错误日志目录不存在
使用“chown” “chmod”命令赋予mysql所有者及权限
7、selinux惹的祸,如果是centos系统,默认会开启selinux
关闭它,打开/etc/selinux/config,把SELINUX=enforcing改为SELINUX=disabled后存盘退出重启机器试试。

b. mysql随机密码忘记的处理方式
1、修改配置文件my.cnf
vi /etc/my.cnf
找到mysqld在之后添加
skip-grant-tables
保存退出
2、重启mysql服务
Service mysqld restart
3、直接登陆mysql而不需要密码
mysql -u root (直接点击回车)
4、在mysql中输入
update mysql.user set password=password(‘1’) where user=‘root’;
5、如果提示ERROR 1054 (42S22): Unknown column ‘password’ in ‘field list’。
原来是mysql数据库下已经没有password这个字段了,password字段改成了authentication_string
update mysql.user set authentication_string=password(‘123456’) where user=‘root’;
6、执行flush privileges
7、退出mysql,到my.cgf中把开始添加的skip-grant-tables去掉
8、重启mysql服务
9、当你登陆mysql之后你会发现,当你执行命令时会出现
ERROR 1820 (HY000): You must reset your password using ALTER USER statement;
当你执行了SET PASSWORD = PASSWORD(‘123456’);
出现:ERROR 1819 (HY000): Your password does not satisfy the current policy requirements
10、你需要执行两个参数来把mysql默认的密码强度的取消了才行
set global validate_password_policy=0;
set global validate_password_mixed_case_count=2;
11、这是你在执行
SET PASSWORD = PASSWORD(‘123456’);

c. 主从复制配置报错:
Fatal error: The slave I/O thread stops because master and slave have equal MySQL server UUIDs; these UUIDs must be different for replication to work.
解决方法:
删除slave节点auto.cnf文件,并重启mysql服务。

NO2.高可用搭建-mysql安装和双主配置相关推荐

  1. 构建高可用LVS + keepalived+httpd和双主模型的keepalived方案

    ↑构建高可用LVS + keepalived+httpd和双主模型的keepalived方案↑ 标签:web服务器 拓扑图 模型 检测 软件 原创作品,允许转载,转载时请务必以超链接形式标明文章 原始 ...

  2. Centos6.9下RocketMQ3.4.6高可用集群部署记录(双主双从+Nameserver+Console)

    之前的文章已对RocketMQ做了详细介绍,这里就不再赘述了,下面是本人在测试和生产环境下RocketMQ3.4.6高可用集群的部署手册,在此分享下: 1) 基础环境 ip地址 主机名 角色 192. ...

  3. mysql 5.7 双主配置_MySQL5.7.18 双主配置

    环境 RedHat6.5 64位 IP MySQL5.7 9.1.8.155 /usr/local/mysql 9.1.8.154 /usr/local/mysql 9.1.8.155 配置 [roo ...

  4. 【MySQL高可用】MySQL高可用之MGR部署

    [MySQL高可用]MySQL高可用之MGR部署 参考:https://www.xmmup.com/dbbao45mysqlgaokeyongzhimgrconsuljiagoubushu.html ...

  5. HADOOP 高可用搭建

    首先先说一下大概的步骤,就用四台为例,简单适合新手操作. 流程是:创建虚拟机,配置好:搭建linux系统:安装jdk(因为后面好多都依赖jkd):免密登录ssh:安装zookeeper:最后就是搭建高 ...

  6. Mysql 集群双主双从安装使用详细讲解

    文章目录 下载Mysql 安装单机Mysql 配置Mysql集群 双Master配置 master1配置 master2配置 配置说明 双Slave配置 Slave1配置 Slave2配置 双 Mas ...

  7. CCO x Hologres:实时数仓高可用架构再次升级,双11大规模落地

    简介:本文将会介绍今年是如何在去年基础上进行实时数仓高可用架构升级,并成功大规模落地双11. 作者 | 梅酱 来源 | 阿里技术公众号 一 2021年双11总结 2021年阿里巴巴双11期间,由CCO ...

  8. 关闭删库跑路的后门,打造高可用的MySQL

    0 MySQL HA/Scalability 如何关上"删库跑路"的后门,维护我们的数据安全呢? 数据是当今Web,移动,社交,企业和云应用程序的流行货币.确保数据始终可用是任何组 ...

  9. k8s1.18多master节点高可用集群安装-超详细中文官方文档

    kubernetes安装系列文章 kubernetes1.17.3安装-超详细的安装步骤 安装kubernetes1.17.3多master节点的高可用集群 k8s1.18单master节点高可用集群 ...

最新文章

  1. linux shell printf 格式化输出 数字 字符串
  2. 【USACO06DEC】—牛奶模式Milk Patterns(后缀自动机)
  3. SpringBoot测试时出现Whitelabel Error Page
  4. 力扣——整数反转(Java)
  5. Liner(分段线性插值)
  6. MongoDB基础使用
  7. 记录一次bug解决过程:数据迁移
  8. zTree v2.6 - v3.0 文件对比
  9. 产品入门八——用户体验设计
  10. MVC+LINQToSQL的Repository模式之(二)数据基类
  11. SqlServer中如何按姓氏笔画排序
  12. 论文阅读:CCX-RAYNET: A CLASS CONDITIONED CONVOLUTIONAL NEURAL NETWORK FOR BIPLANAR X-RAYS TO CT VOLUME
  13. pc电脑微信多开的方法,无需安装任何工具2022
  14. cad图形不见了怎么办_画好的cad图纸文件不见了怎么找回?
  15. 路由器回执路由配置_路由器接路由器设置详细图文教程
  16. funcode项目笔记
  17. 2019HDU多校第一场 HDU6578 Blank
  18. Eclipse中如何查看使用的JDK版本?
  19. 【NOIP 2017】Day2 T3 列队
  20. 包租婆再也不用为了收租、欠租而到处奔波了

热门文章

  1. 《Java入门》简化的插入排序:本题要求编写程序,将一个给定的整数插到原本有序的整数序列中,使结果序列仍然有序。
  2. linux-文件管理
  3. 做微信还是做APP:两种创业的不同风险
  4. 【Android】用Cubism 2制作自己的Live2D——官方App样例源码学习(4)!
  5. 使用wireshark对grpc的helloworld抓包分析
  6. 文档转换、在线预览的几种方式以及推荐
  7. 如何快速理解IMU积分、预积分、误差、方差
  8. win10安装usb转serial驱动(或Prolific USB-to-Serial Comm Port驱动)
  9. 剑指offer笔记(七) 第47题至第53题
  10. 计算机毕业设计之微信小程序的快递取件及上门服务系统的论文