MySQL 管理

0 安装MySQL

redhat8.x配置dnf(yum)源(配置DNF)

DNF是linux系统的另一个软件安装解决方案,相对于yum,对于依赖有更好,更高效的解决方案。对于开发者来说,也更加友好,而且对于Python也有更好的支持;redhat8已经默认有DNF,只需要修改源就可以直接使用
1、Yum没有API文档。这意味着开发者需要做更多的工作。Yum开发者写一个调用函数都需要查看Yum的代码库,使开发变得缓慢。
2、Python3。Fedora将会过渡到Python3,但Yum却没有这个能力,而DNF既可以使用Python2,也可以在Python3环境下运行。
3、依赖解决能力长期是Fedora软件包管理的阿喀硫斯之踵。DNF使用基于SAT的依赖问题解决方法,与SUSE和OpenSUSE的Zypper类似。

#下载源文件
sudo wget -O /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-8.repo
#配置DNF,耗时比较久.一般非必须
sudo dnf update  
配置好源后,记得查看一下.

MYSQL三种安装方式–rpm包安装

  1. rpm安装MySQL
##  查看有没有安装MySQL
rpm -qa | grep -i mysql 
find / -name mysql
## 删除存在的MySQL文件
rm -rf 查出的文件1 文件2 
  1. 去官网下载相应的rpm包:https://dev.mysql.com/downloads/mysql/
    或者使用: 搜狐镜像http://mirrors.sohu.com/mysql/
  2. 上传到/usr/local/src文件夹,进行安装mysql
    按照以下顺序进行安装,因为它们之间存在依赖关系
    common --> libs --> clients --> server

遇到了需要安装下面2个依赖的问题
dnf install ncurses-compat-libs
dnf install perl-Getopt-Long

mysql的安装过程(rpm包安装)

  1. 设置密码
    查看初始密码 grep -i password /var/log/mysqld.log
    修改密码 sudo mysql_secure_installation
  2. 错过第4步,可以
    flush privileges; //刷新系统权限表
    ALTER user ‘root’@‘localhost’ IDENTIFIED BY ‘你的密码’;
    出错时尝试Linux 通过RPM包安装 MySQL 8.0第2条
  3. mysql 解决密码强度的问题 Your password does not satisfy the current policy requirements
    set global validate_password_policy=LOW;
  4. 跳过授权
    vi /etc/my.cnf
    在[mysqld]下面添加跳过授权命令

skip-grant-tables
重启服务
service mysqld restart

1. 主从复制

MySQL主从复制实现,主从、主主、主从从
MySQL主从复制原理、半同步操作步骤及原理

  1. 修改主服务器master:
    #vi /etc/my.cnf
      [mysqld]
       # 日志文件格式
        binlog-format=ROW 
        # [必须]启用二进制日志. 名字为mysql-bin 
        log-bin=mysql-bin  
         #[必须]服务器唯一ID,默认是1,一般取IP最后一段
        server-id=222     
        # 要实现主从复制的数据库,这里是ddm
        binlog-do_db=ddm
        ```
        
    

在主服务器上建立帐户并授权slave:

mysql> GRANT REPLICATION SLAVE ON . to ‘root’@’%’ identified by ‘mysql3306’; //一般不用root帐号,“%”表示所有客户端都可能连,只要帐号,密码正确,此处可用具体客户端IP代替,如192.168.145.226,加强安全。192.168.145.% 授权给145段内所有用户
2. 修改从服务器slave:

  #vi /etc/my.cnf
     [mysqld]
     #不是必须]启用二进制日志
     log-bin=mysql-bin   
     # 日志文件格式
  binlog-format=ROW 
   #[必须]服务器唯一ID,默认是1,一般取IP最后一段
     server-id=226     
      # 双主互相备份(表示从服务器可能是另外一台服务器的主服务器). 只作为从机可以不写
     log-slave-updates=true
  1. 重启两台服务器的mysql
    service mysqld restart

    systemctrl mysqld restart

    /etc/init.d/mysql restart
  2. 登录主服务器的mysql,查询master的状态

mysql> show master status;
±-----------------±---------±-------------±-----------------±------------------+
| File | Position | Binlog_Do_DB | Binlog_Ignore_DB | Executed_Gtid_Set |
±-----------------±---------±-------------±-----------------±------------------+
| mysql-bin.000001 | 154 | ddm | | |
±-----------------±---------±-------------±-----------------±------------------+
1 row in set (0.00 sec)
注:执行完此步骤后不要再操作主服务器MYSQL,防止主服务器状态值变化

File: 日志文件名
Position: 文件名所处的位置(偏移量)
Binlog_Do_DB: 要实现主从复制的数据库

  1. 配置从服务器Slave:

mysql>change master to master_host=‘192.168.15.1’,master_port=3306,master_user=‘root’,master_password=‘mysql3306’,master_log_file=‘mysql-bin.000001’,master_log_pos=154; //注意不要断开,308数字前后无单引号。
Mysql>start slave; //启动从服务器复制功能

  1. Navicat 连接不上问题
    1. 防火墙问题 2. 端口未开放 3. 未授权
    firewall-cmd --zone=public --add-port=3306/tcp --permanent
    2.重新加载防火墙
    firewall-cmd --reload
    2. 授权给客户端
    # with grant option 不仅仅授予修改的权限,还授予权限的权限
    grant all privileges on *.* to root@'%' identified by 'mysql3306' with grant option;
    
已标记关键词 清除标记
©️2020 CSDN 皮肤主题: 创作都市 设计师:CSDN官方博客 返回首页