debian11通过pdo和mysqli连接数据库
安装php
#这里安装的php-mysql是7.3版本,版本保持一致安装php7.3 root@debian-1:~# apt install php7.3 php-mysql root@debian-1:~# vim /etc/php/7.3/apache2/php.ini #去掉前面的注释 extension=pdo_firebird extension=pdo_mysql extension=pdo_oci extension=pdo_odbc extension=pdo_pgsql extension=pdo_sqlite #退出配置文件重启web服务 root@debian~1#systemctl restart apache2.service #确认相关模块都已启动 root@debian-1:~# php -m |grep -i pdo* PDO pdo_mysql root@debian-1:~# php -i |grep -i pdo* /etc/php/7.3/cli/conf.d/10-pdo.ini, /etc/php/7.3/cli/conf.d/20-pdo_mysql.ini, API Extensions => mysqli,pdo_mysql PDO PDO support => enabled PDO drivers => mysql pdo_mysql PDO Driver for MySQL => enabled pdo_mysql.default_socket => /var/run/mysqld/mysqld.sock => /var/run/mysqld/mysqld.sock opcache.file_update_protection => 2 => 2
<?php $serverName=localhost; $username=root; $password=password; // 提前创建好test数据库 try{ $connect = new PDO("mysql:host=$serverName", $username, $password); // pdo方式连接 echo "连接成功"; }catch(Exception $e){ echo $e->getMessage(); } ?>
但是用访问网页出现以下报错
The server requested authenticatio n method unknown to the client
对mysql验证方式进行修改
root@debian-1:~# vim /etc/mysql/mysql.conf.d/mysqld.cnf #添加内容 default_authentication_plugin=mysql_native_password #退出配置文件进入mysql 对要登录的账号进行修改 root@debian-1:~# mysql -u -p mysql> use mysql; Reading table information for completion of table and column names You can turn off this feature to get a quicker startup with -A Database changed mysql> alter user root@localhost identified with mysql_native_password by password; Query OK, 0 rows affected (0.01 sec) mysql> flush privileges; Query OK, 0 rows affected (0.00 sec) #再次重启web服务并用php连接 root@debian~1#systemctl restart apache2.service
<?php $serverName=localhost; $username=root; $password=password; $connect=new mysqli($serverName,$username,$password); if($connect->connect_error){ die(连接失败.$connect->connect_error); }else{ echo 连接成功; } ?>