1. 程式人生 > >資料庫(二)tab補全功能,使資料庫支援簡體中文,日誌管理,備份指令碼

資料庫(二)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

  如在客戶端恢復資料,需要開放許可權

 

  恢復測試: