初學MySql5 所應瞭解的知識和常見問題

來源:互聯網
上載者:User
初學MySql5 所應瞭解的知識和常見問題

來源:Linux技術中堅站 等級:預設等級
發佈於2007-07-26 21:39 被讀534次 【字型:大 中 小】

 

一:關於MySQL5

MySQL5系列資料庫是MySQL的最新版本的資料庫,比較流行的發行版是mysql-5.0.18。MySQL 英文官方網站是http://www.mysql.com/

二:獲得MySQL5

所有的關於MySQL資料庫的程式,都可以在它的英文官方網站下載到,但是,鑒於不不是所有人的英文都很好,所以建議大家盡量區MySQL的中文官方網站下載自己所需的程式,如果找不到,再去找英文的網站。

MySQL5有安裝版和免安裝版之分,顧名思義,安裝版就是需要安裝以後才可以使用;免安裝版的MySQL下載下來之後就可以使用,或者進行簡單的設定就可以使用。

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版安裝手冊:http://bbs.mysql.cn/thread-261-1-1.html

Linux版本(源碼包)安裝手冊:http://bbs.mysql.cn/thread-493-1-2.html

MySQL有安裝版本和免安裝版本,免安裝版本解壓後的檔案夾內沒有安裝程式,可以直接使用。

Windows免安裝版本使用手冊:http://bbs.mysql.cn/thread-552-1-1.html

四:備份與恢複

常規備份命令是mysqldump,這裡以tm資料庫為例,做簡單介紹,詳細資料參考

http://info.mysql.cn/install/2006/0410/5521.html

備份:

#mysqldump -u root -p tm > tm_20060101.sql

按提示輸入密碼,這就把tm資料庫所有的表結構和資料備份到tm_20060101.sql了,因為要總進行備份工作,如果資料量大會佔用很大空間,

這是可以利用gzip壓縮資料,命令如下:

#mysqldump -u root -p tm | gzip > tm_20060101.sql.gz

還可以備份到遠程機器,用-h制定,如

#mysqldump -u root -p tm > tm_20060101.sql -h xxx.xxx.xxx.xxx

可以直接備份到IP地址為xxx.xxx.xxx.xxx的遠端電腦。

恢複

系統崩潰,重建系統,或恢複資料庫時,可以這樣恢複資料:

#mysql -u root -p tm < tm_20060101.sql

從壓縮檔直接恢複:

#gunzip < tm_20060101.sql.gz | mysql -u root -p tm

五:FAQ

Q:為什麼我下在的“安裝程式”裡面沒有安裝檔案?

A:你下載的可能是免安裝版本。請給出詳細的版本資訊。

Q:如何啟動和關閉mysql?

A:linux下:比如我的mysql是用源碼方式安裝在/usr/local/mysql

自動:將/usr/local/mysql/share/mysql/mysql.server拷貝到/etc/rc.d/init.d/下,然後

chkconfig --add mysql.server就可以開機就啟動mysql服務了。

手動:以root身份執行/usr/local/mysql/bin/mysqld_safe --user=mysql

windows下:

自動:

用cmd方式,到mysql安裝路徑的bin檔案夾下,執行:mysqld-nt --install

手動:直接到到mysql安裝路徑的bin檔案夾下執行net start mysql即可。

如果不想讓mysql在電腦啟動時候就啟動服務,執行:mysqld-nt --remove

也可以在HKEY_LOCAL_MACHINE/SYSTEM/CurrentControlSet/Services中刪除對應服務並重啟電腦。

關閉mysql:mysqladmin -uroot -p shutdown

啟動mysql:

mysqld-nt --install

net start mysql

Q:如何登入mysql?

A:mysql -uroot -p斷行符號後,輸入密碼,再斷行符號即可。如果自己沒有修改的話,預設密碼為空白。

Q:mysql如何很好的變成圖形化資料庫呢?自身有內建的圖形化工具沒有?

