phpmysqlin
PHP開始~
將php-5.2.1-Win32.zip解壓到准備用於安裝PHP的目錄,這里我就解壓到D:wwwphp;找到php目錄下php.ini-dist文件,改名為php.ini;
用記事本打開php.ini,查找以下幾行:
;extension=php_gd2.dll
;extension=php_mcrypt.dll
;extension=php_mysql.dll
去掉前面的分號.這樣做的目的是讓php載入mcrypt和mysql等各種模塊,在需要的時候可以隨時配置;
其他的比如
post_max_size=8M
upload_max_filesize=2M
都可以按實際情況進差粗行設置.
最後保存,也不需要復制任何文件到系統目錄,這樣PHP基本上就OK了!
MySQL
1、安裝
解壓mysql-5.2.3-falcon-alpha-win32.zip得到一個setup.exe安裝文件,運行之開始安裝MySQLServer5.2;
第一步選擇安裝模式,選擇Custom習慣安裝,Next進入下一步;
這一步選擇安裝內容:仍然虛塵鎮MySQLServer完整安裝,主要是自定義下面的安裝目錄,我安裝在D:wwwMySQL5.2點擊Next進入下一步;
Install開始安裝,稍候會提示注冊MySQL帳戶,SKIP即可;
完成安裝,勾選ConfiguretheMySQLServernow,Finish並進入MySQL配置;
2、配置
完成安裝時若勾選了ConfiguretheMySQLServernow,點擊Finish便可直接進入MySQLServerInstanceWizard;否則就需要在MySQL安裝目錄in下找到並運行.exe進入設置.
點Next開始配置,第一步選擇配置模式,這里我已經安裝了MySQL,所以選擇第一種Detailed模式,Next進入下一步;
這一步selectaservertype,不同的選擇決定MySQL佔用不同的系統內存和CPU資源,這里我選的是DeveloperMachine;
繼續Next,選擇資料庫用途,我選的是多功能型的;
下一步設定InnoDB引擎的存儲目錄,我設置的是D:wwwMySQL5.2InnoDBDatafiles,點擊Next進入下一步;
設置MySQL資料庫的並發連接數,這里需要了解什麼是並發連接數,可根據實際情況進行設定.我這里選的是ManualSetting,並且設置連接數為10000;
Next進入下一步,setthenetworkingoptions,採用默認的,繼續Next;
設置默認語言,選擇第三個,設定character為gbk;
Next將MySQL設置為Windows系統服務,採用默認的,Next進入下一步;
選擇設置root帳戶密碼,或者可以同時新建一個匿名帳戶Anonymous.值得注意的是設置root密碼的下面有一個小選項,是否允許root用戶從別的計算機登陸,為了方便可以勾選上,為了安全兄鎮當然最好就別選;
進入下一步PressExecute開始配置,完成Finish關閉設置向導`~
OK!
❷ PHP下如何創建MYSQL存儲過程
直接上代碼:
mysql_connect("localhost","user","pwd");
mysql_select_db('testdata')ordie(mysql_error());
$sql="createproceretb_neaten(inrecint,inpavarchar(15),inqydecimal(10,2),inarvarchar(6))
begin
updatetest1setqty=qty-qywhererecordnum=rec;
insertintotest2setbname=pa,area=ar,qty=qy,date=date_format(now(),'%Y%m%d'),time=date_format(now(),'%Y%m%d');
end;";
mysql_query($sql)ordie(mysql_error());
若是存儲過程里含有捕獲select結果的語句時,需在mysql_connect時調整參數
mysql_connect("localhost","user","password",1,131072)
執行時,直接運行
mysql_query(tb_neaten(va1,va2,va3,va4));
❸ php連接不上mysql但mysql命令行操作正常的解決方法
故障狀況:php網站連接mysql失敗,但在命令行下通過mysql命令可登錄並正常操作。
解決方案:
1、命令行下登錄mysql,執行以下命令:
復制代碼
代碼如下:show
variables
like
'socket';
執行後會得到類似於如下回顯:
復制代碼
代碼如下:
"Variable_name"
"Value"
"socket"
"/home/mysql/data/mysql.sock"
2、編輯php.ini,找到mysql.default_socket配置項,默認一般是空值(使用編輯Mysql時設置行祥腔的sock路徑),將此項添加值為上宴櫻面回顯中的"/home/mysql/data/mysql.sock":
復制代碼
代碼如下:
;
Default
socket
name
for
local
MySQL
connects.
If
empty,
uses
the
built-in
;
MySQL
defaults.
mysql.default_socket
=
/home/mysql/data/mysql.sock
3、重檔衫啟php。
❹ PHP下使用mysqli的函數連接mysql出現warning: mysqli::real_connect(): (hy000/1040): ...
背景:把mysql換成mysqli時出現,連接數過多,其實際上並不是,原因是我挪動了一下php的sock文件位置導致,因這幾個socket修改沒有修改完全,於是出現了too
many
connections
,從mysql里show
processlist並沒有發現真的有連接,其實用tshark抓下包估計能看到(http://justwinit.cn/post/7458/),並沒有發出請求,而估計是mysqli的客戶端自己報出來的,別看這個問題小,搞了老半天,都想重新安裝Php了,發現原來是路徑寫錯了同時mysqli的客戶端提示連接數過多的誤提示導致方向走錯了。如下:
[root@iZ25z0ugwgtZ
etc]#
grep
-r
"mysql.sock"
./
./php.ini:pdo_mysql.default_socket=/data/runsock/mysqlsock/mysql.sock
./php.ini:;mysql.default_socket
=
/tmp/mysql.sock
./php.ini:mysql.default_socket
=
/data/runsock/mysqlsock/mysql.sock
./php.ini:mysqli.default_socket
=
/data/runsock/mysql.sock
//這個位置被挪動到,/data/runsock/mysqlsock/mysql.sock導致。
修改後記得重啟動php-fpm:
[root@iZ25z0ugwgtZ
etc]#
service
php-fpm
restart
Gracefully
shutting
down
php-fpm
.
done
Starting
php-fpm
done
______________________排查要點如下_______________________________
warning:
mysqli::real_connect():
(hy000/1040):
too
many
connections
in:
出現場景
:手動編譯安裝mysql,並制定安裝位置,php以localhost方式連接mysql
原因分析
:手動編譯安裝制定位置後所有的mysql文件都在制定的目錄或者data目錄下面,php默認只會尋找/temp/mysql.sock找這個sock文件,所以會導致sock文件無法找到。
解決方法
:
1.給sock文件做個軟鏈
ln
-s
/data/mysqldb/mysql.sock
/tmp/mysql.sock;
或者
2.修改php的默認mysql.sock連接地址
mysql.default_socket=/data/mysqldb/mysql.sock
3.使用tcp
socket的方式進行連接
mysql('127.0.0.1','username','passwod');
下面給大家介紹PHP
mysql_connect()
函數
定義和用法
mysql_connect()
函數打開非持久的
MySQL
連接。
語法
mysql_connect(server,user,pwd,newlink,clientflag)
參數
描述
server
可選。規定要連接的伺服器。
可以包括埠號,例如
"hostname:port",或者到本地套接字的路徑,例如對於
localhost
的
":/path/to/socket"。
如果
PHP
指令
mysql.default_host
未定義(默認情況),則默認值是
'localhost:3306'。
user
可選。用戶名。默認值是伺服器進程所有者的用戶名。
pwd
可選。密碼。默認值是空密碼。
newlink
可選。如果用同樣的參數第二次調用
mysql_connect(),將不會建立新連接,而將返回已經打開的連接標識。參數
new_link
改變此行為並使
mysql_connect()
總是打開新的連接,甚至當
mysql_connect()
曾在前面被用同樣的參數調用過。
clientflag
可選。client_flags
參數可以是以下常量的組合:
MYSQL_CLIENT_SSL
-
使用
SSL
加密
MYSQL_CLIENT_COMPRESS
-
使用壓縮協議
MYSQL_CLIENT_IGNORE_SPACE
-
允許函數名後的間隔
MYSQL_CLIENT_INTERACTIVE
-
允許關閉連接之前的交互超時非活動時間
返回值
如果成功,則返回一個
MySQL
連接標識,失敗則返回
FALSE。
提示和注釋
注釋:腳本一結束,到伺服器的連接就被關閉,除非之前已經明確調用
mysql_close()
關閉了。
提示:要創建一個持久連接,請使用
mysql_pconnect()
函數。
例子
<?php
$con
=
mysql_connect("localhost","mysql_user","mysql_pwd");
if
(!$con)
{
die('Could
not
connect:
'
.
mysql_error());
}
//
一些代碼...
mysql_close($con);
?>