MySQL5.7數據庫怎麼初始化?

MySQL 5.7發佈了,不少網友發現:打開想安裝文件夾,但是文件夾中沒有DATA目錄, 沒有mysqly默認庫。啓動不了數據庫,那是因爲5.7的數據庫的初始化方法和之前的初始化不一樣了。
 首先這裏所描述的過程適用於所有平臺的MySQL。5.7.6之前,使用mysql_install_db在UNIX和類UNIX系統。MySQL 5.7.7之前,Windows分佈包括了在MySQL數據庫建表的數據目錄。
以下說明假定您當前的位置是MySQL的安裝目錄,這裏以BASEDIR爲例
    1 shell> cd BASEDIR
    要初始化數據目錄,調用 mysqld的與 --initialize或 --initialize不安全的選項,這取決於你是否希望服務器生成的一個隨機初始密碼'root'@'本地賬號'的賬戶。
    在Windows環境下,使用這些命令:
    1 C:\> bin\mysqld --initialize
    2 C:\> bin\mysqld --initialize-insecure
    在Unix和類Unix系統,重要的是要確保數據庫的目錄和文件都是由擁有 MySQL的登錄帳戶,以便服務器具有讀寫訪問它們,當你以後運行它。爲了確保這一點,如果你運行的mysqld爲root,包括 --user選項,如下所示:
    1 shell> bin/mysqld --initialize --user=mysql
    2 shell> bin/mysqld --initialize-insecure --user=mysql
    否則,執行程序,而身份登錄mysql的,在這種情況下可以省略 --user從命令選項。
    無論任何平臺,使用 --initialize爲“ 默認安全 ”的安裝(即包括產生一個隨機的初始根密碼)。在這種情況下,密碼被標記爲過期,你需要選擇一個新的密碼。隨着 --initialize-insecure 的選項,沒有root口令生成; 假設你把服務器投入使用之前指定一個密碼及時查詢賬戶。
    如果mysqld的沒有標識的安裝目錄或數據目錄的正確位置.它可能需要指定其他選項,如 --basedir或 --datadir.如果mysqld的沒有標識的安裝目錄或數據目錄的正確位置。例如(輸入在一行上的命令):
    1 shell> bin/mysqld --initialize --user=mysql
    2 --basedir=/opt/mysql/mysql
    3 --datadir=/opt/mysql/mysql/data
    另外,對於Unix和類Unix系統,假設選擇文件名是 /opt/mysql/mysql/etc/my.cnf。把相關的選項設置中的選項文件和傳遞文件命名爲 mysqld的。把文件中的這幾行:
    1 [mysqld]
    2 basedir=/opt/mysql/mysql
    3 datadir=/opt/mysql/mysql/data
    然後調用mysqld,如下(輸入上的一行命令 -- --defaults-file第一個選項):
    1 shell> bin/mysqld --defaults-file=/opt/mysql/mysql/etc/my.cnf
    2 --initialize --user=mysql
    在Windows中,假設C:\ my.ini中包含這些命令:
    1 [mysqld]
    2 basedir=C:\\Program Files\\MySQL\\MySQL Server 5.7
    3 datadir=D:\\MySQLdata
    然後調用mysqld.如下(--defaults-file必須是第一個選項)
    1 C:\> bin/mysqld --defaults-file=C:\my.ini --initialize
    當調用的 --initialize或 --initialize-insecure選項 ,mysqld執行下面的初始化程序。
    注意
    服務器寫入的任何消息,以它的標準錯誤輸出。這可能會被重定向到錯誤日誌.
    服務器會檢查數據目錄,如下所示的存在:
    如果沒有數據目錄存在,則服務器將創建它。
    如果數據目錄存在並且不爲空(即,它包含文件或子目錄),產生一個錯誤消息後在服務器退出:
    1 [ERROR] --initialize specified but the data directory exists. Aborting.
    1.在這種情況下,刪除或重命名數據目錄,然後重試。
    在MySQL 5.7.11中,現有的數據目錄允許非空,如果每個條目或者具有開頭一段的名稱(.),請使用名爲--ignore-db-dir 設置。
    2.在數據目錄中,服務器創建 的mysql系統數據庫及其表,其中包括授權表,服務器端幫助表,時區表。
    3.服務器初始化system tablespace 和管理所需的相關數據結構的InnoDB表。
    注意
    經過mysqld的設置了 InnoDB的system tablespace,改變一些表空間的特性需要建立一個全新的實例。這包括在system tablespace的第一個文件,撤銷日誌的數量的文件名 ??。在配置文件運行前的mysqld。如果你不想使用默認值,請確保該設置innodb_data_file_path中 和innodb_log_file_size 參數配置到位.同時一定要指定影響的創建和位置需要其他參數 InnoDB的文件,如 innodb_data_home_dir和 innodb_log_group_home_dir。
    如果這些選項在您的配置文件中文,但該文件是不是在MySQL的讀取默認的位置,使用指定文件位置 --defaults-extra-file設置.
    4.服務器創建一個'root'@'localhost'的超級用戶帳戶。對於該帳號的密碼,服務器的操作取決於你如何調用它:
    -- 當用 --initialize賬戶而不用--initialize-insecure賬戶時。服務器生成一個隨機的密碼,將其標記爲已過期,並寫入顯示密碼的消息:
    1 [Warning] A temporary password is generated for root@localhost:
    2 iTag*AfrH5ej
    -- 當用 --initialize-insecure賬戶時候。服務器不會生成一個密碼,會將其標記爲過期,並寫入一條警告消息:
    1 Warning] root@localhost is created with an empty password ! Please
    2 consider switching off the --initialize-insecure option.
    5.如果--init-file選項被給出以命名的SQL語句的文件時,服務器執行文件中的語句。可以進行自定義的引導序列。
    服務器工作在引導方式,一些功能是不可用,限制在文件中所允許的語句。這些措施包括,涉及到賬戶管理(如報表CREATE USER或 GRANT),複製和標識符。
    6.然後退出服務器
    當您通過啓動服務器初始化數據目錄--initialize或--initialize-insecure,正常啓動的服務器(也就是沒有任何的這些選項),並指定'root'@'localhost'的一個新密碼:
    ---啓動服務器。
    ---鏈接到服務器..
    如果你使用--initialize 但不使用--initialize-insecure初始化數據目錄,連接到服務器的 根目錄使用的隨機密碼,服務器初始化過程中產生的:
    1 shell> mysql -u root -p
    2 Enter password: (enter the random root password here)
    如果您不知道該密碼,查看服務器錯誤日誌。
    如果你使用--initialize-insecure初始化數據目錄連接到服務器的root沒有密碼:
    1 shell> mysql -u root --skip-password
    ---連接後,會分配一個新的root密碼:
    1 mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY 'new_password';
    注意

    由服務器執行的數據目錄初始化序列不能代替被執行的操作 mysql_secure_installation或 mysql_ssl_rsa_setup。


原文件網址http://www.xiazai.com/article31378
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章