zoukankan      html  css  js  c++  java
  • 数据字符集mysql主从数据库,分库分表等笔记

    文章结束给大家来个程序员笑话:[M]

        1、mysql的目录:在rpm或者yum安装时:/var/lib/mysql  在编译安装时默许目录:/usr/local/mysql

        2、用rpm包安装的MySQL是不会安装/etc/my.cnf文件的,
    至于为什么没有这个文件而MySQL却也能正常启动和作用,在点有两个说法,
    第一种说法,my.cnf只是MySQL启动时的一个参数文件,可以没有它,这时MySQL会用内置的默许参数启动,
    第二种说法,MySQL在启动时主动应用/usr/share/mysql目录下的my-medium.cnf文件,这种说法仅限于rpm包安装的MySQL,
    解决方法,只需要复制一个/usr/share/mysql目录下的.cnf文件到/etc目录,并改名为my.cnf便可。

        在/usr/share/mysql目录下有很多语言目录和mysql多个适用于不同类型项目的对应配置文件

        3、配置mysql的字符集设置:

          在配置文件中

          在socket          = /var/lib/mysql/mysql.sock后添加default-character-set = utf8 (决议了客服端字符集和连接字符集)

          在myisam_sort_buffer_size = 8M后添加character-set-server = utf8 (决议了服务器字符集和数据库[数据库,表,字段]字符集,由于继承关系),添加collaction-server=usf8_general_ci (这是设置校验字符集,作用于排序有关order by)

        4、开启mysql的log-bin:

        配置文件中开启 log-bin=mysql-bin (即是后面的内容可以随意写,mysql-bin只是说明log-bin的内容写入mysql-bin里面而已),重启mysql后,在/var/lib/mysql下能发现 mysql-bin.000001和mysql-bin.index,说明mysql-bin已开启

        5、关于mysqlbin的一些命令

         mysql提示符下查看bin-log日记
        show master status;
        #显示最后一个bin-log日记和它的最后一个位置
        show master logs;
        #查看全部的bin-log日记,同时标记最后一个pos位置

        6、应用mysqlbinlog命令来查看binlog日记

         如果提示字符集错误---mysqlbinlog: unknown variable 'default-character-set=utf8' ,可以mysqlbinlog --no-defaults /var/lib/mysql/mysql-bin.000001来疏忽字符集错误

        7、什么时候会产生一个新bin-log日记
         1)重启mysql服务
         2)flush logs;
          #刷新bin-log日记,会产生一个新的bin-log日记 如:mysql-bin.00008
         3) reset master;
       #清空全部在bin-log日记,最后只剩下mysql-bin.00001 且位置为初始位置

        每日一道理
    美丽是平凡的,平凡得让你感觉不到她的存在;美丽是平淡的,平淡得只剩下温馨的回忆;美丽又是平静的,平静得只有你费尽心思才能激起她的涟漪。

       需求:公司内真正数据备份与恢复,9:30的时候备份数据,同时刷新bin-log日记,但是10:00数据损坏,如何去恢复9:30以来全部的数据?(在编译安装mysql环境下)

      1.9:30备份数据:
          /usr/local/mysql/bin/mysqldump -uroot -p123 test -l -F >/tmp/test.sql
         -l 将表锁了(防止在导表的过程中,又有用户修改或者添加数据),只读  -F (flush) 刷新bin-log日记(产生新的日记文件,继承保存后面的日记记录)
       2.9:30-10:00数据都市写到bin-log
         /usr/loca/mysql/bin/mysqlbinlog --no-defaults mysql-bin.000003
        #只保存增、删、改的语句
      3.10:00数据损坏,如何恢复数据:
        1)恢复9:30备份的数据
            /usr/local/mysql/bin/mysql -uroot -p123 test </tmp/test.sql
        2)恢复9:30-10:00之间的bin-log日记中的增、删、改语句
           /usr/local/mysql/bin/mysqlbinlog --no-defaults --stop-position=367 mysql-bin.000003|/usr/local/mysql/bin/mysql -uroot -p123 test

          --stop-position 为要恢复数据在logbin的最后日记,可以通过查看日记文件查找位置,还有--start-position表示恢复从该位置当前的数据
      4.这样,数据全部恢复完毕

        8、主从数据库

       从mysql服务器:
      1.vi /etc/my.cnf
      server-id = 2
      log-bin=mysql-bin
      master-host=192.168.255.1
      master-user=user1
      master-password=123
      master-port=3306
      2.重启mysql
      3.show slave statusG
      Slave_IO_Running: Yes
      #从主服务器复制bin-log成功
      Slave_SQL_Running: Yes
      #把复制过去的sql语句执行成功

        4.出错
    #原因,与主服务器的最后一个pos位置对接不成功
    slave stop;
    change master to
    master_host="192.168.10.1",
    master_user="user1",
    master_password='123',
    master_port=3306,
    #在主服务器上show master status;
    master_log_file="mysql-bin.000001",
    master_log_pos= 279;
    slave start;

    文章结束给大家分享下程序员的一些笑话语录: 一条狗在街上闲逛,看见橱窗里一张告示:「招聘程序员。会编程,有团队精神,至少精通两种语言。均等机会。」
      那条狗就进去申请,但是被拒绝了。
      「我不能雇一条狗在公司里做事。」经理说。
      狗不服气,指着告示上「均等机会」几字抗议。
      经理没法,叹了口气,不屑地问道:「你会编程吗?」
      那条狗默默地走到电脑前,编了个程序,运作准确。
      「你有团队精神吗?」经理问。
      那条狗掉头看了看门外,一大群野狗在外面虎视耽耽。
      「我真的不能雇狗做这份工作。」经理气急败坏地说。
      「就算会编程、有团队精神,但是我需要的雇员至少要能精通两种语言。」
      那条狗抬头看着经理说:「喵-噢。」

    --------------------------------- 原创文章 By
    数据和字符集
    ---------------------------------

  • 相关阅读:
    实现随机颜色
    为网站实现一个验证码
    vue.js帐号,密码,邮箱和移动手机号码正则验证
    从网址中截去主机名和参数
    vue.js判断网址参数是否有效
    创建windows service
    vue.js axios call api example
    vue.js mouse over change the image
    jQuery接收url的参数
    ms sql server排序
  • 原文地址:https://www.cnblogs.com/xinyuyuanm/p/3150286.html
Copyright © 2011-2022 走看看