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

原文地址:https://www.cnblogs.com/yang95/p/5896581.html