zoukankan      html  css  js  c++  java
  • Linux中的mysql.redis

    1,Linux上的mysql

    MariaDB数据库管理系统是MySQL的一个分支,主要由开源社区在维护,采用GPL授权许可。
    开发这个分支的原因之一是:甲骨文公司收购了MySQL后,有将MySQL闭源的潜在风险,因此社区采用分支的方式来避开这个风险。
    MariaDB的目的是完全兼容MySQL,包括API和命令行,使之能轻松成为MySQL的代替品。

    2,安装mariadb,在centos7底下

    1. 第一种在阿里云的yum源去下载,(可能版本低,且软件不全,可能找不到)
      • yum install mariadb-serve
    2. 第二种是,通过mariadb官方的yum源去下载(一定是在这个软件最正确的yum源,且包都是最新的)
      • yum install MariaDB-server MariaDB-client
    3. 下载mariadb,通过阿里云的源
      • yum install Mariadb-server
    4. 通过yum安装的软件
      • systemctl start/stop/restart/status mariadb
      • 启动mariadb数据库
      • systemctl start mariadb
    5. 初识化mariadb
      • mysql_secure_installation   # 直接输入这个命令,设置root密码,删除匿名用户
    6. 配置myariadb远程登录,可以通过Windows,pycharm等客户端进行连接,在远程登录的话就必须输入刚才设置的root密码
      • grant all privileges on *.* to root@'%' identified by "0923";
      • 授权所有的权限在所有的库,所有的表用户@"所有的地址" identify by"密码";
    7. 刷新授权表,使得权限立即生效
      • flush privilege;
    8. 更改mysql密码
      • set password = PASSWORD("0923")
    9. 创建普通用户xuexue
      • create user xuexue@'%'identify by "0923"
    10. 查询用户信息
      • select host,user,password from user
    11. 授权信息表
      • 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 "密码"
    12. 数据库的中文设置
      1. 查看数据库的编码 
        • s
      2. 修改mysql的配置文件/etc/my.conf, 加入以下信息
      3. [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
      4. 修改配置文件,重启服务
        • systemctl restart mariadb
      5. 查看数据库创建编码,只有在更新了数据库编码之后,创建的数据库,才会使用这个编码
        • show create restart xueren
      6. 可以测试创建 table,写入中文数据
    13. mysql的数据备份
      1. 通过命令导出全部数据
        • mysqldump -uroot -p --all-databases > /data/db.dump
      2. 导入数据库的db文件,在mysql命令行中输入这个命令
        1. source /opt/db.dump  # 这一步是输入的sql语句,在mysql中输入,导入数据
      3. 第二种方式导入数据,通过mysql命令
        • mysql -uroot -p < /opt/db.dump

    3,主从复制

    主库的操作

    1. 开启binlog功能,修改/etc/my.cnf
      • vim /etc/my.cnf
      • [mysqld]
      • server-id=1  3 指明主库的身份id为1
      • log-bin=mysqlsxuexue-bin
    2. 修改配置文件,重启mariadb,使得binlog生效
      • systemctl restart mariadb
    3. 登录mysql,检查主库 的状态
      • show master status;
    4. 创建一个用户,用于进行主从同步
      • create user "xuexue"@'%'identified by "xuexue0923";
    5. 授予账号权限,授予一个从库的身份权限
      • grant replication slave on *.* to"xuexue"@'%';
    6. 锁定mysql表,防止数据写入
      • flush table with read lock
    7. 主从同步,将从库与主库的数据保持一致后,然后解除锁表,一同写入,保证数据的一致性
      • 导出当前的数据用于slave机器导入数据,保证数据的一致性
        • mysqldump -uroot -p --all-databases > /data/db.dump
      • 将此db.dump文件远程传输给slave机器,用于导入
        • scp/data/db.dump root@从库的ip地址(列如:192.168.12.87:/tmp/)
      • 登录slave从库,导入主库的数据信息
        • source /tmp/db.dump(从库的数据库操作)
    8. 查看主库的状态信息,binlog信息
      • show master status;
    9. 解锁表,等待从库的配置
      • unlock tables;

    从库的设置:

    1. 在etc/my.cnf当中打开server-id设置一个和主库不一样的值
      • vim /etc/my.cnf
    2. 重启myariadb
      • systemctl restart mariadb
    3. 查看slave的身份信息
      • show variables like 'server_id';
      • show variables like 'log_bin';
    4. 通过命令,开启主从同步技术
      • change master to master_host=从机ip('192.168.12.96'),
        master_user='xuexue',
        master_password='xuexue0923',
        master_log_file='mysqlxuexue-bin.000001',
        master_log_pos=231;
    5. 开启slave
      • start slave
    6. 检查slave状态,检查两条参数,都是yes,主从ok
      • show slave statusG;
      • Slave_IO_Running: Yes
        Slave_SQL_Running: Yes
    7. 此时连接成功
  • 相关阅读:
    Java基础---多线程
    Java基础---多态、内部类、异常、包
    Java基础---继承、抽象、接口
    Java基础---面向对象
    NSOperation使用
    根据两个日期计算相差的年月日
    代理模式简单说明
    Lua程序设计入门
    zmq-ios framwork
    cocoapods安装与使用
  • 原文地址:https://www.cnblogs.com/ljc-0923/p/10265317.html
Copyright © 2011-2022 走看看