mysql8.0安装、简单主从及个人在安装过程中的一些看法

数据库YUM安装

从官网中或其他地方下载rpm安装文件
官网网址:https://dev.mysql.com/downloads/mysql/

数据库配置

编辑数据库配置文件my.cnf

数据库启动时默认读取的配置文件为/etc/my.cnf文件,我们可以在这个文件中对数据库进行基础的配置和进行一些参数的优化,如果该文件配置错误将导致数据库无法启动,具体各参数的的定义可以从网上查找。基于本人在调优方便也是小白,推荐一位大神提供的在线生成网址:

https://imysql.com/my-cnf-wizard.html

创建数据库相关目录

因为mysql在操作系统中默认使用的是mysql用户进行的操作,需要先新建mysql用户,并给其赋予权限

创建组
[root@centos7 mysql]# groupadd mysql
创建用户(-s /bin/false参数指定mysql用户仅拥有所有权,而没有登录权限)
[root@centos7 mysql]# useradd -r -g mysql -s /bin/false mysql
修改mysql配置目录的权限
[root@centos7 mysql]# cd /data/mysql
[root@centos7 mysql]# chown -R mysql:mysql ./  
                      chmod -R 777 /usr/local/mysql/ 
                      chmod -R 777 /data/mysql/

说明:因为mysql需要读写文件 所以需要将mysql关联的文件夹的权限赋予给mysql用户

启动数据库

启动数据库

[root@localhost mysql]# systemctl start mysqld

数据库的进程名为 mysqld
如果在执行启动命令出现了异常 需要根据提示讲异常解决
如可通过查看数据库的状态system status mysqld 、查看配置位置文件夹中的error.log文件等。

第一次执行数据库启动命令 mysql 将自动在按照配置的(my.cnf配置,如果没有在my.cnf中配置 ,则使用mysql默认的参数 )初始化数据库相关的所有文件 如 第一次启动 在/data/mysql文件夹中初始化了以下文件
在这里插入图片描述

说明:

数据库启动时将会根据配置信息(如my.cnf、命令行、默认)去检查指定的目录(初次安装配置、更换后配置中的地址路径)下是否初始化了数据库相关的初始数据(如mysql、sys库等), 如果没有,都将初始化重新生成
mysqldb.pid、mysql.sock、mysql.sock.lock 等文件是在每次数据库启动时创建 数据库关闭时系统将自动删除的 有的时候可能会因为数据库异常关闭(如断电等),导致这些文件未清除而导致再次启动数据库时失败,这时直接删除掉这些文件再启动即可

修改密码和远程访问限制

从配置的error.log中查找到数据库第一次启动时mysql默认给生成的密码
在这里插入图片描述

cat /data/mysql/error.log | grep 'A temporary password'

用改密码登录进mysql

mysql -u root -p

执行密码修改语句

ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'new@@password';

mysql默认是不允许远程访问的
在这里插入图片描述
开启外部 访问权限 需要修改登录账号的host限定
如开启root的远程访问权限(开启需要谨慎)

mysql> use mysql
mysql> update user set user.Host='%'where user.User='root';
mysql> flush privileges;
mysql> quit

说明 % 表示不作任何访问限制

然后就可以在远程电脑中对改数据库进行远程访问了
记住一定要开发3306端口 或 关闭防火墙

在这里插入图片描述

防火墙
CentOS 7.0默认使用的是firewall作为防火墙,使用iptables必须重新设置一下

1、直接关闭防火墙

systemctl stop firewalld.service #停止firewall

systemctl disable firewalld.service #禁止firewall开机启动

2、设置 iptables service

yum -y install iptables-services

如果要修改防火墙配置,如增加防火墙端口3306

vi /etc/sysconfig/iptables

增加规则

-A INPUT -m state --state NEW -m tcp -p tcp --dport 3306 -j ACCEPT

保存退出后

systemctl restart iptables.service #重启防火墙使配置生效

systemctl enable iptables.service #设置防火墙开机启动

最后重启系统使设置生效即可。

主从

mysql8 如果服务器资源充足 从安全考虑还是推荐mgr

MySQL 主从复制的方式有多种,本文主要演示基于基于日志(binlog)的主从复制方式。

MySQL 主从复制(也称 A/B 复制) 的原理

Master将数据改变记录到二进制日志(binary log)中,也就是配置文件log-bin指定的文件,
这些记录叫做二进制日志事件(binary log events);
my.conf 中配置的log_bin 文件名
在这里插入图片描述

