php連接數據庫框架「php連接sqlserver數據庫」

環境: win10 + PHP5.48 + Apache2.2 + Mysql8.017

PHP連接實例

<?php
    $link = mysql_connect("localhost", "myuser", "mypasswd");
    #myuser: 用戶名
    #mypasswd: 密碼
    var_dump($link);
    mysql_close();
?>


坑1 Call to undefinedfunction mysql_connect()

PHP連接mysql遇到的坑(附解決方法,親測有效)

原因: mysql_connect()函數未定義,php.ini配置文件中未開啟

解決方法:

1.1 配置php.ini函數

PHP連接mysql遇到的坑(附解決方法,親測有效)

1.1.1 去掉extension=php_mysql.dll前面的注釋分號;

1.1.2 通過extension指定php_mysql.dll的絕對路徑

1.2 配置文件路徑

1.2.1 將php.ini文件拷貝至c:windowssystem32下

1.3 重啟Apache服務(具體怎麼重啟就不說了,如果這個都不知道,那本文對你沒幫助)



坑2 The server requested authentication method unknown to the client

PHP連接mysql遇到的坑(附解決方法,親測有效)

原因: mysql8.x的密碼鎖機制不一致導致的

在 mysql 8.x 以後,caching_sha2_password是默認的身份驗證插件,而不是以往的mysql_native_password。

解決方法

1.1 修改mysql的my.ini配置文件

PHP連接mysql遇到的坑(附解決方法,親測有效)

可以看到默認的驗證方式是caching_sha2_password ,這裡修改為mysql_native_password

1.2 mysql中查看對應用戶身份驗證插件

PHP連接mysql遇到的坑(附解決方法,親測有效)

可以看到root用戶的身份驗證插件已經改為了mysql_native_password

如果身份驗證方式沒變,執行如下操作

# 登陸mysql
mysql -uroot -p
# 使用mysql數據庫
use mysql;
# 修改身份驗證插件
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '你的密碼';


坑3 字符集錯誤 sever sent charset unknowd to the client ,Please report to the decelopers

PHP連接mysql遇到的坑(附解決方法,親測有效)

原因: MySQL8更換了默認的服務器字符集,mysql8.x的字符集character-set-server默認是utf8mb4,不再是5.x時代的utf8了

解決方法:

修改mysql的my.ini配置文件,具體修改條目如下:(這裡只展示了需要修改的條目,原配置文件內容很多)

[client]
default-character-set=utf8

[mysql]
default-character-set=utf8

[mysqld]
collation-server = utf8_unicode_ci
character-set-server = utf8


切記:任何每一次的修改,都需要重啟Apache服務,以及mysql服務!!!

原創文章,作者:投稿專員,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/259094.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
投稿專員的頭像投稿專員
上一篇 2024-12-15 16:30
下一篇 2024-12-15 16:30

相關推薦

發表回復

登錄後才能評論