1、 關於MySQL5php
MySQL5系列數據庫是MySQL的最新版本的數據庫,比較流行的發行版是mysql-5.0.18。
MySQL 英文官方網站是http://www.mysql.com/
2、 得到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
3、 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
4、 備份與恢復
常規備份命令是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
5、 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數據庫的用戶密碼和系統的用戶密碼!!
mysql -uroot -p
輸入密碼
#登陸mysql
>use mysql
>update user set password=password("new_pass") where user="userName"; #userName換成你要修改的用戶名的密碼,好比root
>flush privileges;
>exit;
Q:如何登陸mysql?
A:mysql -uroot -p回車後,輸入密碼,再回車便可。若是本身沒有修改的話,默認密碼爲空。
Q:mysql如何很好的變成圖形化數據庫呢?自身有自帶的圖形化工具沒有?
A:mysql自帶一個字符的客戶端,可是還有好多的像mysql_center、SQLyog、phpMyAdmin、Mysql QueryBrowser,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 cookiebased)?
$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:如何修改字符集?
A:
mysql -uroot -p
輸入密碼
選擇你的目標數據庫
mysql> use dbname
顯示當前字符集
mysql> show variables like '%char%';
+--------------------------+----------------------------------------+
| Variable_name | Value |
+--------------------------+----------------------------------------+
| character_set_client | gb2312 |
| character_set_connection | gb2312 |
| character_set_database | gb2312 |
| character_set_results | gb2312 |
| character_set_server | gb2312 |
| character_set_system | utf8 |
| character_sets_dir | /usr/local/mysql/share/mysql/charsets/ |
+--------------------------+----------------------------------------+
7 rows in set (0.00 sec)
最好是保持字符集統一。若是你要修改哪一個字符集,用set命令,如:
mysql> set character_set_client gbk;
Query OK, 0 rows affected (0.00 sec)
mysql> show variables like '%char%';
+--------------------------+----------------------------------------+
| Variable_name | Value |
+--------------------------+----------------------------------------+
| character_set_client | gbk |
| character_set_connection | gb2312 |
| character_set_database | gb2312 |
| character_set_results | gb2312 |
| character_set_server | gb2312 |
| character_set_system | utf8 |
| character_sets_dir | /usr/local/mysql/share/mysql/charsets/ |
+--------------------------+----------------------------------------+
再改回來:
mysql> set character_set_client=gb2312;
Query OK, 0 rows affected (0.00 sec)
mysql> show variables like '%char%';
+--------------------------+----------------------------------------+
| Variable_name | Value |
+--------------------------+----------------------------------------+
| character_set_client | gb2312 |
| character_set_connection | gb2312 |
| character_set_database | gb2312 |
| character_set_results | gb2312 |
| character_set_server | gb2312 |
| character_set_system | utf8 |
| character_sets_dir | /usr/local/mysql/share/mysql/charsets/ |
+--------------------------+----------------------------------------+
7 rows in set (0.00 sec)
本身試試就知道了。
Q:爲何個人phpmyadmin提示不能載入mysql擴展?
A: 1、看下你的PHP目錄和PHP\EXT下有沒有php_mysql.dll這個文件。
2、配製一下環境變量把php_mysql.dll所在的目錄加入的PATH裏。
3、有的php安裝程序安裝好之後,在安裝路徑下,並無ext文件夾(不知道爲何),最好下載個配置的php,而後,將exe文件夾拷貝到安裝目錄下,再進行相應的配置。
4、看一下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' (2)
注:也多是其它路徑下的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:首先確保你的數據大小符合你的字段大小。
再檢查你的數據庫編碼,數據庫的編碼是否與操做數據庫工具的編碼一致!