MySQL使用时遇到的问题
2017-12-24 22:35
225 查看
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
在程序代码中设置utf8编码格式,以C++为例
多线程下对数据库的访问出现的各种各样的错误
记得加锁,加锁,以前一直以为mysql自己会加锁,天真:cry:
mysql的自动重连功能(以C++为例,不知道好不好使)
在需要检测是否已断开时可以使用::mysql_ping(&conn_);
如果连接正常,返回0,否则-1,如果开启自动重连,会重连参数表示的连接
通过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,如果开启自动重连,会重连参数表示的连接
相关文章推荐
- mysql c++ connector 1.0.5 getString方法 使用过程中遇到汉字产生的乱码问题的解决方法
- 转帖:使用BDC连接MySql可能遇到的问题
- MYSQL使用的时候遇到的一些问题
- Mysql新手遇到的首要问题(使用xampp集成搭建环境)
- 我在mac下使用mysql遇到的问题
- 使用mysql可视化工具mysql-front的时候遇到软件过期问题
- 好久没写东西了,手痒了,写写我使用mysql中遇到的几个问题吧
- 使用mysql遇到的问题
- Django 使用 MySQL 存储时间中遇到的问题(在数据库中记录插入时间、更新时间、删除时间)
- 今天学习使用mysql遇到的问题和解决办法
- Entity Framework Code First ---EF Power Tool 和MySql一起使用遇到的问题
- 使用BDC连接MySql可能遇到的问题
- 使用Mysql遇到的几个数据类型/格式的问题
- VS2012 使用MySql的API函数连接数据库(成功), 以及使用mysql-connector-c++-1.1.3遇到的问题!
- MySQL 使用静态链接库遇到的问题
- mysql存储过程中两个CURSOR嵌套使用遇到的有关问题
- 使用mysql中遇到的几个问题
- 【原创】安装和使用 TPCC-MySQL 工具遇到的问题
- 使用Navicat连接Linux 下的MySQL遇到的问题
- 最近使用mysql遇到的几个问题