資料庫(二)tab補全功能,使資料庫支援簡體中文,日誌管理,備份指令碼
一、如何在MySQL資料庫中使用tab鍵補全功能
1.修改主配置檔案/etc/my.cnf
vim /etc/my.cnf
[mysql]
#no-auto-rehash
auto-rehash
2.重啟MySQL服務,登入測試
/etc/init.d/mysqld restart
mysql -uroot -p (可在資料庫中使用tab鍵)
3.;臨時支援tab鍵
mysql -uroot -p --auto-rehash
二、是MySQL資料庫支援簡題中文
1.臨時支援簡體中文
在資料庫中編輯 charset utf8;
2.永久支援簡題中文(yum方式安裝的MySQL服務)
vim /etc/my.cnf
[client]
default-character-set=utf8
[mysql]
default-character-set=utf8
/etc/init.d/mysqld restart
三、MySQL日誌管理
1.錯誤日誌
包含了當MySQL啟動和停止時,以及伺服器在執行過程中發生的任何錯誤時的相關資訊,預設在安裝目錄/usr/local/mysql/data/下的“主機名。err”。
可在登陸時使用“--log-error=檔案路徑及檔名”的方式來指定MySQL儲存錯誤日誌的位置;或者修改住配置檔案/etc/my.cnf,在【mysql】下方新增“log-error=檔案路徑及檔名”,重啟mysql服務。
vim /etc/my.cnf
[mysqld]
log-error=mysql_error.log
/etc/init.d/mysqld restart
cat /usr/local/mysql/data/mysql_error.log
2.通用查詢日誌
MySQL所有連線和語句都將會被記錄。預設關閉此項日誌記錄,一般作除錯用,平時開啟會記錄大量資料佔用磁碟空間。
可在登入時使用“--log=檔案路徑及檔名”或“-l 檔案路徑及檔名”選項指定;或修改主配置檔案/etc/my.cnf,在【mysqld】下新增“log=ON”和“log=檔案路徑及檔名”,重啟mysqld服務。
vim /etc/my.cnf
[mysqld]
log=ON
log=/usr/local/mysql/data/mysql_general.log (絕對路徑可以省略,保證mysql對該目錄具有寫入許可權!
tail -f /usr/local/mysql/data/mysql_general.log
mysql -uroot -p
show databases;
use auth;
show tables; (發現日誌記錄了所有執行過的命令)
3.二進位制日誌
包含了所有更新了的資料或者已經潛在更新了資料的所有語句,記錄了資料的更改。主要目的是在恢復時能夠最大可能的恢復資料庫。預設是開啟的,預設路徑在/usr/local/mysql/data/下的,以“mysql-bin”開頭的二進位制日誌。
可在登入時使用“--log-bin=檔案路徑及檔名字首”選項指定;或修改主配置檔案/etc/my.cnf中【mysqld】下的“log-bin=檔案路徑及檔名”修改存放路徑。
可用mysqlbinlog命令檢視二進位制日誌檔案。
vim /etc/my.cnf
[mysqld]
log-bin=mysql-bin
cd /usr/local/mysql/data/
mysqlbinlog --no-defaults mysql-bin.000001
4.慢速查詢日誌
vim /etc/my.cnf
[mysqld]
long_query_time=5
log-slow-queries=mysql_slow.log
/etc/init.d/mysqld restart
ll /usr/local/mysql/data/mysql_slow.log
四、資料亂碼的解決方法
1.MySQL資料亂碼的可能原因
1)伺服器系統字元設定問題
2)資料表與設定問題
3)客戶端連線語系的問題
2.解決方法
1)在建立資料庫時設定
格式:create database 庫名 character set 'utf8' collate 'utf8_general_ci';
2)在建立表示設定字符集
格式:create table 表名 (欄位 格式) default charset=utf8;
3)使用set names 設定預設字符集
格式:set names utf8; 或 charset utf8;
4)永久修改,修改主配置檔案在【mysql】欄位中加入:detault_character_set=utf8;
注意是mysql,不是mysqld,否則啟動時報錯!!!
修改配置檔案記得重啟!
五、MySQL資料庫備份指令碼
實驗要求:對mysql-server的auth庫和client庫,實現異地備份,每天凌晨2:00進行備份,撰寫一個數據恢復指令碼。
MySQL服務端授權,給予select和locktables許可權,以備份
客戶端安裝客戶端軟體
· 連線測試
撰寫客戶端備份指令碼
改變系統時間,執行任務計劃,模擬每天的備份,為之後的恢復指令碼做準備
撰寫資料恢復指令碼
vim /opt/restore_mysql.sh
chmod +x /opt/restore_mysql.sh
如在客戶端恢復資料,需要開放許可權
恢復測試: