Windows環境下mysql初始化

來源:互聯網
上載者:User

 Linux環境中,安裝好mysql後,還不能直接啟動服務,必須先對資料庫進行初始化。初始化的工作主要包括:

  初始化日誌、資料表空間等資料庫必須的檔案;

  建立並初始化系統資料庫(mysql)。

  初始化完成後,啟動mysqld守護進程,方可訪問資料庫。

  在Windows的環境下,安裝包內已經內建了一個初始化好的環境,安裝後展開在mysql根目錄的data子目錄。所以並不需要手工進行初始化。但是某些情況下,也可能需要從零開始初始化資料庫,比如:

  資料檔案被破壞,需要重建;

  希望保留現有環境不動,建立一個新的環境;

  希望建立一個乾淨的環境。

  不幸的是,Linux環境下是利用mysql_install_db.sh指令碼初始化資料庫環境的;而在windows版中並沒有提供相應的指令碼。那麼該怎麼辦呢?

  經過對Linux環境下的mysql_install_db.sh的分析,發現初始化資料庫的命令主要是以下幾行:

  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分別是建立系統資料庫、初始化系統資料庫中的資料、和初始化協助資料;

  $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,訪問資料庫服務,驗證資料庫是否正常。(www.3lian.com)

  至此資料庫已初始化完畢,可以正常訪問了。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.