配置文件夹中的log文件
在这里插入图片描述
Slave 通过 I/O 线程读取 Master 中的 binary log events 并写入到它的中继日志(relay log);

Slave 重做中继日志中的事件, 把中继日志中的事件信息一条一条的在本地执行一次,完
成数据在本地的存储, 从而实现将改变反映到它自己的数据(数据重放)。

环境Centos7.6 ,mysql8.0
Mysql主从配置

10.10.0.30—Master,10.10.0.31–Slave

mysql主从配置前提条件要求:

1、服务器版本一致
2、主服务器日志必须二进制
3、主服务器-从服务器库的数据要求一致
4、从数据库不能做写操作

2.主服务器配置

2.1、修改my.cnf,添加
[mysqld]
log-bin=/data/mysql/mybinlog   # 也可配置为相对地址 mybinlog
server-id=30
2.2、重启mysql服务
  service mysqld restart
2.3、配置mysql

在mysql数据库中,建立用户同步数据库的账号:

create user 'repl'@'%' identified with 'mysql_native_password' by 'repl@@password';

说明:如果从安全角度考虑创建的用户访问范围不要设置成 % ,可根据从库地址设置为’repl’@‘10.10.0.31’

给repl用户权限:

GRANT replication slave ON *.* TO 'repl'@'%';
GRANT ALL privileges ON *.* TO 'repl'@'%';
flush privileges;

账号请根据手机的进行修改

查看mysql主服务器日志:
  show master status

  show master status\G

在这里插入图片描述
记录下File和Position的值,一会儿再从服务器上配置时使用。

3.从服务器配置

3.1、修改my.cnf,添加
  [mysqld]
  log-bin=/data/mysql/mybinlog   # 也可配置为相对地址 mybinlog  
  server-id=31

说明 如果从库单单只作为从库的话 log-bin 其实是可以不设置的

3.2、重启mysql.server服务
  service mysqld restart

3.3、在从服务器设置主服务器,实现主从配置

change master to master_host='10.10.0.31',master_user='repl',master_password='repl@@password',master_log_file='mybinlog.000004' ,master_log_pos=2627;

说明:
CHANGE MASTER TO

MASTER_HOST=‘10.10.0.31’, #Master的ip

MASTER_USER=‘repl’,#你创建的用户

MASTER_PASSWORD=‘repl@@password’, #创建的repl用户的password

MASTER_LOG_FILE=‘mybinlog.000004’, #主服务器上的File

MASTER_LOG_POS=2627; #刚刚保存的position

3.4、开启主从

  start slave

3.5、检查从服务器状态

  show slave status\G

在这里插入图片描述
Slave_IO_Running 和 Slave_SQL_Running 为Yes ,则说明主从搭建成功

我们可以在主库中新建表 看再从库中是否通用创建成功

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
MySQL 8.0.34版本主从复制的配置步骤如下: 1. 确保主数据库和从数据库的版本相同,并且都是MySQL 8.0.34版本。 2. 在主数据库,编辑主配置文件(my.cnf或my.ini),设置以下参数: - server-id=1: 设置主数据库的唯一标识符为1。 - log_bin=mysql-bin: 启用二进制日志,用于记录主数据库的所有变更操作。 3. 重启主数据库,使配置生效。 4. 在主数据库,创建用于从数据库复制的用户,并为该用户授予适当的权限。 5. 在从数据库,编辑从配置文件(my.cnf或my.ini),设置以下参数: - server-id=2: 设置从数据库的唯一标识符为2。 - relay-log=mysql-relay-bin: 启用继日志,用于从数据库接收主数据库的二进制日志事件。 - log_slave_updates: 允许从数据库将收到的二进制日志事件传播给其他从数据库。 6. 重启从数据库,使配置生效。 7. 在主数据库,执行CHANGE MASTER TO语句,将从数据库的连接信息添加到主数据库。 8. 在从数据库,执行START SLAVE语句,启动从数据库的复制进程。 9. 检查主数据库和从数据库的状态,确保主从复制已成功建立。 需要注意的是,在MySQL 8.0.34版本,主数据库的root密码需要使用如下语句进行修改: ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY '12345678'。<span class="em">1</span> #### 引用[.reference_title] - *1* [Docker Mysql 8.0.19 搭建主从复制](https://blog.csdn.net/qq_34474636/article/details/129903309)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 100%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值