MySQL使用时遇到的问题
生活随笔
收集整理的這篇文章主要介紹了
MySQL使用时遇到的问题
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
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使用时遇到的问题的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 每天一道LeetCode-----二叉搜
- 下一篇: Redis源码剖析(一)服务器与客户端交