數據文件被破壞,需要重建;
希望保留現有環(huán)境不動,建立一個新的環(huán)境;
希望建立一個干凈的環(huán)境。
不幸的是,Linux環(huán)境下是利用mysql_install_db.sh腳本初始化數據庫環(huán)境的;而在windows版中并沒有提供相應的腳本。那么該怎么辦呢?
經過對Linux環(huán)境下的mysql_install_db.sh的分析,發(fā)現初始化數據庫的命令主要是以下幾行:
mysql_install_db.sh
# Pipe mysql_system_tables.sql to "mysqld --bootstrap"
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分別是創(chuàng)建系統(tǒng)數據庫、初始化系統(tǒng)數據庫中的數據、和初始化幫助數據;
$filter_cmd_line是過濾掉主機名(用于交叉初始化非本機運行數據庫環(huán)境的情況,可忽略);
$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(系統(tǒng)數據庫)目錄是否存在,若不存在則手工創(chuàng)建之。
準備初始化數據庫的sql腳本。將/opt/mysql-5.1.40/share目錄下的mysql_system_tables.sql、 mysql_system_tables_data.sql和fill_help_tables.sql三個文件拷貝到/tmp目錄下,并在每個文件的最開始插入“use mysql;”一行。
執(zhí)行下列命令,初始化數據庫:
/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,訪問數據庫服務,驗證數據庫是否正常。
至此數據庫已初始化完畢,可以正常訪問了。
編輯:海騰數據中心客服部
Copyright© 2004-2020 河南海騰電子技術有限公司 版權所有 經營性ICP/ISP證 備案號:B1-20180452
豫公網安備 41019702002018號
電子營業(yè)執(zhí)照