250 likes | 566 Views
MySQL 資料庫執行環境管理. ▊ Outlines. MySQL 資料庫系統的環境簡介 my.ini 簡介與製作 設定管理者的密碼. ▊ MySQL 資料庫系統的環境簡介. 安裝完 MySQL 5 資料庫後,在安裝目錄下有一些檔案夾,比較重要的檔案夾簡介如下: bin :包含了幾個在 MySQL 資料庫系統中,所會執行到的公用程式,例如: mysql 、 mysqldump 、 mysqladmin 、 mysqld-nt 。 data :是 MySQL 存放資料處。存放著所建立的各個 資料庫 及 資料庫結構相關設定檔 ; 而每個資料庫都是以 獨立目錄 各自存放。
E N D
▊Outlines • MySQL資料庫系統的環境簡介 • my.ini簡介與製作 • 設定管理者的密碼
▊MySQL資料庫系統的環境簡介 • 安裝完MySQL 5資料庫後,在安裝目錄下有一些檔案夾,比較重要的檔案夾簡介如下: • bin:包含了幾個在MySQL資料庫系統中,所會執行到的公用程式,例如:mysql、mysqldump、 mysqladmin、mysqld-nt。 • data:是 MySQL 存放資料處。存放著所建立的各個資料庫及資料庫結構相關設定檔; 而每個資料庫都是以獨立目錄各自存放。 • share:MySQL 所產生的訊息檔 (message) 及錯誤檔 (error log) 都放在這個目錄。
如何登入MySQL資料庫系統 • 若是以超級使用者 “root”登入: • 由 “程式集” “MySQL” 可找到 “MySQL Command Line Client”,啟動後直接輸入root的密碼即可。 • 若是以一般使用者登入 (超級使用者root亦可): • 由 “程式集” “附屬應用程式” 可找到 “命令提示字元” • 啟動 “命令提示字元” 後,將命令路徑設定到公用程式 “mysql”所在之目錄。以本系統為例 (本系統是安裝AppServ): C:\AppServ\MySQL\bin> • 輸入指令 mysql –u 使用者名稱–p,按Enter後再輸入密碼即可。 • -u: 是指定使用者,在這我們輸入使用者名稱 • -p: 是在按Enter後,再要求輸入密碼,我們輸入所給定的密碼
MySQL資料庫系統的預設資料庫 • MySQL 5資料庫系統安裝後,會有兩個主要的預設資料庫 (不同的安裝模式可能會多出其它的預設資料庫): • mysql: 負責紀錄整個MySQL 的使用權限資料,包含了host、user、db、tables_priv、colimns_priv和func…等資料表。 • test: 測試用的空資料庫,不包含任何資料。
預設資料庫 “mysql” 中,六個主要的表格意義如下: • user表格:包含了有關使用者對MySQL資料庫伺服器使用權限設定的資料。管理有哪些人可以從哪些電腦連到MySQL伺服器系統。 • db表格:儲存使用者對特定資料庫的權限。管理哪些使用者能存取哪些資料庫。 • host表格:主要擴充db表格的內容,提供允許連線的主機名稱 。 • tables_priv表格:管理哪些使用者能存取資料庫的哪些表格。 • columns_priv表格:管理哪些使用者能存取資料表的哪些欄位。 • func表格:儲存使用者自行定義的函式資訊。
▊ my.ini簡介與製作 • MySQL資料庫系統在啟動時,會透過此設定檔來存取與掌握一些環境參數。而DBA也可藉此檔來調校MySQL Server的環境,使得MySQL伺服器能達到最佳化的執行環境。 • 這個檔案在安裝MySQL資料庫系統的過程中,會依當時環境自動的設定。在不同的作業系統中: • Windows: my.ini • Linux: my.cnf
my.ini在哪? 不同的my.ini檔之範本,可用在不同的系統環境
部份系統環境調校參數簡介 • key_buffer_size • 將此參數設定為較大,對於來自所有用戶任務的讀寫處理能力,將有所助益;但若設定的太大,反而會拖累系統的執行效能,因此對於key_buffer_size容量的設定,必須求取平衡。 • 本電腦該參數的預設值為10MB,可大約抓系統主機記憶體容量的1/5 (如:假設伺服器具2GB記憶體,則以400MB為基準),以加大key_buffer_size。 • max_connections • 系統承受之同時上線使用人數。可依系統所能承受之情況做調整。 • sort_buffer • 可調整系統在面對所有需要被排序的任務之緩衝區,從而提升ORDER BY或GROUP BY的行進速度 • 本電腦該參數的預設值僅256KB,一般可考慮提高到2MB~16MB
可直接取用之my.ini相關範例 • my-small.ini (<=64MB) • my-medium.ini (32MB~64MB) • my-large.ini (512MB) • my-huge.ini (1GB~2GB) • my-innodb-heave-4G.ini (4GB, InnoDB only, ACID, Heavy Queries)
製作my.ini • 若沒有my.ini或原本的my.ini有問題,可自已用記事本建立!! • 選好某一個my***.ini範本,將其內容複製到my.ini檔即可。
MySQL系統調校範例:設定最大連線數 • 用記事本打開my.ini • 找到 max_connections=100 (此為系統預設的最大連線數) • 將100修改成50 • 存檔並重啟MySQL
▊設定管理者的密碼 • 為了管理MySQL資料庫,我們必需建立至少一個MySQL的帳號。在安裝MySQL 5 (或AppServ) 時,我們已建立了一個超級使用者 “root”。若要改變root的密碼,可以使用下列指令: set password for root@localhost = password(“新密碼”); • 上述指令是將位於名為“localhost”的主機上之“root”使用者的密碼做更新。 • 當我們要再次登錄時,只要輸入新密碼就可以登錄了。
忘記root的密碼? • 可利用下列步驟處理: • 停止MySQL 5的服務 • 在my.ini檔中的[mysqld]段落,加上 skip_grant_tables • 重新啟動MySQL 5的服務 • 輸入指令 mysql –u root,不用密碼,按Enter後即可進入 • 使用mysql這個預設的資料庫 • 輸入指令以修改預設資料庫mysql中的user資料表 • 再次停止MySQL 5的服務 • 在my.ini檔中的[mysqld]段落,刪除 skip_grant_tables • 重新啟動MySQL 5的服務
在my.ini檔的[mysqld]段落加上 skip_grant_tables 加上 skip_grant_tables
輸入指令 mysql –u root • 輸入指令 mysql –u root,不用密碼,按Enter後即可進入
輸入指令以修改預設資料庫mysql中的user資料表 • 修改user資料表中,user名稱為’root’且host為’localhost’這個帳號的密碼。此時因權限關係不能用前面所教的設定密碼之指令。 update user set password = password(‘123456789’) where user=‘root’ and host=‘localhost’;
再次停止MySQL 5的服務 • 跳出MySQL資料庫,且再次停止MySQL 5的服務。
在my.ini檔中的[mysqld]段落刪除 skip_grant_tables • 刪除後並存檔。 刪除 skip_grant_tables
重新啟動MySQL 5的服務 • 重新啟動MySQL DB,並利用剛剛設定的新密碼進入即可。
使用 “show processlist” 就可以看到現在線上有多少人使用,有哪些process正在執行。 • INFORMATION_SCHEMA是虛擬資料庫,其中保存著關於MySQL資料庫伺服器所維護的所有其他資料庫的訊息。在INFORMATION_SCHEMA中,有數個唯讀資料表。它們實際上是視圖 (View),而不是基本資料表。