mysql 相关操作记录

给/etc/my.cnf增加下面代码,可以将SQL查询超过1秒的SQL记录下来,以便于分析SQL语句及其效率

后把配置改为如下:
slow_query_log=1
slow_query_log_file = /var/log/mysql/mysql-slow.log
long_query_time = 2
log-queries-not-using-indexes

在mysql使用过程中可以使用 tail -f /var/log/mysql/mysql-slow.log 来查看时实变化情况

========================

mysql 错误日志在 /usr/local/mysql/var/localhost.localdomain.err

========================


如解决Host 'HostName' is not allowed to connect to this MySQL server

解决方法:

1、赋权限 grant all privileges on test.* to 'sinykk'@'%' identified by 'sinykk';
2、关闭防火墙

如果还不行要请确认 on test.*  不要写成  *.*(这可能出错)


=====================================
重置 mysql root 密码
=====================================

1)以 系统root权限登陆
(2)停止MYSQL服务器:
          #service mysqld stop
(3)跳过授权表执行MYSQL服务器:
      # cd /usr/local/mysql/bin
      #./mysqld_safe --skip-grant-tables --skip-networking &
        (注:参数--skip-grant-tables为跳过授权表;--skip-networking为不监听TCP/IP连接)
(4)执行MYSQL客户端:
         #./mysql
(5)使用mysql
数据库
         mysql>use mysql;
(6)更新root密码
         mysql>update user set password=password('新密码') where user='root';
(7)关闭mysql服务器,用正常方试起动
如果您用的不是我这个版本,可以在mysql的安装目录中找一个适合您当前版本的
mysqld_safe,后面加上--skip-grant-tables来跳过授权表,我书上所用的mysqld_safe版本为
"safe_mysqld"(其实写到这里我好像想起来了,在哪看到过说5.0以后把sqfe_mysqld改成mysqld_safe了
mysql->grant all on *.* to runjie@localhost identified by "406408" with grant option;

=======================
在my.cnf中设置的为 /var/lib/mysql/mysql.sock,可是PHP却一直找/tmp/mysql.sock
Warning: mysql_connect(): Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2) in /home/sinykk/test.php on line 5 Could not connect: Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2)

老套路:google 错误信息,确定是/tmp/mysql.sock不存在
       解决办法:
       ps aux | grep mysql
       root      1896  0.0  0.0   1872   548 ?        S    16:00   0:00 /bin/sh /usr/bin/mysqld_safe
       mysql     1935  0.0  0.8 127852 17188 ?        Sl   16:00   0:00 /usr/sbin/mysqld --basedir=/usr --datadir=/var/lib/mysql --user=mysql --pid-file=/var/run/mysqld/mysqld.pid --skip-external-locking --port=3306 --socket=/var/run/mysqld/mysqld.sock
       root      1936  0.0  0.0   3260   740 ?        S    16:00   0:00 logger -p daemon.err -t mysqld_safe -i -t mysqld
       logic0    2287  0.0  0.0   3560   804 pts/0    S+   16:24   0:00 grep mysql

       可以发现里边有这样的一条信息--socket=/var/run/mysqld/mysqld.sock
       直接建立链接:
       ln -s /var/run/mysqld/mysqld.sock /tmp/mysql.sock
       然后service mysql stop
              service mysql start
              mysql -u root -p
       OK了
       至于原理,现在仍然不太明了。

你可能感兴趣的:(mysql)