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

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

//引自菜鸟教程
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