Linux環境中,安裝好mysql後,還不能直接啟動服務,必須先對資料庫進行初始化。初始化的工作主要包括: 初始化日誌、表空間等資料庫必須的文件; 創建並初始化系統資料庫(mysql)。 初始化完成後,啟動mysqld守護進程,方可訪問資料庫。 在Windows的環境下,安裝包內已經自帶了一個初始化
Linux環境中,安裝好mysql後,還不能直接啟動服務,必須先對資料庫進行初始化。初始化的工作主要包括:
- 初始化日誌、表空間等資料庫必須的文件;
- 創建並初始化系統資料庫(mysql)。
- 數據文件被破壞,需要重建;
- 希望保留現有環境不動,建立一個新的環境;
- 希望建立一個乾凈的環境。
s_echo "Installing MySQL system tables..."
if { echo "use mysql;"; cat $create_system_tables $fill_system_tables; } | eval "$filter_cmd_line" | $mysqld_install_cmd_line > /dev/null
then
s_echo "OK"
s_echo "Filling help tables..."
# Pipe fill_help_tables.sql to "mysqld --bootstrap"
if { echo "use mysql;"; cat $fill_help_tables; } | $mysqld_install_cmd_line > /dev/null
then
s_echo "OK"
......
其中:
- $create_system_tables、$fill_system_tables和$fill_help_tables分別是創建系統資料庫、初始化系統資料庫中的數據、和初始化幫助數據;
- $filter_cmd_line是過濾掉主機名(用於交叉初始化非本機運行資料庫環境的情況,可忽略);
- $mysqld_install_cmd_line主要是"mysqld --bootstrap"命令;
- 設置mysql配置文件。主要是設置basedir(mysql的home目錄,如:/opt/mysql-5.1.40)和datadir(資料庫文件目錄,如:/var/db/mysql)兩個參數。
- 初始化資料庫目錄,檢查/var/db/mysql和/var/db/mysql/mysql(系統資料庫)目錄是否存在,若不存在則手工創建之。
- 準備初始化資料庫的sql腳本。將/opt/mysql-5.1.40/share目錄下的mysql_system_tables.sql、mysql_system_tables_data.sql和fill_help_tables.sql三個文件拷貝到/tmp目錄下,併在每個文件的最開始插入“use mysql;”一行。
- 執行下列命令,初始化資料庫:
- /opt/mysql-5.1.40/bin/mysqld.exe --bootstrap --console < /tmp/mysql_system_tables.sql
- /opt/mysql-5.1.40/bin/mysqld.exe --bootstrap --console < /tmp/mysql_system_tables_data.sql
- /opt/mysql-5.1.40/bin/mysqld.exe --bootstrap --console < /tmp/fill_help_tables.sql
- 運行/opt/mysql-5.1.40/bin/mysqld.exe啟動資料庫服務(註意:停止資料庫服務的命令是/opt/mysql-5.1.40/bin/mysqladmin.exe -uroot shutdown)。
- 運行/opt/mysql-5.1.40/bin/mysql.exe -uroot,訪問資料庫服務,驗證資料庫是否正常。