数据库(MySql)
Jan 12
如何在Windows下监控mysql正在执行的sql语句和日志
因为我们开发的时候大部分是在本机进行,使用本地的数据库,所以这边以本地为例
以本机mysql为例,先查看mysql日志启用情况,默认情况下mysql日志是关闭状态,
可以通过如下语句 SHOW VARIABLES LIKE "general_log%" ,进行查看,
这时我们看到的是OFF,还有日志所在的位置,使用此默认位置


how-to-show-mysql-sql-log
可以通过如下语句开启,SET GLOBAL general_log = 'ON',执行成功之后看到如下
这样我们就开启mysql日志文件了,
若是在Linux系统下,我们直接使用 tail -f 命令进行日志的输出查看,在Windows下,我们通过Bare Tail这个实时读取sql日志文件和输出sql语句

mysql> SHOW VARIABLES LIKE "general_log%";
+------------------+------------------------------------------------------+
| Variable_name    | Value                                                |
+------------------+------------------------------------------------------+
| general_log      | ON                                                   |
| general_log_file | C:\phpStudy\PHPTutorial\MySQL\data\itlife365-com.log |
+------------------+------------------------------------------------------+
2 rows in set (0.00 sec)

mysql>
mysql> SELECT * from mysql.general_log ORDER BY event_time DESC;
Empty set (0.00 sec)

mysql> SET GLOBAL general_log = 'OFF';
Query OK, 0 rows affected (0.01 sec)

mysql> SELECT * from mysql.general_log ORDER BY event_time DESC;
Empty set (0.00 sec)

mysql> SHOW VARIABLES LIKE "general_log%";
+------------------+------------------------------------------------------+
| Variable_name    | Value                                                |
+------------------+------------------------------------------------------+
| general_log      | OFF                                                  |
| general_log_file | C:\phpStudy\PHPTutorial\MySQL\data\itlife365-com.log |
+------------------+------------------------------------------------------+
2 rows in set (0.00 sec)

其他语句也可以参考
1、使用processlist,但是有个弊端,就是只能查看正在执行的sql语句,对应历史记录,查看不到。好处是不用设置,不会保存。
-- use information_schema;
-- show processlist;
或者:
-- select * from information_schema.`PROCESSLIST` where info is not null;

2、开启日志模式
-- 1、设置
-- SET GLOBAL log_output = 'TABLE';SET GLOBAL general_log = 'ON';  //日志开启
-- SET GLOBAL log_output = 'TABLE'; SET GLOBAL general_log = 'OFF';  //日志关闭
-- 2、查询
SELECT * from mysql.general_log ORDER BY event_time DESC;

-- 3、清空表(delete对于这个表,不允许使用,只能用truncate)
-- truncate table mysql.general_log;
在查询sql语句之后,在对应的  C:\Program Files\MySQL\MySQL Server 5.7\data   文件夹下面有对应的log记录
如:
 C:\phpStudy\PHPTutorial\MySQL\data\itlife365-com.log
ps:在查询到所需要的记录之后,应尽快关闭日志模式,占用磁盘空间比较大
Tags:
Dec 12
记一次ERROR 1044 (42000): Access denied for user 'root'@'%' to database 的处理
这个原因有很多。我的场景是root用户无法远程无法链接。
处理方式本地root命令行登陆

mysql> GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'root' WITH GRANT OPTION;
Query OK, 0 rows affected (0.00 sec)

mysql> FLUSH PRIVILEGES;
Query OK, 0 rows affected (0.00 sec)

mysql>
mysql>
mysql>
重启mysql服务即可处理

mysql ERROR 1044 (42000
mysql-ERROR-1044-42000
---end
Tags:
Sep 4
解决 mysql ERROR 1017:Can't find file: '/xxx.frm' 错误0013
出现这个问题的原因不是'/xxx.frm'这个文件不见了,而是这些文件的权限(应该要是mysql)不知道为什么变成了root。
解决方法:cd到xxx.frm文件所在目录下,执行一下命令:chown mysql mysql * 将所有文件的权限都改过来就可以了!
MySql的MyiSAM表很有可能会出现
Tags:
Sep 9
网站迁移,因为数据库是MYISAM .为了方便。直接把数据库文件 打包后复制到新的服务器.
在添加了数据库用户和授权后,网站访问报错。
mysql 管理员用户登录后 今日业务数据库 也是报错。
MariaDB [mysql]> use itlife365_mydb
Database changed
MariaDB [itlife365_mydb]> show tables;

MariaDB [itlife365_mydb]> 
ERROR 1018 (HY000): Can't read dir of './itlife365_mydb/' (errno: 13)


百度一下,原来是复制的时候,权限没有授权给mysql导致无法访问。
处理如下:
To fix this problem you need to set correct permission on /var/lib/mysql/dbname/ directory. Use the command as follows:
[root@server1.itlife365 mysql]# ll /var/lib/mysql/itlife365_mydb
total 152
-rw-rw---- 1 root  root    61 Sep  2 11:53 db.opt
-rw-rw---- 1 root  root  9072 Sep  2 11:59 ic_admin.frm
-rw-rw---- 1 root  root  8606 Sep  2 11:59 ic_admintype.frm

[root@server1.itlife365 mysql]#chown mysql:mysql itlife365_mydb/ -R
[root@server1.itlife365 mysql]# ll /var/lib/mysql/itlife365_mydb
total 152
-rw-rw---- 1 mysql mysql    61 Sep  2 11:53 db.opt
-rw-rw---- 1 mysql mysql  9072 Sep  2 11:59 ic_admin.frm
-rw-rw---- 1 mysql mysql  8606 Sep  2 11:59 ic_admintype.frm
重新访问即可
Tags: ,
Jun 19

ispconfig3 新增的数据库使用phpMyAdmin登录报#1045 无法登录 MySQL 服务器的处理即如何修改mysql用户密码
 新增了数据库和用户密码后,而且开启了可以远程访问的权限后,还是无法通过phpmyadmin 访问新增的库报1045.
 我的处理方式是通过登录mysql服务器后台修改密码
处理密码的几种方式登记如下:

方法一:
(适用于管理员或者有全局权限的用户重设其它用户的密码)
进入命令行模式
mysql -uroot -p
mysql>use mysql;
mysql> UPDATE user SET password=PASSWORD("new password") WHERE user='username';
mysql> FLUSH PRIVILEGES;
mysql> quit;
 
方法二:
mysql -u root -p
mysql>use mysql;
mysql> SET PASSWORD FOR   username=PASSWORD('new password');
mysql> QUIT
 
方法三:
 mysqladmin -u root "old password" "new password"
注:new password请输入你想要设置的密码。

--phpmyadmin-1045-by-modify-user-password

Tags: ,
分页: 1/8 第一页 1 2 3 4 5 6 7 8 下页 最后页 [ 显示模式: 摘要 | 列表 ]