• mysql相关操作


    mariadb其实就是mysql
    mysql已经被oracle收购,它即将闭源,马上要开始收费了
    因此还想免费试用开源的数据库mysql,就在centos7上,将mysql分支为mariadb


    安装mariadb,在centos7底下:
    linux软件包的格式 mysql.rpm

    1.通过yum去安装
    1.linux的yum软件管理目录在 /etc/yum.repos.d
    2.在这个目录底下,主要是*.repo这个文件,就会被识别为yum源文件

    第一种方式是,通过阿里云的yum源去下载(第三方的yum源,可能会版本较低,且软件不全,可能找不到)
    CentOS-Base.repo epel.repo

    yum install mariadb-server #yum安装mariadb 因为这个阿里云特别快,咱们用他去学习,加速下载 300kb/s

    mariadb-server x86_64 1:5.5.60-1.el7_5 base 11 M
    为依赖而安装:
    mariadb x86_64 1:5.5.60-1.el7_5 base 8.9 M
    perl-DBD-MySQL x86_64 4.023-6.el7 base 140 k
    为依赖而更新:
    mariadb-libs x86_64 1:5.5.60-1.el7_5 base 758 k


    第二种方式是,通过mariadb官方的yum源去下载(一定是这个软件最正确的yum源,且包都是最新的)
    1.下载一个第三方的软件,顺序就是去官网找到这个软件的下载方式


    yum install MariaDB-server MariaDB-client #区分大小写 ,这个方式是取国外下载mariadb,速度太慢 30kb/s

    依赖关系解决

    =====================================================================================================================================
    Package 架构 版本 源 大小
    =====================================================================================================================================
    正在安装:
    MariaDB-client x86_64 10.1.37-1.el7.centos mariadb 40 M
    MariaDB-server x86_64 10.1.37-1.el7.centos mariadb 104 M
    MariaDB-shared x86_64 10.1.37-1.el7.centos mariadb 1.3 M
    替换 mariadb-libs.x86_64 1:5.5.56-2.el7
    为依赖而安装:
    MariaDB-common x86_64 10.1.37-1.el7.centos mariadb 123 k
    boost-program-options x86_64 1.53.0-27.el7 base 156 k
    galera x86_64 25.3.24-1.rhel7.el7.centos mariadb 8.1 M



    1.下载mariadb,通过阿里云的源
    yum install mariadb-server

    2.通过yum安装的软件,systemctl start/stop/restart/status mariadb

    systemctl start mariadb #启动mariadb数据库

    3.初始化mariadb
    mysql_secure_installation #直接输入这个命令,设置root密码,删除匿名用户等等操作

    4.配置myariadb远程登录,可以通过windows,pycharm等客户端进行连接,在远端登录的话,就必须得输入redhat这个密码

    grant all privileges on *.* to root@'%' identified by 'redhat';

    授予 所有的 权限 在 所有的库.所有的表 用户名@"所有的地址" identified by "密码";

    5.刷新授权表,使得权限立即生效
    flush privileges;

    6.更改mysql的密码
    set password = PASSWORD('redhat123');

    7.创建普通用户s14
    create user s14@'%' identified by 's14666';

    8.查询用户信息
    select host,user,password from user;

    9.授权语句
    grant 权限 on 数据库.表名 to 账户@主机名 对特定数据库中的特定表授权
    grant 权限 on 数据库.* to 账户@主机名   对特定数据库中的所有表给与授权
    grant 权限1,权限2,权限3 on *.* to 账户@主机名    对所有库中的所有表给与多个授权
    grant all privileges on *.* to 账户@主机名    对所有库和所有表授权所有权限
    grant create,select,insert on *.* to root@'%' identified by "密码"

    10.数据库的中文设置
    1.查看数据库编码
    s
    2.修改mysql的配置文件 /etc/my.cnf ,加入以下信息

    [mysqld]
    character-set-server=utf8
    collation-server=utf8_general_ci
    log-error=/var/log/mysqld.log
    [client]
    default-character-set=utf8
    [mysql]
    default-character-set=utf8

    3.修改了配置文件,重启服务
    systemctl restart mariadb

    4.查看数据库创建的编码,只有在更新了数据库编码之后,创建的数据库,才会使用这个编码
    show create database s16;

    5.可以测试创建table,写入中文数据

    11.mysql的数据备份
    1.通过命令导出全部数据
    mysqldump -u root -p --all-databases > /data/db.dump

    2.可以测试删除一些无关紧要的db,例如s14,test这样的数据

    rm -rf /var/lib/mysql/*
    3.导入数据库的db文件,在mysql命令行中输入这个命令
    mysql > source /opt/db.dump #这一步是输入的sql语句,在mysql中输入,导入数据

    4.第二种方式导入数据,通过mysql命令
    mysql -uroot -p < /opt/db.dump

    mysql主从复制的步骤:

    环境准备:
    准备两台服务器,安装两个mariadb

    主库是:192.168.12.96 mater
    从库是:192.168.12.87 slave

    主库的操作如下:
    1.开启binlog功能,修改/etc/my.cnf
    vim /etc/my.cnf #写入

    [mysqld]
    server-id=1 #指明主库的身份id为1
    log-bin=mysqls14-bin #指明binlog的日志名

    2.修改了配置文件,重启mariadb,使得binlog生效
    systemctl restart mariadb

    3.登录mysql,检查主库的状态
    show master status;

    4.创建一个用户,用于进行主从同步
    create user 'kangchen'@'%' identified by 'kangchen666';

    5.授予账号权限,授予一个从库的身份权限
    grant replication slave on *.* to 'kangchen'@'%';

    6.锁定mysql的表,防止数据写入
    flush table with read lock;

    7.主从同步,将从库与主库的数据,保持一致后,它俩都在同一个起跑线,然后解除锁表,一同写入数据,保证数据一致性
    1.导出当前的数据,用于slave机器导入数据,保证在一个起始点
    mysqldump -u root -p --all-databases > /data/db.dump
    2.将此db.dump文件远程传输给 slave机器,用于导入
    scp /data/db.dump root@192.168.12.87:/tmp/
    3.登录slave从库,导入主库的数据信息
    mysql > source /tmp/db.dump
    4.查看主库和从库的信息,是否一致


    8.查看主库的状态信息,binlog信息
    show master status;

    9.解锁表,开始主从同步
    unlock tables;

    从库的设置:

    1.在/etc/my.cnf当中打开server-id
    vim /etc/my.cnf

    2.重启myariadb

    3.查看slave机器的身份信息
    show variables like 'server_id';
    show variables like 'log_bin';

    4.通过命令,开启主从同步技术
    change master to master_host='192.168.12.96',
    master_user='kangchen',
    master_password='kangchen666',
    master_log_file='mysqls14-bin.000001',
    master_log_pos=671;

    5.开启slave
    start slave;

    6.检查slave状态,检查两条参数,如果都是yes,即主从ok
    Slave_IO_Running: Yes
    Slave_SQL_Running: Yes


    7.此时可以在主库中写入数据,查看从库中是否生成了记录

    主库:插入数据

    从库:检查数据

  • 相关阅读:
    Python 操作 MySQL数据库提示pymysql.err.InternalError: (1054, "Unknown column 'XXXXXXXXX' in 'where clause'")解决方法
    MySQL连接池不能查到刚写入的数据——连接池配置问题
    python 将字典转为bytes类型字典
    关于状态机的问题思考——什么时候达到新的状态?什么时候清除老状态?新状态与老状态之间的关系
    mysql 8.0.19 安装 及 端口修改
    sprintf printf 输出数据固定格式——数字前补零
    思维大爆炸
    IO点作为状态判断——一定要做软件“消抖”
    React-umi-request动态刷新Token功能实现及node.js 代码逻辑
    js测试题
  • 原文地址:https://www.cnblogs.com/mengxiangqun/p/11558850.html
Copyright © 2020-2023  润新知