A:mysql內建一個字元的用戶端,但是還有好多的像mysql_center、SQLyog、phpMyAdmin、Mysql Query Browser,Mysql Administrator、mysqlcc這樣好的圖形管理工具。

mysql_centerd在本站的:http://bbs.mysql.cn/thread-517-1-1.html

SQLyog去網上搜尋,很多的,SQLyog407版本不錯。

phpMyAdmin:http://download.mysql.cn/opencode/2006/0207/55.html

mysql.com提供的管理軟體:http://dev.mysql.com/downloads/gui-tools/5.0.html

其它的我就不一一提供,自己到網上搜尋下載。

Q:為什麼用mysql -uusername -p登入mysql伺服器時出現如下提示:

Host 'xxx.xxx.xxx.xxx' is not allowed to connect to this MySQL server!("xxx.xxx.xxx.xxx"代表要登入的伺服器)

A:這是因為你要登入的mysql伺服器不允許使用者username從xxx.xxx.xxx.xxx這個ip地址登入。

解決辦法是在伺服器登入mysql,操作步驟為:

mysql -uroot -p

(輸入密碼)

use mysql

update user set Host="%" where User="username";

flush privileges;

Q:什麼是phpMyAdmin?

A:phpMyAdmin 是一個用PHP編寫的,可以通過互連網控制和操作MySQL。通過phpMyAdmin可以完全對資料庫進行操作,例如建立、複製/刪除資料等等。

有了phpMyAdmin 就可以完全不使用mysql命令,直接使用phpMyAdmin就能管理mysql的所有資料和資料庫

Q:如何使用phpMyAdmin?

A:要使用phpMyAdmin,下載後,把它釋放到web伺服器的根目錄下,取個名字,比如就叫phpMyAdmin,然後在瀏覽器的地址欄輸入:

http://X.X.X.X/phpMyAdmin/index.php

就可以了。

如果是phpMyAdmin 2.8.0.2以上版本的,這樣使用會報錯,因為預設沒有這個軟體需要的設定檔config.default.php,在2.6.X版本下都有這個檔案,只是口令不對。對於2.6.X版本的,可以直接用文字編輯器開啟這個檔案,把其中第一個$cfg中內容修改成自己的使用者名稱及密碼就可以了:

$cfg['Servers'][$i]['auth_type']     = 'config';   
// Authentication method (config, http or cookie based)?
$cfg['Servers'][$i]['user']          = 'root';      
// MySQL user
$cfg['Servers'][$i]['password']      = '自己的密碼';

不設定密碼的話,系統會提示:

Access denied for user 'root'@'localhost' (using password: NO)

如果是2.8.0.2版本的,程式會提示請運行scripts/setup.php或者index.php這樣的檔案進行配置以產生config.inc.php檔案。

Q:為什麼我使用mysql出現亂碼?

A:安裝mysql5時預設的字元集是瑞典編碼latin1,不支援中文。並且出現亂碼的原因很多,建議到bbs.mysql.cn論壇尋找答案。發貼的話請詳細說明自己的環境、安裝過程及使用的資訊,以便大家能快速分析你的問題。

Q:為什麼我的phpmyadmin提示不能載入mysql擴充?

A:

一、看下你的PHP目錄和PHP/EXT下有沒有php_mysql.dll這個檔案。

二、配製一下環境變數把php_mysql.dll所在的目錄加入的PATH裡。

三、有的php安裝程式安裝好以後,在安裝路徑下,並沒有ext檔案夾(不知道為什麼),最好下載個配置的php,然後,將exe檔案夾拷貝到安裝目錄下,再進行相應的配置。

四、看一下c:/winnt 或者是 c:/windows下的php.ini檔案裡的php_mysql.dll前面的;(分號)是否去掉了,如果沒有去掉請去掉,然後,將mysql安裝路徑下bin檔案夾下的libmysql.dll放在安裝php的根目錄一般為C:/php ,同時也在 C:/windows 下也放各一個,之後重新啟動IIS或者是APACHE。有的時候總是重新整理一頁,即使去掉分號也還是不能載入mysql擴充,最後新開啟一個視窗,再試。

