mysql创建数据库时候同时创建表空间_MySQL 创建InnoDB表空间_编程学问网
15.2.5.?創(chuàng)建InnoDB表空間
假設(shè)你已經(jīng)安裝了MySQL,并且已經(jīng)編輯了選項(xiàng)文件,使得它包含必要的InnoDB配置參數(shù)。在啟動(dòng)MySQL之前,你應(yīng)該驗(yàn)證你為InnoDB數(shù)據(jù)文件和日志文件指定的目錄是否存在,并且MySQL有訪問這些目錄的權(quán)限。InnoDB不能創(chuàng)建目錄,只能創(chuàng)建文件。也檢查你有足夠的空間來放數(shù)據(jù)和日志文件。
當(dāng)創(chuàng)建InnoDB數(shù)據(jù)庫時(shí),最好從命令提示符運(yùn)行MySQL服務(wù)器mysqld, 而不要從mysqld_safe包裝或作為Windows的服務(wù)來運(yùn)行。當(dāng)你從命令提示符運(yùn)行,你可看見mysqld打印什么以及發(fā)生了什么。在Unix上,只需要調(diào)用mysqld。在Windows上,使用--console選項(xiàng)。
當(dāng)在選項(xiàng)文件里初始地配置InnoDB后,開始啟動(dòng)MySQL服務(wù)器之時(shí),InnoDB創(chuàng)建一個(gè)數(shù)據(jù)文件和日志文件。InnoDB打印如下一些東西:
InnoDB: The first specified datafile /home/heikki/data/ibdata1
did not exist:
InnoDB: a new database to be created!
InnoDB: Setting file /home/heikki/data/ibdata1 size to 134217728
InnoDB: Database physically writes the file full: wait...
InnoDB: datafile /home/heikki/data/ibdata2 did not exist:
new to be created
InnoDB: Setting file /home/heikki/data/ibdata2 size to 262144000
InnoDB: Database physically writes the file full: wait...
InnoDB: Log file /home/heikki/data/logs/ib_logfile0 did not exist:
new to be created
InnoDB: Setting log file /home/heikki/data/logs/ib_logfile0 size
to 5242880
InnoDB: Log file /home/heikki/data/logs/ib_logfile1 did not exist:
new to be created
InnoDB: Setting log file /home/heikki/data/logs/ib_logfile1 size
to 5242880
InnoDB: Doublewrite buffer not found: creating new
InnoDB: Doublewrite buffer created
InnoDB: Creating foreign key constraint system tables
InnoDB: Foreign key constraint system tables created
InnoDB: Started
mysqld: ready for connections
一個(gè)新的InnoDB數(shù)據(jù)庫被創(chuàng)建了。你可以用mysql這樣通常的MySQL客戶端程序連接到MySQL服務(wù)器。當(dāng)你用mysqladmin shutdown關(guān)閉MySQL服務(wù)器之時(shí),輸出類似如下:
010321 18:33:34mysqld:
Normal shutdown
010321 18:33:34mysqld: Shutdown Complete
InnoDB: Starting shutdown...
InnoDB: Shutdown completed
你可以看數(shù)據(jù)文件和日志文件,并且你可以看見文件被創(chuàng)建。日志目錄也包含一個(gè)名為ib_arch_log_0000000000的小文件。這個(gè)文件是數(shù)據(jù)庫被創(chuàng)建的結(jié)果,數(shù)據(jù)庫被創(chuàng)建之后InnoDB切斷日志歸檔。當(dāng)MySQL再次啟動(dòng)之時(shí),數(shù)據(jù)文件&日志文件已經(jīng)被創(chuàng)建,所以輸出更簡潔:
InnoDB: Started
mysqld: ready for connections
你可以添加innodb_file_per_table選項(xiàng)到my.cnf文件,并且讓InnoDB存儲(chǔ)每一個(gè)表到MySQL數(shù)據(jù)庫目錄里自己的.ibd文件。請(qǐng)參閱15.2.6.6節(jié),“使用Per-Table表空間”。
15.2.5.1.?處理InnoDB初始化問題
如果InnoDB在一個(gè)文件操作中打印一個(gè)操作系統(tǒng)錯(cuò)誤,通常問題是如下中的一個(gè):
·你沒有創(chuàng)建一個(gè)InnoDB數(shù)據(jù)文件目錄或InnoDB日志目錄。
·mysqld沒有訪問這些目錄的權(quán)限 以創(chuàng)建文件。
·mysqld不能恰當(dāng)?shù)刈x取my.cnf或my.ini選項(xiàng)文件,因此不能看到你指定的選項(xiàng)。
·磁盤已滿,或者超出磁盤配額。
·你已經(jīng)創(chuàng)建一個(gè)子目錄,它的名字與你指定的數(shù)據(jù)文件相同。
·在innodb_data_home_dir或innodb_data_file_path有一個(gè)語法錯(cuò)誤。
當(dāng)InnoDB試著初始化它的表空間或日志文件之時(shí),如果出錯(cuò)了,你應(yīng)該刪除InnoDB創(chuàng)建的所有文件。這意味著是所有ibdata文件和所有ib_logfiles文件。萬一你創(chuàng)建了一些InnoDB表,為這些表也從MySQL數(shù)據(jù)庫目錄刪除相應(yīng)的.frm文件(如果你使用多重表空間的話,也刪除任何.ibd文件)。然后你可以試著再次創(chuàng)建InnoDB數(shù)據(jù)庫。最好是從命令提示符啟動(dòng)MySQL服務(wù)器 ,以便你可以查看發(fā)生了什么。
總結(jié)
以上是生活随笔為你收集整理的mysql创建数据库时候同时创建表空间_MySQL 创建InnoDB表空间_编程学问网的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: mysql5.7+主从不一致_Mysql
- 下一篇: mysql查询总结_mysql查询总结相