1》修改默認存儲引擎方法
修改配置文件,然後重啟mysql服務;
[root@CHW mysql]# cat /etc/my.cnf
[mysqld]
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
user=root
skip-grant-tables
default-storage-engine=INNODB
# Disabling symbolic-links is recommended to prevent assorted security risks
symbolic-links=0
[mysqld_safe]
log-error=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid
2》字段類型char, varchar,text的區別
text、char、varchar是數據在數據庫中的存放策略問題,為了合理應用存儲空間,是數據庫服務器對數據類型劃分的方式,對於應用
程序,把它們和string對應就可以了;
char:是固定長度的,但是長度範圍是0~255,当我們想要存儲一個長度不足255的字符時,Mysql會用空格來填充剩下的字符,因此
在讀取數據時,char類型的數據要進行處理,把後面的空格去除;
varchar:關於varchar,有的說最大長度是255,也有的說是65535,查閱很多資料后發現是這樣的:varchar類型在5.0.3以下的版本中
的最大 長度限制為255,而在5.0.3及以上的版本中,varchar數據類型的長度支持到了65535,也就是說可以存放65532個字
節(注意是字節而不是字符)的數據(起始位和結束位占去了3個字節),也就是說在5.0.3以下版本中需要使用固定的TEX
T或BLOB格式存放的數據,可以在高版本中使用可變長的varchar來存放,這樣就能有效的減少數據庫文件的大小;
text:與char和varchar不同的是,text不可以有默認值,其最大長度是2的16次方-1;
總結如下:
經常變化的字段用varchar;
知道固定長度的用char;
儘量用varchar;
超過255字符的只能用varchar或者text;
能用varchar的地方不用text;
char是一種固定長度的類型,varchar則是一種可變長度的類型,在char(M)類型的數據列里,每個值都佔用M個字節,如果某個
長度小於M,Mysql就會在它的右邊用空格字符補足(在檢索操作中那些填補出來的空格字符將被去掉);在varchar(M)類
型的數據列中,每個值只佔用剛好夠用的字節再加上一個用來記錄其長度的字節(即總長度為L+1字節);比如char(255)
和varchar(255),在存儲字符串“hello world”的時候,char會用一塊255的空間放那11個字符,而varchar就不會用255個,
他先計算長度后只用11個再加上計算得到字符串長度信息,一般1-2個byte來,這樣varchar在存儲不確定長度的時候會大
大減少存儲空間;
某種原因char固定長度,所以在處理速度上要比varchar快速很多,但是相對浪費存儲空間,所以對存儲要求不高,但在速度
上有要求 的可以使用char類型,反之可以用varchar類型來實例;一個關於varchar的問題是varchar他既然可以自動適應存儲空間,那我
們varchar(8)和varchar(255)存儲應該都是一樣的,那每次表設計的時候往大的方向去好了,免得以後不夠用麻煩,這個思路是不對的
,mysql會把表信息放到內存中(查詢第一次后,就緩存住了,linux下很明顯,但windows下似乎沒有,不知道為啥),這時內存的申請是
按照固定長度來的,如果varchar很大就會有問題,所以還是應該按需索取;
3》root用戶密碼忘記以後重新設置
1)修改配置文件,添加如下語句
[root@CHW scripts]# cat /etc/my.cnf
[mysqld]
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
user=root
skip-grant-tables
default-storage-engine=INNODB
# Disabling symbolic-links is recommended to prevent assorted security risks
symbolic-links=0
2)重新啟動mysql服務,用mysql直接進入;
3)使用如下命令重新設置root用戶的密碼;
mysql> update mysql.user set password=PASSWORD("aixocm") where user="root";
Query OK, 3 rows affected (0.00 sec)
Rows matched: 3 Changed: 3 Warnings: 0
4)刷新權限
mysql> flush privileges;
Query OK, 0 rows affected (0.00 sec)