热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

MySQL使用时遇到的问题

mysql开启日志功能通过mysql-uroot-p进入mysql命令行showvariableslike‘%log%’;会显示所有和日志有关的信息log_er

mysql开启日志功能

  • 通过mysql -u root -p进入mysql命令行
  • show variables like ‘%log%’;会显示所有和日志有关的信息
  • log_error,表示错误日志的存储路径,该文件保存mysql的错误信息
  • general_log_file,表示通用日志的存储路径,该文件保存所有执行过的mysql语句(包括代码中调用的mysql API)
  • slow_query_log_file,表示慢语句日志的存储路径,该文件保存所有执行时间超过某个值的mysql语句(时间值由另一个变量设置)
  • 如果想查询某一个,比如log_error,可以使用show variables like ‘%log_error%’;

如果上面几个日志文件的路径都是空,或者想要更改路径,可以在配置文件中更改

  • 配置文件是/etc/mysql/conf.d中的mysql.cnf(不知道为什么只有我的在这里)
  • 打开这个文件,在[mysqld]下面添加路径
  • log_error=/var/log/mysql/error.log(路径可以自己更改)
  • general_log=ON(表示开启通用日志功能)
  • general_log_file=/var/log/mysql/general.log
  • slow_query_log=ON(表示开启慢查询日志功能)
  • slow_query_log_file=/var/log/mysql/slow.log

重启mysql

  • service mysql restart可以重启mysql
  • /etc/init.d/mysql restart也可以重启mysql

重启mysql时出现错误

  • 错误信息mysql.serviceJob for mysql.service failed because the control process exited with error code. See “systemctl status mysql.service” and “journalctl -xe” for details.
  • 一种可能是配置文件写错,哪个单词拼错等都会导致这个问题,这个大概可以从错误日志中发现
  • 另一种可能是日志文件的权限问题,通常都是系统自己创建日志文件,不需要自己手动创建,如果手动创建,那么创建的日志文件的所属id不是mysql而是root,mysql无权限写入(可以通过更改id解决,也可以删了重启,因为mysql会自己创建)

程序运行过程中一段时间没有与mysql服务器通讯会自动断开连接

  • 一般这个值默认是8小时,解决方法有两个
  • 一种是程序设计定时任务,每隔多长时间访问一次,干什么都行,只要执行mysql语句
  • 另一种是更改配置文件,将这个时间增大,在配置文件中(/etc/mysql/conf.d/mysql.conf)的[mysqld]下面添加
    • wait_timeout=604800(秒数,改觉得可以的值)
    • interactive_timeout=604800(秒数,同理)
    • 通常这两个一起设置

将中文存储到mysql中出现乱码

  • 配置文件中添加character-set-server=utf8,设置编码为utf8
  • 建表的时候在后面添加DEFAULT CHARSET=UTF8

  • //引自菜鸟教程
    CREATE TABLE runoob_tbl(
    -> runoob_id INT NOT NULL AUTO_INCREMENT,
    -> runoob_title VARCHAR(100) NOT NULL,
    -> runoob_author VARCHAR(40) NOT NULL,
    -> submission_date DATE,
    -> PRIMARY KEY ( runoob_id )
    -> )ENGINE=InnoDB DEFAULT CHARSET=utf8;
  • 在程序代码中设置utf8编码格式,以C++为例
  • ::mysql_set_character_set(&conn_, "utf8");

多线程下对数据库的访问出现的各种各样的错误

  • 记得加锁,加锁,以前一直以为mysql自己会加锁,天真:cry:

mysql的自动重连功能(以C++为例,不知道好不好使)

  • char value = 1;
    ::mysql_options(&conn_, MYSQL_OPT_RECONNECT, static_cast<char*>(&value));
  • 在需要检测是否已断开时可以使用::mysql_ping(&conn_);

  • 如果连接正常,返回0,否则-1,如果开启自动重连,会重连参数表示的连接

