zoukankan      html  css  js  c++  java
  • mysql01

    mysql的安装与配置

    安装centos6.9 

    网卡设置

    1 cd /etc/sysconfig/network-scripts
    2 vim ifcfg-eth0
    3 onboot yes
    4 DNS1=8.8.8.8

    service network restart

    mysql的安装

    1.http://dev.mysql.com/downloads/repo/yum/

    2.yum localinstall mysql57-community-release-el6-11.noarch.rpm
    3.yum -y install mysql-community-server

    重启mysql服务

    service mysqld start

    第一次登陆从log日志中取得随机密码

    1 more /var/log/mysqld.log
    "a temporary password is generated for root"
    q 退出

    修改密码的复杂度

    1 修改密码的复杂度
    2 set global validate_password_policy=0;
    3 修改密码的长度
    4 set global validate_password_length=1;
    5 
    6 alter user 'root'@'localhost' identified by 'root';

    其他操作

     1 创建用户
     2 create user 'test'@'%'  identified by 'test';
     3 
     4 查看当前的用户
     5 select user,host from mysql.user;
     6 
     7 通过用户名和主机才能唯一确定一个用户
     8 alter user 'test'@'%'  indentified by '1234';
     9 
    10 赋予权限
    11 grant + 权限 + 数据库.数据表 to 用户
    12 grant replication slave on *.* to 'test'@'%';
    13 
    14 回收权限
    15 revoke all on *.* from 'test'@'%';
    16 
    17 删除用户
    18 drop user 'test';
    19 
    20 备份数据库
    21 mysqldump -uroot -p 数据库名  备份到的路径
    22 mysqldump -uroot -p user > /root/mysqlback.sql
    23 
    24 恢复数据库
    25 mysqldump -uroot -p mytest >~/bak/mytest.sql
    26 user mytest;
    27 drop table user;
    28 quit
    29 
    30 mysql -uroot -p mytest < mytest.sql

    主从复制

    数据冗余,提高数据的安全性
    提高服务器的负载

    原理:从节点读取主节点的binlog日志
    场景:数据库备份,读写分离

    主从配置搭建

    主192.168.239.140    从192.168.239.141

    主机配置

    1 创建用户
    2 create user 'repl'@'192.168.239.%' indetified by 'repl';
    3 
    4 查看用户
    5 select * from mysql.userG;
    6 
    7 赋予只读权限
    8 grant replication slave on *.* to 'repl'@'192.168.239.%' identified by 'repl';

    mysql 日志


    Error log 错误日志
    General query log 普通查询日志
    slow query log 慢查询日志
    Binary log 二进制日志文件

    Binary log作用:增量备份,主从

     1 开启binlog日志
     2 vim /etc/my.cnf
     3 server-id=1  #多节点不可重复
     4 log-bin=/var/lib/mysql/mysql-bin  #指定bin log 的日志文件名
     5 
     6 
     7 mysql-bin.00001 是日志文件的数据文件
     8 mysql-bin.index 是日志文件的索引文件
     9 
    10 查看bin log 文件配置
    11 show variables like '%log_bin%';

    查看二进制文件

     1 mysqlbinlog filename
     2  3 >show binlog events;
     4 
     5 
     6 查看具体的二进制文件
     7 >show binlog events in ‘Log_name’;
     8 
     9 每次重启服务器,服务器调用flush logs,会重创建新的bin-log日志文件
    10 
    11 flush logs 刷新日志文件,产生新的日志文件
    12 
    13 show master status;
    14 查看当前日志状态
    15 
    16 show master logs
    17 查看所有的日志文件
    18 
    19 reset master 
    20 清空所有的日志文件
    21 
    23 binlog 恢复数据
    24 
    25 mysqlbinlog bin 日志文件名 | mysql -uroot -p
    26 mysqlbinlog mysql-bin.000001 | mysql -uroot -p
    27 
    28 恢复指定数据
    29 mysqlbinlog mysql-bin.000001-start-position 219 -stop-position 412 | mysql -uroot -p


    从机配置

     1 复制网卡信息,修改网卡信息(随机)
     2 00:0C:29:D5:95:67 
     3 
     4 vi  /etc/sysconfig/network-scripts/ifcfg-eth0
     5 修改 mac 地址
     6 
     7 cd /etc/udev/rules.d
     8 rm -rf *
     9 
    10 重启
    11 reboot

    从节点
    配置同步日志
    指定主节点的ip 端口,用户,等信息
    启动从节点

    1 配置日志
    2 vi /etc/my.cnf
    3 
    4 server-id=2 与主机不一致
    5 log-bin=/var/lib/mysql/relay-bin
    6 
    7 重启服务
    8 service mysqld restart
    1 change master to master_host='192.168.239.140' , master_port=3306,master_user='repl',master_password='repl',master_log_file='mysql-bin.000001',master_log_pos=0;
    2 
    3 start slave;
    4 
    5 show slave statusG
    6 
    7 注意
    8 Slave_IO_Running  Connection  连接到主库,并读取主库的日志到本地,生成本地日志文件
    9 Slave_SQL_Running  Yes  读取本地日志文件,并执行日志里的SQL命令。

    异常处理

    Slave_IO_Running NO
    Slave_SQL_Running Yes

    1 cd /var/lib/mysql
    2 cat auto.cnf
    3 
    4 vi auto.cnf
    5 随机修改server-uuid

    Slave_IO_Running Connection
    Slave_SQL_Running NO

     1 解决办法一、
     2 Slave_SQL_Running: No
     3 1.程序可能在slave上进行了写操作
     4 2.也可能是slave机器重起后,事务回滚造成的.
     5 一般是事务回滚造成的:
     6 解决办法:
     7 mysql> slave stop;
     8 mysql> set GLOBAL SQL_SLAVE_SKIP_COUNTER=1;
     9 mysql> slave start;
    10 
    11 解决办法二、
    12 首先停掉Slave服务:slave stop
    13 到主服务器上查看主机状态:
    14 记录File和Position对应的值 ,注意master_log_file是否发生变化
    15 进入master
    16 mysql> show master status;
    17 mysql>change master to master_host='192.168.239.140' , master_port=3306,master_user='repl',master_password='repl',master_log_file='mysql-bin.000001',master_log_pos=0;
    18 mysql> show slave statusG

    主机需要关闭防火墙

    service iptables status

    service iptable stop

    slave
    mysql -urepl -p -h192.168.239.140

    ok

    在主节点上操作,从机会默认同步

    mysql 的主主复制就是两台 mysql 节点互为主从

    在原来主从的基础上做如下操作:
    1.开启原从节点的 binlog 日志

    1 salve
    2 
    3 vim /etc/my.cnf
    4 log-bin=/var/lib/mysql/mysql-bin
    5 service mysqld restart

    2.原从节点创建读取副本的用户

    1 slave
    2 create user 'repl'@'192.168.239.%' identified by 'repl';
    3 grant all on *.* to 'repl'@'192.168.239.%';
    4 
    5 show master status;


    3.在原主节点中让 master 指向从节点

    1 change master to master_host='192.168.239.141',master_port=3306,master_user='repl',
    2 master_password='repl',master_log_file='mysql-bin.000001',master_log_pos=616;

    4.在原主节点执行 start slave 命令

    master

    start slave;

    以上步骤即可完成主主节点的配置
    下面有一个问题需要解决,就是自增主键的问题,按照上面的做法,如果向两个节点中插
    入数据,一定会导致主键的重复,这里需要一个小的技巧
    这里让第一台节点主键采用 1, 3 ,5 ,7.的方式自增
    第二台节点采用 2, 4, 6, 8 的方式递增,这样就不会导致主键冲突了,在 MySQL5.7 中,不需要配置主键自增策略,每个库的操作都会让另外一个库递增

     1 master
     2 vim /etc/my.cnf
     3 
     4 auto_increment_increment=2
     5 auto_increment_offset=1
     6 
     7 
     8 slave
     9 vim /etc/my.cnf
    10 
    11 auto_increment_increment=2
    12 auto_increment_offset=2

  • 相关阅读:
    oracle拆分逗号分隔字符串 实现split[转]
    Oracle 编译、调用或调试Procedure、Function或Package时卡死问题
    The log sequence numbers 1602631 and 1602631 in ibdata files do not match the log sequence number 2188207 in the ib_logfiles!
    win10下安装pl/sql developer 10.0.5.1710 报错ORA-12154
    Oracle EBS-SQL (INV-5):检查期间拉式物料领用记录数.sql
    Oracle EBS-SQL (INV-4):检查负库存记录数.sql
    Oracle EBS-SQL (WIP-16):检查期间手工下达的车间任务数.sql
    Oracle EBS-SQL (WIP-15):检查车间任务物料未发数量与现有量对照.sql
    Oracle EBS-SQL (WIP-14):检查车间需求与BOM差异对照.sql
    Oracle EBS-SQL (WIP-13):检查任务组件未选MRP净值.sql
  • 原文地址:https://www.cnblogs.com/quyangyang/p/11386629.html
Copyright © 2011-2022 走看看