zoukankan      html  css  js  c++  java
  • mysql

      

    上网搜集总结下。

      数据库的设计应该是小而美,精而简的,数据库也只是整体项目的一部分,像触发器,存储过程这些能实现的,在整体项目里面肯定也可以用应用程序代码来完成。我们用MySQL,就是用它厉害的地方,比如:表、索引、事务这些,而不是要它所有的功能都得用上。MySQL5.6之前,生产环境的主库里面是不允许使用子查询的。MySQL5.6之前子查询的性能特别差。建议使用mysql5.6以后的mysql数据库

    1.一个基础的sql监控,查看执行sql的耗时

      (1) 开启profiling参数 : set profiling=1;
      (2) 执行sql
      (3) 通过执行SHOW PROFILES 命令获取当前系统中保存的多个Query的profile的信息。(可选)
      (4 )计算之前执行的sql时间总和:

      不过这种方法一般的sql连接工具都会有提示

    (mysql-front)

     

    2。开启mysql的query日志,配置日志路径

      位置是 mysql.ini

      

    log=C:/AppServ/MySQL/mysql.log
    

      这样mysql的所有sql操作都会记录到这个日志中去。

      在linux可以用命令  tail -f /var/log/mysql/mysql.log 进行实时查看

      windows没有tail命令可以下载 baretail 工具进行实时查看

    log=C:/AppServ/MySQL/mysql.log
    
    
    这个命令好像不能用,我的环境是centos搭载的mysql5.6,
    出项一个坑,
    $:mysql  start
    The server quit without updating PID file ...
    $:mysql status
    
     告诉你未启动,lock file在哪
    
    解决方法:
    
    1.查看日志
    2016-09-23 14:45:48 0 [Note] Binlog end
    160923 14:45:48 mysqld_safe mysqld from pid file /usr/local/mysql/var/iZ25xam6ypbZ.pid ended
    160923 14:53:37 mysqld_safe Starting mysqld daemon with databases from /usr/local/mysql/var
    2016-09-23 14:53:37 0 [ERROR] /usr/local/mysql/bin/mysqld: ambiguous option '--log =/tmp/mysql.log' (log-bin, log_slave_updates)
    2016-09-23 14:53:37 0 [ERROR] Aborting
    
    2016-09-23 14:53:37 0 [Note] Binlog end
    160923 14:53:37 mysqld_safe mysqld from pid file /usr/local/mysql/var/iZ25xam6ypbZ.pid ended
    
    2.发现错误
    ambiguous option '--log =/tmp/mysql.log' (log-bin, log_slave_updates)
    3.解决错误
    mdzz
    

      

    mysql错误code1146

      原因:

      因为想用excel上传数据到数据库但是  max_allowed_packet 设置的太小,打开my.cnf 修改配置文件,默认值只有1m,我改了20m.

      但是手贱的我没有关掉shell而是打开了mysql下的var目录,看到几个文件比较大以为是日志文件了手残把他给删了,哈哈,回来就table not found了

      原来是var下的 ibdata1 是数据库存数据的文件,但是当时我并不知道是这出了问题于是脑残的把服务器重启了 。

      后来网上有建议可以恢复删除文件,但是我已经回复不了了。

       解决方法,还好备份过sql文件,保存的结构但是数据没了。mysql重装了下。

      总结:遇到问题先抽根烟别急着解决问题。

    mysql版本升级

      之前的版本是mysql5.5n, 因为需要设置timestamp,mysql5.5不支持同时记录增加时间和修改时间,mysql5.6以上的版本支持。

    系统是windows,

      1.首先备份数据库文件

      2.下载mysql5.7的zip包

      3.解压到指定目录。

      4.控制台打开mysql bin目录输入mysqld --install

      5.net mysql start启动报 3534错误(原因是没有data目录,千万不要复制之前的目录到这。)

      6.打开bin目录,输入mysqld --interialize (mysql会在默认datadir安装mysql库以及相应的日志文件存储文件,)

      7.net start mysql

  • 相关阅读:
    搭建Maven版SSM工程
    mac终端常用的命令
    常见的HTTP请求错误
    Go通关03:控制结构,if、for、switch逻辑语句
    Go通关14:参数传递中,值、引用及指针之间的区别
    Go通关13:究竟在什么情况下才使用指针?
    Go通关12:如何写出高效的并发模式?
    Go通关11:并发控制神器之Context深入浅出
    Go通关10:并发控制,同步原语 sync 包
    Go通关09:并发掌握,goroutine和channel声明与使用!
  • 原文地址:https://www.cnblogs.com/yang95/p/5896581.html
Copyright © 2011-2022 走看看