推荐阅读
  • 本文讨论了clone的fork与pthread_create创建线程的不同之处。进程是一个指令执行流及其执行环境,其执行环境是一个系统资源的集合。在调用系统调用fork创建一个进程时,子进程只是完全复制父进程的资源,这样得到的子进程独立于父进程,具有良好的并发性。但是二者之间的通讯需要通过专门的通讯机制,另外通过fork创建子进程系统开销很大。因此,在某些情况下,使用clone或pthread_create创建线程可能更加高效。 ... [详细]
  • 本文详细介绍了GetModuleFileName函数的用法,该函数可以用于获取当前模块所在的路径,方便进行文件操作和读取配置信息。文章通过示例代码和详细的解释,帮助读者理解和使用该函数。同时,还提供了相关的API函数声明和说明。 ... [详细]
  • 本文介绍了在开发Android新闻App时,搭建本地服务器的步骤。通过使用XAMPP软件,可以一键式搭建起开发环境,包括Apache、MySQL、PHP、PERL。在本地服务器上新建数据库和表,并设置相应的属性。最后,给出了创建new表的SQL语句。这个教程适合初学者参考。 ... [详细]
  • 本文介绍了设计师伊振华受邀参与沈阳市智慧城市运行管理中心项目的整体设计,并以数字赋能和创新驱动高质量发展的理念,建设了集成、智慧、高效的一体化城市综合管理平台,促进了城市的数字化转型。该中心被称为当代城市的智能心脏,为沈阳市的智慧城市建设做出了重要贡献。 ... [详细]
  • SpringBoot uri统一权限管理的实现方法及步骤详解
    本文详细介绍了SpringBoot中实现uri统一权限管理的方法,包括表结构定义、自动统计URI并自动删除脏数据、程序启动加载等步骤。通过该方法可以提高系统的安全性,实现对系统任意接口的权限拦截验证。 ... [详细]
  • 本文介绍了如何使用php限制数据库插入的条数并显示每次插入数据库之间的数据数目,以及避免重复提交的方法。同时还介绍了如何限制某一个数据库用户的并发连接数,以及设置数据库的连接数和连接超时时间的方法。最后提供了一些关于浏览器在线用户数和数据库连接数量比例的参考值。 ... [详细]
  • 本文介绍了Redis的基础数据结构string的应用场景,并以面试的形式进行问答讲解,帮助读者更好地理解和应用Redis。同时,描述了一位面试者的心理状态和面试官的行为。 ... [详细]
  • 本文介绍了使用PHP实现断点续传乱序合并文件的方法和源码。由于网络原因,文件需要分割成多个部分发送,因此无法按顺序接收。文章中提供了merge2.php的源码,通过使用shuffle函数打乱文件读取顺序,实现了乱序合并文件的功能。同时,还介绍了filesize、glob、unlink、fopen等相关函数的使用。阅读本文可以了解如何使用PHP实现断点续传乱序合并文件的具体步骤。 ... [详细]
  • eclipse学习(第三章:ssh中的Hibernate)——11.Hibernate的缓存(2级缓存,get和load)
    本文介绍了eclipse学习中的第三章内容,主要讲解了ssh中的Hibernate的缓存,包括2级缓存和get方法、load方法的区别。文章还涉及了项目实践和相关知识点的讲解。 ... [详细]
  • 本文详细介绍了Linux中进程控制块PCBtask_struct结构体的结构和作用,包括进程状态、进程号、待处理信号、进程地址空间、调度标志、锁深度、基本时间片、调度策略以及内存管理信息等方面的内容。阅读本文可以更加深入地了解Linux进程管理的原理和机制。 ... [详细]
  • Java String与StringBuffer的区别及其应用场景
    本文主要介绍了Java中String和StringBuffer的区别,String是不可变的,而StringBuffer是可变的。StringBuffer在进行字符串处理时不生成新的对象,内存使用上要优于String类。因此,在需要频繁对字符串进行修改的情况下,使用StringBuffer更加适合。同时,文章还介绍了String和StringBuffer的应用场景。 ... [详细]
  • XML介绍与使用的概述及标签规则
    本文介绍了XML的基本概念和用途,包括XML的可扩展性和标签的自定义特性。同时还详细解释了XML标签的规则,包括标签的尖括号和合法标识符的组成,标签必须成对出现的原则以及特殊标签的使用方法。通过本文的阅读,读者可以对XML的基本知识有一个全面的了解。 ... [详细]
  • CF:3D City Model(小思维)问题解析和代码实现
    本文通过解析CF:3D City Model问题,介绍了问题的背景和要求,并给出了相应的代码实现。该问题涉及到在一个矩形的网格上建造城市的情景,每个网格单元可以作为建筑的基础,建筑由多个立方体叠加而成。文章详细讲解了问题的解决思路,并给出了相应的代码实现供读者参考。 ... [详细]
  • 有没有一种方法可以在不继承UIAlertController的子类或不涉及UIAlertActions的情况下 ... [详细]
  • flowable工作流 流程变量_信也科技工作流平台的技术实践
    1背景随着公司业务发展及内部业务流程诉求的增长,目前信息化系统不能够很好满足期望,主要体现如下:目前OA流程引擎无法满足企业特定业务流程需求,且移动端体 ... [详细]
author-avatar
雪天使杨果果
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有