| 一:關於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:首先確保你的資料大小符合你的欄位大小。 再檢查你的資料庫編碼,資料庫的編碼是否與操作資料庫工具的編碼一致!
|