精华内容
下载资源
问答
  • 前两天客户打电话跟我讲,系统中有条订单数据丢失了,这让我很诧异。...1.准备工作登录Linux服务器cd到mysql的data目录转存日志文件下载日志文件分析日志文件2.细嚼慢咽,品味道省略登录服务器的指令...

    前两天客户打电话跟我讲,系统中有条订单数据丢失了,这让我很诧异。好好的数据怎么说丢,就丢了。此事必有蹊跷,于是今天我要一探究竟,看看数据是否录入数据库中去了。经过之前初步的排查,发现数据应该是被人为删除了。只是没有确凿的证据,下面我们将一步一步找到证据验证结果。

    1.准备工作

    登录Linux服务器

    cd到mysql的data目录

    转存日志文件

    下载日志文件

    分析日志文件

    2.细嚼慢咽,品味道

    省略登录服务器的指令。

    ps aux |grep mysql //查看mysql的进程状态

    注意红线标记的地方datadir即:Path to the database root。

    2019020219432fl3vgxlkvy.png

    cd /alidata/server/mysql/data //cd到mysql data目录

    ls(ll)指令查看data目录下文件信息 //cd到data目录后执行该指令

    201902021943ix2hgzdy4sa.png

    到此为止我们已经完美的查询到了mysql-bin文件,尔后我们对所需要的文件进行转存,代码如下:

    //将000017文件转存到/root目录中,且重命名为log.log

    mysqlbinlog ./mysql-bin.000017 > /root/log.log

    下载log.log到本地盘,这样便于分析日志信息。由于这次使用的是SecureCRT工具所以,直接使用sftp进行文件传输。

    sftp> lcd e:\

    sftp> get log.log

    201902021943acxq13gdokm.png

    过滤日志信息,系统是win10,所以打开命令行管理工具。使用findstr来过滤信息。

    findstr "20161221120336472" e:\log.log //查询20161221120336472

    真是太厉害了,您已经成功的找到了丢失的数据操作信息。

    201902021943gyowczpoqfz.png

    PS:mysql是个好玩的东西。祝大家圣诞节快乐!

    展开全文
  • ID NAME ---------- ----------------------------- 1 突破玩法界限 当然了,我的这个问题刚好数据库层面是完全支持的,这样就省去了很多额外的工作,如果数据库层面的字符集不支持,那很可能就得重建库来改变字符...

    在本地的虚拟机环境一直凑合着用英文,今天想看看中文的东西都显示乱码,下定决心要把问题解决了。

    如果直接打印文本内容,通过putty也会显示乱码。

    [ora11g@rac1 ~]$ cat aa.sh

    δ? ε??ο?θ?ζ―δ?δ??ζ?θ―

    [ora11g@rac1 ~]$

    6985e76bf8ef2f37e86e6e5514fdb6db.png

    这个时候很可能是putty的编码转换的问题,通过查看putty的设置,如上,可以看到应该选为utf-8。

    选为UTF-8以后,重新打印,就没有问题了。

    [ora11g@rac1 ~]$ cat aa.sh

    你好,这是一个测试

    第一个问题解决了,第二个问题又来了,来看看数据库层面的乱码问题。

    [ora11g@rac1 ~]$ sqlplus n1/n1

    SQL> select *from test;

    ID NAME

    ---------- -----------------------------

    1 ??????

    这个时候看看环境变量NLS_LANG的设置,如果为空,很可能会出问题。

    [ora11g@rac1 ~]$ echo $NLS_LANG

    [ora11g@rac1 ~]$

    简单设置一下,这个最好和数据库层面的字符集要一致。

    [ora11g@rac1 ~]$ echo $NLS_LANG

    american_america.AL32UTF8

    再来查看一下,就没有问题了。

    SQL> select *from test;

    ID NAME

    ---------- -----------------------------

    1 突破玩法界限

    当然了,我的这个问题刚好数据库层面是完全支持的,这样就省去了很多额外的工作,如果数据库层面的字符集不支持,那很可能就得重建库来改变字符集了。

    select *from nls_database_parameters

    SQL> /

    PARAMETER                      VALUE

    ------------------------------ ----------------------------------------

    NLS_LANGUAGE                   AMERICAN

    NLS_TERRITORY                  AMERICA

    NLS_CURRENCY                   $

    NLS_ISO_CURRENCY               AMERICA

    NLS_NUMERIC_CHARACTERS         .,

    NLS_CHARACTERSET               AL32UTF8

    NLS_CALENDAR                   GREGORIAN

    NLS_DATE_FORMAT                DD-MON-RR

    NLS_DATE_LANGUAGE              AMERICAN

    NLS_SORT                       BINARY

    NLS_TIME_FORMAT                HH.MI.SSXFF AM

    NLS_TIMESTAMP_FORMAT           DD-MON-RR HH.MI.SSXFF AM

    NLS_TIME_TZ_FORMAT             HH.MI.SSXFF AM TZR

    NLS_TIMESTAMP_TZ_FORMAT        DD-MON-RR HH.MI.SSXFF AM TZR

    NLS_DUAL_CURRENCY              $

    NLS_COMP                       BINARY

    NLS_LENGTH_SEMANTICS           BYTE

    NLS_NCHAR_CONV_EXCP            FALSE

    NLS_NCHAR_CHARACTERSET         AL16UTF16

    NLS_RDBMS_VERSION              11.2.0.3.0

    另外系统层面的乱码,网上查看了一下,有些人建议修改/etc/sysconfig/i18n的设置。

    [ora11g@rac1 ~]$ cat /etc/sysconfig/i18*

    LANG="en_US.UTF-8"

    SYSFONT="latarcyrheb-sun16"

    如果修改为中文的,一定要注意设置的值,在我本地做测试,是不需要修改的,本身就支持,我修改的时候,竟然改错了,结果重新登录及报了一大堆的错误,如下:

    [ora11g@rac1 caipiao]$ su - ora11g

    Password:

    -bash: warning: setlocale: LC_CTYPE: cannot change locale (zn_CN.UTF-8): No such file or directory

    -bash: warning: setlocale: LC_COLLATE: cannot change locale (zn_CN.UTF-8): No such file or directory

    -bash: warning: setlocale: LC_MESSAGES: cannot change locale (zn_CN.UTF-8): No such file or directory

    -bash: warning: setlocale: LC_NUMERIC: cannot change locale (zn_CN.UTF-8): No such file or directory

    -bash: warning: setlocale: LC_TIME: cannot change locale (zn_CN.UTF-8): No such file or directory

    如果修改,应该改为zh_CN,算是一个低级错误。

    展开全文
  • 修改my.cnf (mysql配置文件)在文件中找到mysqld 在下面添加 skip-grant-tables保存退出3、启动mysqlservice mysql start4、输入mysql 无密码状态下进入数据库mysql5、选择数据库...

    1、ps -aux | grep mysql 查看mysql运行状态,如果在运行中则把mysql停掉

    service mysql  stop

    2、进入etc目录 修改my.cnf (mysql配置文件)

    在文件中找到mysqld 在下面添加 skip-grant-tables

    保存退出

    3、启动mysql

    service mysql start

    4、输入mysql 无密码状态下进入数据库

    mysql

    5、选择数据库

    use mysql

    6、修改root所属密码

    update user set Password = password ( 'new-password' ) where user = 'root' ;

    7、刷新

    flush privileges;

    8、保存退出

    exit;

    9、删除 my.cnf 文件中 skip-grant-tables

    10、重启mysql

    service mysql restart

    11、从新输入 mysql -uroot -p [enter]password(输入你刚修改过的密码)[enter]进入

    展开全文
  • MySQL数据库主要有5种类型的日志,分别为慢查询日志(log-slow-queries),二进制日志(log-bin),错误日志(log-error),查询日志(log),更新日志(log-update)。在新的MySQL版本中,已取消了更新日志,可以用二进制日志...

    MySQL数据库主要有5种类型的日志,分别为慢查询日志(log-slow-queries),二进制日志(log-bin),错误日志(log-error),查询日志(log),更新日志(log-update)。在新的MySQL版本中,已取消了更新日志,可以用二进制日志来替代这个功能。文章侧重讲解慢查询日志和二进制日志。

    慢查询日志(log-slow-queries)

    MySQL慢查询,指的是查询消耗时间较多,或者没有使用索引的查询,MySQL可以同时记录这两种情况:

    #慢日志保存路径

    log-slow-queries = slow.log

    超过2秒的查询

    long_query_time = 2

    没有使用索引的查询

    log-queries-not-using-indexes

    二进制日志(log-bin)

    在MySQL中,如果启用二进制日志记录,则MySQL的变更修改都会被记录到日志文件中:

    mysql> show variables like ‘log_bin’;

    ±--------------±------+

    | Variable_name | Value |

    ±--------------±------+

    | log_bin | ON |

    ±--------------±------+

    1 row in set

    如果想关闭bin日志的记录,可以修改配置文件my.ini,把里面的log-bin这一行注释掉,重启mysql服务。

    查看的数据库的bin日志:

    mysql> show binary logs;

    ±-----------------±----------+

    | Log_name | File_size |

    ±-----------------±----------+

    | mysql-bin.000001 | 946525 |

    ±-----------------±----------+

    1 row in set

    如果没有主从复制,可以通过以下方式,重置数据库日志,清除之前的日志文件:

    mysql> reset master;

    Query OK, 0 rows affected

    但是如果存在复制关系,应当通过PURGE的方式来清理bin日志:

    语法如下:

    PURGE MASTER LOGS TO ‘log_name’;

    PURGE MASTER LOGS BEFORE ‘date’;

    用于删除列于在指定的日志或日期之前的日志索引中的所有二进制日志。这些日志也会从记录在日志索引文件中的清单中被删除。

    例如:

    PURGE MASTER LOGS TO ‘mysql-bin.010’;

    PURGE MASTER LOGS BEFORE ‘2008-06-23 15:00:00’;

    清除3天前的 binlog

    PURGE MASTER LOGS BEFORE DATE_SUB( NOW( ), INTERVAL 3 DAY);

    BEFORE变量的date自变量可以为’YYYY-MM-DD hh:mm:ss’格式。

    如果有主从复制,则注意以下几个问题:

    1、从服务器是活动的,并且刚好在读取你正在试图删除的日志之一,那么执行这个命令不会起作用,而是触发一个错误。

    2、从服务器是停止的,你碰巧清理了其想要读取的日志之一,则从服务器启动后不能复制。

    3、从服务器是活动的,没有读取你试图删除的日志,那个这个命令是安全的,而且执行这个命令时从服务器不需要停止工作。

    要清理日志,需按照以下步骤:

    在每个从属服务器上,使用SHOW SLAVE STATUS来检查它正在读取哪个日志。

    使用SHOW MASTER LOGS获得主服务器上的一系列日志。

    在所有的从属服务器中判定最早的日志。这个是目标日志。如果所有的从属服务器是更新的,这是清单上的最后一个日志。

    备份你将要删除的所有日志。(这个步骤是自选的,但是建议采用。)

    清理所有的日志,但是不包括目标日志,因为从服务器还要跟它同步

    参考:

    http://blog.csdn.net/mycwq/article/details/17209169

    http://ourmysql.com/archives/959

    http://dev.mysql.com/doc/refman/5.0/en/binary-log.html

    展开全文
  • 1.建立数据库mysql>create database test; //建立一个名为"test"的数据库2.建立数据库表:mysql> create table test-> (name char(16) not null,-> passwd char(16)->); //建立一个名为"test"的...
  • 一、MySQL数据库简介MySQL是一个真正的多用户、多线程SQL数据库服务器。SQL(结构化查询语言)是世界上最流行的和标准化的数据库语言,它使得存储、更新和存取信息更加容易。MySQL是一个客户机/服务器结构的实现,它由...
  • 操作mysql数据库,相信大家最熟悉的应该是用navicat工具来新建数据库,建表,查询数据,查看表结构等。但是如果数据库与本操作机器不在同一个局域网内,并且对方环境也不支持vpn的情况下,如何查询mysql中的数据库,...
  • mysql中文乱码解决方法:将mysql数据库编码统一utf8查看数据库编码:show variables like 'character%';编辑/etc/my.cnf[mysql]default-character-set=utf8[mysqld]datadir=/var/lib/mysqlsocket=/var/lib/mysql/...
  • mysql -u username -p(适用于设置密码的mysql数据库)查询当前存在的数据库1、mysql>show databases。2、连接数据库mysql>use vos3000。3、查询当前数据库存在的表格mysql>show tables。4、查看表结构 desc ...
  • 用C语言操纵Mysql原文:用C语言操纵Mysql以下代码块是用来连接数据库的通讯过程,要连接MYSQL,必须建立MYSQL实例,通过mysql_init初始化方能开始进行连接....陈2014-12-09793浏览量LinuxMysql数据库浅析(一)...
  • linuxmysql数据库安装

    2021-05-12 11:43:49
    linuxmysql数据库安装 1.准备安装包 这⾥下载的是 mysql-5.7.30-linux-glibc2.12-x86_64.tar.gz安装包,并将其直接放在了 root⽬录下 2.卸载系统⾃带的mariadb ⾸先查询已安装的 Mariadb安装包: rpm -qa|grep ...
  • 慕莱坞森怎么查看linux上安装mysql数据库方法/步骤1查找以前是否安装有mysql,使用下面命令:rpm -qa|grep -i mysql如果显示有如下包则说明已安装mysqlmysql-4.1.12-3.RHEL4.1mysqlclient10-3.23.58-4.RHEL4.12如果...
  • LinuxMysql数据库的基础操作一、Mysql数据介绍二、数据库相关术语介绍1.数据库相关名词2.相关术语介绍三、Mysql数据库的管理1.创建数据库用户2.查询用户状态3.修改密码及删除用户四、创建数据库及表1.查看当前...
  • Linux下忘记数据库密码的解决方法1.vim /etc/my.cnf2.在[mysqld]下添加一行skip-grant-tables,然后保存并退出。3.重启mysql服务:service mysqld restart。4.不用密码直接登录 mysql -u root(免费学习视频教程推荐...
  • 《 如何完全卸载 LinuxMysql 数据库 》1、在卸载前,先看看系统中有哪些 mysql 包,输入命令 “ rpm -qa|grep mysql ”如下图:2、先删除 mysql client 和 mysql server,输入命令 “ yum remove mysql ”如下图...
  • linux安装MySQL数据库

    2018-08-17 17:14:12
    1、下载Mysql数据库 2、把安装包MySQL-5.5.52-1.el6.x86_64.rpm-bundle.tar放到/home目录下 # tar -xvf MySQL-5.5.52-1.el6.x86_64.rpm-bundle.tar //解压文件 3、执行安装命令前,先执行查询命令 # rpm -qa|...
  • Linux 配置MYSQL数据库

    2020-10-10 14:03:47
    linux uname -u 查询系统位数 https://dev.mysql.com/downloads/mysql/inux 安装mysql服务分两种安装方法: ①源码安装,优点是安装包比较小,只有十多M,缺点是安装依赖的库多,安装编译时间长,安装步骤复杂容易...
  • Linux安装mysql数据库

    2020-07-31 14:48:32
    一、Linux下安装mysql 1.安装mysql前准备,卸载mariadb (1) 查询一下mariadb的相关包 rpm -qa | grep mariadb CentOS7.7最小版默认安装了mariadb-lib库,而mysql-5.7不兼容这个库,需要将其卸载 (2)卸载查询到...
  • 首先linux 下查看mysql相关目录查看 mysql 的安装路径执行查询 SQLmysql>show variables like '%dir%';datadir 就是数据路径确定了运行路径,执行导入、导出mysql数据库命令一、导出数据库用mysqldump命令(注意:...
  • 上一节我们看了怎么使用mysql提供的API来连接mysql数据库,现在来看看怎么执行一条简单的查询语句,并且把查询的结果显示出来。 准备工作:首先新建了一个数据库inote,在这个数据库下面新建了一张表user,有两个...
  • 查询数据总量 mysql> select count(name) from city; 2.去重查看该列数据总量 mysql> select count(distinct(name)) from city; #以上两个值相等则可以设置唯一建索引 例: #1.查看列的总数据量 mysql> select count...
  • linux下关系型数据库解释及mysql基本命令详解1.RDBMS:关系型数据库,如下功能:数据库创建、删除、修改创建表、删除表、修改表索引的创建、删除用户和权限创建、修改、删除数据新增、删除、修改查询2.myslq属于关系型...
  • 脚本文件名:myshell内容如下: #!/bin/bash ...username="root" ...# mysql数据库 database="apollo11" # 登录mysql,操作mysql的命令要放在EOF中间,否则不起作用 mysql -h192.168.31.115 -u$username -p$passw...
  • Linux下使用MySQL(特指MySQL的客户端工具)进行查询,当数据比较多时,很快就一页一页的翻过去了,无法看清数据。在Linux下是有办法看清每一页的数据的。可以用--pager参数比如MySQL --pager=more或者MySQL --pager...
  • 一、常用的查询语句1.SELECT:字段表达式select既可以做查询,也可以做输出select rand(); -- 输出随机数select unix_timestamp(); -- 显示Unix时间戳select id, name from student;2.FROM子句语法:select 字段 ...
  • LinuxMySQL数据库的备份与还原,mysql快速导入导出数据库实例演示,解决mysql大数据量数据库导出慢的问题。 输入完密码不报错就开始导库了,等待导完库自己会跳出来。 mysql 数据库导出优化 如果数据量很大的话,...
  • Linuxmysql数据库查询语句(一)

    千次阅读 2019-10-26 14:27:21
    最简单的查询语句 select * from employee1(表名); 这种查询可以查到表中的所有数据。 select name,salary,post from employee1; 根据自己的需要查看有关的信息。还有去重语句distinct(select distinct post ...
  • LinuxMySQL数据库系统

    2013-07-10 19:12:49
    MySQL服务基础:MySQL是开源的关系型数据库服务器软件:...MySQL的编译安装:为了确保MySQL数据库的完整性、可定制性,本实验采用源码编译的方式安装MySQL数据库系统。软件:mysql-5.1.55.tar.gz。1、准备工作:为了...
  • Linuxmysql数据库的基本管理

    千次阅读 2020-08-19 00:40:26
    一. 数据库的介绍 1.什么是数据库 数据库就是个高级的表格软件 2.常见的数据库 mysql oracle mongodb db2 sqlite sqlserver ..., ...管理数据库需要使用SQL(结构化查询语言) SQL语言分为: 1 数据查询语言DQL 按
  • mysql数据库的基本操作 目录: (1)前期准备,安装及测试mysql数据库 (2)数据库的基本操作 (3)数据库的基本操作——单表查询 (4)数据库的基本操作——多表查询 (5)数据库的基本操作——子查询 (1)...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 2,590
精华内容 1,036
关键字:

linux查询mysql数据库

linux 订阅
mysql 订阅