PHP连接Docker的SQLserver
发布于 2021-05-13 00:07 ,所属分类:区块连和PHP开发学习资料
SQL Server 又称MSSQL,是Microsoft 开发的一个关系型数据库管理系统,也是世界上最为常用的数据库之一。
SQL Server 被设计为在服务器上运行,使多个使用者可以同时访问相同的数据,用户通常通过应用程序来访问。以下是PHP访问SQLserver的例子。
安装MSSQL
#1拉取镜像
dockerpullmicrosoft/mssql-server-linux
#2创建并运行容器
dockerrun--nameMSSQL_1433-m512M-e'ACCEPT_EULA=Y'-e'SA_PASSWORD=Pwd123456!'-p1433:1433-dmicrosoft/mssql-server-linux
#3查看想开的端口是否已开
firewall-cmd--query-port=1433/tcp
#4开永久端口号
firewall-cmd--add-port=1433/tcp--permanent
#5重新载入配置
firewall-cmd--reload
#6进入容器
dockerexec-itMSSQL_1433/bin/bash
#7sqlcmd连接MSSQL
/opt/mssql-tools/bin/sqlcmd-Slocalhost-USA-P'Pwd123456!'
连接MSSQL
#PHP连接MSSQL
<?php
header("Content-Type:text/html;charset=utf-8");
try{
$con=newPDO("sqlsrv:server=103.121.92.38;database=testDB","SA","Pwd123456111!");
echo"数据库连接成功<br>";
}
catch(PDOException$e)
{
echo$e->getMessage();
}
错误参考
#Errorresponsefromdaemon:Container...isnotrunning
解决:查看日志docker logs ae7f0ee5221b
#sqlservr:Thisprogramrequiresamachinewithatleast2000megabytesofmemory
解决方法:
1 查找MSSQL配置文件:find /-name mssql
2 进入配置目录:/var/lib/docker/overlay2/.../diff/opt/mssql/bin
3 备份配置文件:cp sqlservr sqlservr.bak
4使用python修改内存限制代码:python
5修改的程序
>>>oldfile=open("sqlservr.old","rb").read()
>>>oldfile.find("\x00\x94\x35\x77")
>>>newfile=oldfile.replace(b"\x00\x94\x35\x77",b"\x00\x80\x84\x1e")
>>>open("sqlservr","wb").write(newfile)
>>>exit()
#couldnotfinddriver
解决方法:
1下载MSSQL驱动
https://docs.microsoft.com/en-us/sql/connect/php/download-drivers-php-sql-server?view=sql-server-2017
2下载安装后,把对应版本的dll复制到php的ext目录下
3在php.ini开启mssql扩展
4查看mssql驱动是否开启,
echophpinfo();
5搜索sqlsrv
出现sqlsrv,pgsql,odbc,mysql,sqlite就说明开启成功了
6下载ODBC驱动
https://docs.microsoft.com/zh-cn/sql/connect/odbc/download-odbc-driver-for-sql-server?view=sql-server-ver15
7安装后重启服务
本文首发于gongzhong号《计算机程序》,一个专注于项目和技术分享的gongzhong号!项目源码领取:gongzhong号后台回复 1024
相关资源