Q:為什麼提示:"沒有發現 PHP 的擴充設定mbstring, 而當前系統好像在使用寬字元集。沒有 mbstring 擴充的 phpMyAdmin 不能正確識別字串,可能產生不可意料的結果."

A:因為你沒有開啟mbstring在擴充,解決辦法:開啟php的設定檔php.ini,將

extension=php_mbstring.dll前面的分號";"去掉,並改到正確的路徑,一般為

ext/php_mbstring.dll

Q:為什麼PHP串連mysql會有下面的提示?

Fatal error: Call to undefined function mysql_connect() ……

A:很有可能是沒有載入mysql擴充,如何解決,請參考上面的方法。

因為如果你的系統沒有載入mysql擴充的話,phpmyadmin能給出提示,而一般的程式則不能給出。

如果phpmyadmin沒有給出提示,而你恰好用的apache伺服器,嘗試一下方法:

首先是去掉;extension=php_mysql.dll前面的“;”(;為注釋)

第二步是將C:/php/ext中的php_mysql.dll複製到C:/WINDOWS(C:/WINNT)中即可,

並重起Apache。

Q:為什麼我不能看孵化池資料?

A:MYSQL.CN的孵化池是專門為初學者提供學習的地方,這裡我就不多介紹了,詳情請訪問:http://bbs.mysql.cn/thread-369-1-1.html。

Q:能中文資料庫名稱嗎?

A:可以,但是不推薦,用起來不方便。

Q:如果我忘記了root密碼,怎麼辦?

A:

在windows下:

開啟命令列視窗,停止mysql服務: Net stop mysql

啟動mysql,一般到mysql的安裝路徑,找到 mysqld-nt.exe

執行:mysqld-nt --skip-grant-tables

另外開啟一個命令列視窗,執行mysql

>use mysql
>update user set password=password("new_pass") where user="root";
>flush privileges;
>exit
用Ctrl+Alt+Del,找到mysqld-nt的進程殺掉它,在重新啟動mysql-nt服務,就可以用新密碼登入了

在linux下:

如果 MySQL 正在運行,首先殺之: killall -TERM mysqld。

啟動 MySQL :bin/safe_mysqld --skip-grant-tables &

就可以不要求輸入密碼就進入 MySQL 了。

然後就是

>use mysql

>update user set password=password("new_pass") where user="root";

>flush privileges;

重新殺 MySQL ,用正常方法啟動 MySQL 。

Q:為什麼出現如下的提示:

[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:說明mysql服務沒有啟動,mysql.sock是mysql服務啟動後啟動產生的檔案,

一般先殺掉mysql服務:killall mysql

然後,再根據自己的安裝情況啟動mysql即可。比如,安裝的時候,用的是

./configure --prefix=/usr/local/mysql的

用下面的命令啟動:

/usr/local/mysql/bin/mysqld_safe --user=mysql &

之後再去執行

/usr/local/mysql/bin/mysql -u root -p

登入進入mysql資料庫

如果還不行的話,一次執行下面的命令:

sync

reboot;重啟電腦,執行時請小心!!!

Q:為什麼出現下面的錯誤

#1251 - Client does not support authentication protocol
requested by server; consider upgrading MySQL client

A:你使用的資料庫是4.1以上,用命令列串連MySQL資料庫後,執行下面的命令:

UPDATE mysql.user SET password=OLD_PASSWORD("your_password")
WHERE Host="your_host" AND User="your_username" ;

即可解決。

your_password:改成你串連資料庫的密碼,比如 123

your_host:改成你串連資料庫的主機,如果是本地的話,就是localhost

your_username:改成你串連資料庫的使用者,比如 root

Q:為什麼mysql提示我:Data too long for column ……

A:首先確保你的資料大小符合你的欄位大小。

再檢查你的資料庫編碼,資料庫的編碼是否與操作資料庫工具的編碼一致!

 

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.