


MySql5 所應(yīng)了解的知識(shí)和常見(jiàn)問(wèn)題
MySQL5系列數(shù)據(jù)庫(kù)是MySQL的最新版本的數(shù)據(jù)庫(kù),比較流行的發(fā)行版是mysql-5.0.18。MySQL 英文官方網(wǎng)站是http://www.mysql.com/
二:獲得MySQL5
所有的關(guān)于MySQL數(shù)據(jù)庫(kù)的程序,都可以在它的英文官方網(wǎng)站下載到,但是,鑒于不不是所有人的英文都很好,所以建議大家盡量區(qū)MySQL的中文官方網(wǎng)站下載自己所需的程序,如果找不到,再去找英文的網(wǎng)站。
MySQL5有安裝版和免安裝版之分,顧名思義,安裝版就是需要安裝以后才可以使用;免安裝版的MySQL下載下來(lái)之后就可以使用,或者進(jìn)行簡(jiǎn)單的設(shè)置就可以使用。
MySQL5安裝版下載地址:
Windows版本:http://download.mysql.cn/src/2006/0218/199.html
Linux版本(源碼包):http://download.mysql.cn/src/2006/0208/62.html
MySQL5免安裝版下載地址:
Windows版本:http://download.mysql.cn/src/2006/0302/205.html
三:MySQL5安裝
Windows版安裝手冊(cè):http://bbs.mysql.cn/thread-261-1-1.html
Linux版本(源碼包)安裝手冊(cè):http://bbs.mysql.cn/thread-493-1-2.html
MySQL有安裝版本和免安裝版本,免安裝版本解壓后的文件夾內(nèi)沒(méi)有安裝程序,可以直接使用。
Windows免安裝版本使用手冊(cè):http://bbs.mysql.cn/thread-552-1-1.html
四:備份與恢復(fù)
常規(guī)備份命令是mysqldump,這里以tm數(shù)據(jù)庫(kù)為例,做簡(jiǎn)單介紹,詳細(xì)資料參考
http://info.mysql.cn/install/2006/0410/5521.html
備份:
#mysqldump -u root -p tm > tm_20060101.sql
按提示輸入密碼,這就把tm數(shù)據(jù)庫(kù)所有的表結(jié)構(gòu)和數(shù)據(jù)備份到tm_20060101.sql了,因?yàn)橐傔M(jìn)行備份工作,如果數(shù)據(jù)量大會(huì)占用很大空間,
這是可以利用gzip壓縮數(shù)據(jù),命令如下:
#mysqldump -u root -p tm | gzip > tm_20060101.sql.gz
還可以備份到遠(yuǎn)程機(jī)器,用-h制定,如
#mysqldump -u root -p tm > tm_20060101.sql -h xxx.xxx.xxx.xxx
可以直接備份到IP地址為xxx.xxx.xxx.xxx的遠(yuǎn)程計(jì)算機(jī)。
恢復(fù)
系統(tǒng)崩潰,重建系統(tǒng),或恢復(fù)數(shù)據(jù)庫(kù)時(shí),可以這樣恢復(fù)數(shù)據(jù):
#mysql -u root -p tm < tm_20060101.sql
從壓縮文件直接恢復(fù):
#gunzip < tm_20060101.sql.gz | mysql -u root -p tm
五:FAQ
Q:為什么我下在的“安裝程序”里面沒(méi)有安裝文件?
A:你下載的可能是免安裝版本。請(qǐng)給出詳細(xì)的版本信息。
Q:如何啟動(dòng)和關(guān)閉mysql?
A:linux下:比如我的mysql是用源碼方式安裝在/usr/local/mysql
自動(dòng):將/usr/local/mysql/share/mysql/mysql.server拷貝到/etc/rc.d/init.d/下,然后
chkconfig --add mysql.server就可以開(kāi)機(jī)就啟動(dòng)mysql服務(wù)了。
手動(dòng):以root身份執(zhí)行/usr/local/mysql/bin/mysqld_safe --user=mysql
windows下:
自動(dòng):
用cmd方式,到mysql安裝路徑的bin文件夾下,執(zhí)行:mysqld-nt --install
手動(dòng):直接到到mysql安裝路徑的bin文件夾下執(zhí)行net start mysql即可。
如果不想讓mysql在計(jì)算機(jī)啟動(dòng)時(shí)候就啟動(dòng)服務(wù),執(zhí)行:mysqld-nt --remove
也可以在HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServices中刪除對(duì)應(yīng)服務(wù)并重啟計(jì)算機(jī)。
關(guān)閉mysql:mysqladmin -uroot -p shutdown
啟動(dòng)mysql:
mysqld-nt --install
net start mysql
Q:如何登錄mysql?
A:mysql -uroot -p回車后,輸入密碼,再回車即可。如果自己沒(méi)有修改的話,默認(rèn)密碼為空。
Q:mysql如何很好的變成圖形化數(shù)據(jù)庫(kù)呢?自身有自帶的圖形化工具沒(méi)有?
A:mysql自帶一個(gè)字符的客戶端,但是還有好多的像mysql_center、SQLyog、phpMyAdmin、Mysql Query Browser,Mysql Administrator、mysqlcc這樣好的圖形管理工具。
mysql_centerd在本站的下載地址:http://bbs.mysql.cn/thread-517-1-1.html
SQLyog去網(wǎng)上搜索,很多的,SQLyog407版本不錯(cuò)。
phpMyAdmin下載地址:http://download.mysql.cn/opencode/2006/0207/55.html
mysql.com提供的管理軟件下載地址:http://dev.mysql.com/downloads/gui-tools/5.0.html
其它的我就不一一提供下載地址,自己到網(wǎng)上搜索下載。
Q:為什么用mysql -uusername -p登錄mysql服務(wù)器時(shí)出現(xiàn)如下提示:
Host 'xxx.xxx.xxx.xxx' is not allowed to connect to this MySQL server!("xxx.xxx.xxx.xxx"代表要登錄的服務(wù)器)
A:這是因?yàn)槟阋卿浀膍ysql服務(wù)器不允許用戶username從xxx.xxx.xxx.xxx這個(gè)ip地址登錄。
解決辦法是在服務(wù)器登錄mysql,操作步驟為:
mysql -uroot -p
(輸入密碼)
use mysql
update user set Host="%" where User="username";
flush privileges;
Q:什么是phpMyAdmin?
A:phpMyAdmin 是一個(gè)用PHP編寫的,可以通過(guò)互聯(lián)網(wǎng)控制和操作MySQL。通過(guò)phpMyAdmin可以完全對(duì)數(shù)據(jù)庫(kù)進(jìn)行操作,例如建立、復(fù)制/刪除數(shù)據(jù)等等。
有了phpMyAdmin 就可以完全不使用mysql命令,直接使用phpMyAdmin就能管理mysql的所有數(shù)據(jù)和數(shù)據(jù)庫(kù)
Q:如何使用phpMyAdmin?
A:要使用phpMyAdmin,下載后,把它釋放到web服務(wù)器的根目錄下,取個(gè)名字,比如就叫phpMyAdmin,然后在瀏覽器的地址欄輸入:
http://X.X.X.X/phpMyAdmin/index.php
就可以了。
如果是phpMyAdmin 2.8.0.2以上版本的,這樣使用會(huì)報(bào)錯(cuò),因?yàn)槟J(rèn)沒(méi)有這個(gè)軟件需要的配置文件config.default.php,在2.6.X版本下都有這個(gè)文件,只是口令不對(duì)。對(duì)于2.6.X版本的,可以直接用文本編輯器打開(kāi)這個(gè)文件,把其中第一個(gè)$cfg中內(nèi)容修改成自己的用戶名及密碼就可以了:
$cfg['Servers'][$i]['auth_type'] = 'config';
// Authentication method (config, http or cookie based)?
$cfg['Servers'][$i]['user'] = 'root';
// MySQL user
$cfg['Servers'][$i]['password'] = '自己的密碼';
不設(shè)置密碼的話,系統(tǒng)會(huì)提示:
Access denied for user 'root'@'localhost' (using password: NO)
如果是2.8.0.2版本的,程序會(huì)提示請(qǐng)運(yùn)行s/setup.php或者index.php這樣的文件進(jìn)行配置以生成config.inc.php文件。
Q:為什么我使用mysql出現(xiàn)亂碼?
A:安裝mysql5時(shí)默認(rèn)的字符集是瑞典編碼latin1,不支持中文。并且出現(xiàn)亂碼的原因很多,建議到bbs.mysql.cn論壇尋找答案。發(fā)貼的話請(qǐng)?jiān)敿?xì)說(shuō)明自己的環(huán)境、安裝過(guò)程及使用的信息,以便大家能快速分析你的問(wèn)題。
Q:為什么我的phpmyadmin提示不能載入mysql擴(kuò)展?
A:
一、看下你的PHP目錄和PHPEXT下有沒(méi)有php_mysql.dll這個(gè)文件。
二、配制一下環(huán)境變量把php_mysql.dll所在的目錄加入的PATH里。
三、有的php安裝程序安裝好以后,在安裝路徑下,并沒(méi)有ext文件夾(不知道為什么),最好下載個(gè)配置的php,然后,將exe文件夾拷貝到安裝目錄下,再進(jìn)行相應(yīng)的配置。
四、看一下c:winnt 或者是 c:windows下的php.ini文件里的php_mysql.dll前面的;(分號(hào))是否去掉了,如果沒(méi)有去掉請(qǐng)去掉,然后,將mysql安裝路徑下bin文件夾下的libmysql.dll放在安裝php的根目錄一般為C:php ,同時(shí)也在 C:windows 下也放各一個(gè),之后重新啟動(dòng)IIS或者是APACHE。有的時(shí)候總是刷新一頁(yè),即使去掉分號(hào)也還是不能載入mysql擴(kuò)展,最后新打開(kāi)一個(gè)窗口,再試。
Q:為什么提示:"沒(méi)有發(fā)現(xiàn) PHP 的擴(kuò)展設(shè)置mbstring, 而當(dāng)前系統(tǒng)好像在使用寬字符集。沒(méi)有 mbstring 擴(kuò)展的 phpMyAdmin 不能正確識(shí)別字符串,可能產(chǎn)生不可意料的結(jié)果."
A:因?yàn)槟銢](méi)有打開(kāi)mbstring在擴(kuò)展,解決辦法:打開(kāi)php的配置文件php.ini,將
extension=php_mbstring.dll前面的分號(hào)";"去掉,并改到正確的路徑,一般為
ext/php_mbstring.dll
Q:為什么PHP連接mysql會(huì)有下面的提示?
Fatal error: Call to undefined function mysql_connect() ……
A:很有可能是沒(méi)有載入mysql擴(kuò)展,如何解決,請(qǐng)參考上面的方法。
因?yàn)槿绻愕南到y(tǒng)沒(méi)有載入mysql擴(kuò)展的話,phpmyadmin能給出提示,而一般的程序則不能給出。
如果phpmyadmin沒(méi)有給出提示,而你恰好用的apache服務(wù)器,嘗試一下方法:
首先是去掉;extension=php_mysql.dll前面的“;”(;為注釋)
第二步是將C:phpext中的php_mysql.dll復(fù)制到C:WINDOWS(C:WINNT)中即可,
并重起Apache。
Q:為什么我不能看孵化池資料?
A:MYSQL.CN的孵化池是專門為初學(xué)者提供學(xué)習(xí)的地方,這里我就不多介紹了,詳情請(qǐng)?jiān)L問(wèn):http://bbs.mysql.cn/thread-369-1-1.html。
Q:能中文數(shù)據(jù)庫(kù)名稱么?
A:可以,但是不推薦,用起來(lái)不方便。
Q:如果我忘記了root密碼,怎么辦?
A:
在windows下:
打開(kāi)命令行窗口,停止mysql服務(wù): Net stop mysql
啟動(dòng)mysql,一般到mysql的安裝路徑,找到 mysqld-nt.exe
執(zhí)行:mysqld-nt --skip-grant-tables
另外打開(kāi)一個(gè)命令行窗口,執(zhí)行mysql
>use mysql
>update user set password=password("new_pass") where user="root";
>flush privileges;
>exit
用Ctrl+Alt+Del,找到mysqld-nt的進(jìn)程殺掉它,在重新啟動(dòng)mysql-nt服務(wù),就可以用新密碼登錄了
在linux下:
如果 MySQL 正在運(yùn)行,首先殺之: killall -TERM mysqld。
啟動(dòng) MySQL :bin/safe_mysqld --skip-grant-tables &
就可以不需要密碼就進(jìn)入 MySQL 了。
然后就是
>use mysql
>update user set password=password("new_pass") where user="root";
>flush privileges;
重新殺 MySQL ,用正常方法啟動(dòng) MySQL 。
Q:為什么出現(xiàn)如下的提示:
[root@0-8-2-df-fa-ee ~]# mysql
ERROR 2002 (HY000): Can't connect
to local MySQL server through socket '/tmp/mysql.sock'
注:也可能是其它路徑下的mysql.sock
A:說(shuō)明mysql服務(wù)沒(méi)有啟動(dòng),mysql.sock是mysql服務(wù)啟動(dòng)后啟動(dòng)生成的文件,
一般先殺掉mysql服務(wù):killall mysql
然后,再根據(jù)自己的安裝情況啟動(dòng)mysql即可。比如,安裝的時(shí)候,用的是
./configure --prefix=/usr/local/mysql的
用下面的命令啟動(dòng):
/usr/local/mysql/bin/mysqld_safe --user=mysql &
之后再去執(zhí)行
/usr/local/mysql/bin/mysql -u root -p
登錄進(jìn)入mysql數(shù)據(jù)庫(kù)
如果還不行的話,一次執(zhí)行下面的命令:
sync
reboot;重啟計(jì)算機(jī),執(zhí)行時(shí)請(qǐng)小心!!!
Q:為什么出現(xiàn)下面的錯(cuò)誤
#1251 - Client does not support authentication protocol
requested by server; consider upgrading MySQL client
A:你使用的數(shù)據(jù)庫(kù)是4.1以上,用命令行連接MySQL數(shù)據(jù)庫(kù)后,執(zhí)行下面的命令:
UPDATE mysql.user SET password=OLD_PASSWORD("your_password")
WHERE Host="your_host" AND User="your_username" ;
即可解決。
your_password:改成你連接數(shù)據(jù)庫(kù)的密碼,比如 123
your_host:改成你連接數(shù)據(jù)庫(kù)的主機(jī),如果是本地的話,就是localhost
your_username:改成你連接數(shù)據(jù)庫(kù)的用戶,比如 root
Q:為什么mysql提示我:Data too long for column ……
A:首先確保你的數(shù)據(jù)大小符合你的字段大小。
再檢查你的數(shù)據(jù)庫(kù)編碼,數(shù)據(jù)庫(kù)的編碼是否與操作數(shù)據(jù)庫(kù)工具的編碼一致!
關(guān)鍵字:MySql、數(shù)據(jù)庫(kù)、編碼
新文章:
- CentOS7下圖形配置網(wǎng)絡(luò)的方法
- CentOS 7如何添加刪除用戶
- 如何解決centos7雙系統(tǒng)后丟失windows啟動(dòng)項(xiàng)
- CentOS單網(wǎng)卡如何批量添加不同IP段
- CentOS下iconv命令的介紹
- Centos7 SSH密鑰登陸及密碼密鑰雙重驗(yàn)證詳解
- CentOS 7.1添加刪除用戶的方法
- CentOS查找/掃描局域網(wǎng)打印機(jī)IP講解
- CentOS7使用hostapd實(shí)現(xiàn)無(wú)AP模式的詳解
- su命令不能切換root的解決方法
- 解決VMware下CentOS7網(wǎng)絡(luò)重啟出錯(cuò)
- 解決Centos7雙系統(tǒng)后丟失windows啟動(dòng)項(xiàng)
- CentOS下如何避免文件覆蓋
- CentOS7和CentOS6系統(tǒng)有什么不同呢
- Centos 6.6默認(rèn)iptable規(guī)則詳解