您的位置:首页 > 数据库 > MySQL

mysql跟踪sql

2015-07-30 17:53 561 查看
mysql中执行的sql跟踪比oracle简单多了,它自身有log。我们只要打开这个log记录,执行sql语句,再查看这个log就可以了。
1. 首先要打开log的开关
使用命令:show variables like '%log%';
能看到一个查询结果:



将其设置为ON,使用以下命令:
set global general_log=ON
再查看一下:show variables like '%log%'; general_log的开关应该已经打打开了



注意,我们还能看到一个general_log_file, 它有默认值,我们可以修改,也可以不改。
我们修改一下,使用 vi /etc/mysql/my.cnf (我尝试过用set来设置,但没有成功,只能修改mysql的配置文件了)
增加一行:log=/tmp/my_luyx.log



重启mysql,再次查看show variables like '%log%';



这样就完全设置好了,在mysql的客户端运行一些sql语句,在/tmp/my_luyx.log中就能查看到刚才执行的sql语句了。

============Mysql 非本机连接报10061错误==============
在Ubuntu上使用sudo apt-get install mysql-server-5.0 安装了mysql,在外面访问不了mysql,但是在Ubuntu上访问是没有问题的。



提示如图的:can't connect to mysql server on *** (11061)
于是开始查找原因:
1. mysql已经打开, 用户已经创建,且用户的访问权限是@%
2. 3306端口是不是没有打开?
使用nestat命令查看3306端口状态:
~# netstat -an | grep 3306
tcp 0 0 127.0.0.1:3306 0.0.0.0:* LISTEN

从结果可以看出3306端口只是在IP 127.0.0.1上监听,所以拒绝了其他IP的访问。解决方法 :修改/etc/mysql/my.cnf文件。 打开文件,找到下面内容:
-----------
# Instead of skip-networking the default is now to listen only on
# localhost which is more compatible and is not less secure.
bind-address = 127.0.0.1
-----------
把上面这一行注释掉或者把127.0.0.1换成合适的0.0.0.0,或者注释掉。

重新启动后,重新使用netstat检测:
~# netstat -an | grep 3306
tcp 0 0 0.0.0.0:3306 0.0.0.0:* LISTEN
这时就可以连接了

转自:http://luyongxin88.blog.163.com/blog/static/9255807201131865219888/
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: