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/article31378mysql

相關文章
相關標籤/搜索