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);
?>