原文:http://www.upwqy.com/details/48.html
使用mysql二进制方式 进入到命令提示符下来 连接数据库
/usr/local/mysql/bin/mysql -uroot -p
up61deMacBook-Pro:~ up61$ /usr/local/mysql/bin/mysql -uroot -p Enter password: Welcome to the MySQL monitor. Commands end with ; or g. Your MySQL connection id is 1916 Server version: 5.6.38 MySQL Community Server (GPL) Copyright (c) 2000, 2017, Oracle and/or its affiliates. All rights reserved. Oracle is a registered trademark of Oracle Corporation and/or its affiliates. Other names may be trademarks of their respective owners. Type 'help;' or 'h' for help. Type 'c' to clear the current input statement. mysql>
使用 PHP 脚本连接 MySQL
PHP 提供了 mysqli_connect() 函数来连接数据库。
该函数有 6 个参数,在成功链接到 MySQL 后返回连接标识,失败返回 FALSE 。
mysqli_connect(host,username,password,dbname,port,socket);
你可以使用PHP的 mysqli_close() 函数来断开与MySQL数据库的链接。
该函数只有一个参数为 mysqli_connect() 函数创建连接成功后返回的 MySQL 连接标识符。
bool mysqli_close ( mysqli $link )
本函数关闭指定的连接标识所关联的到 MySQL 服务器的非持久连接。如果没有指定 link_identifier,则关闭上一个打开的连接。
提示:通常不需要使用 mysqli_close(),因为已打开的非持久连接会在脚本执行完毕后自动关闭。
例子:
<?php /** * Created by PhpStorm. * User: up61 * Date: 2017/11/19 * Time: 下午6:56 */ $host = '127.0.0.1:3306'; $dbuser = 'root'; $dbpass = 'root123'; $conn = mysqli_connect($host, $dbuser, $dbpass); if(! $conn ) { die('Could not connect: ' . mysqli_error($conn)); } echo '数据库连接成功!'; mysqli_close($conn);
本地搭建的虚拟域名是test.cn
浏览器输入 http://test.cn/mysql/db.php
访问结果。数据库连接成功!
我们尝试 把 $host 弄错。
$host->$host1
<?php /** * Created by PhpStorm. * User: up61 * Date: 2017/11/19 * Time: 下午6:56 */ $host = '127.0.0.1:3306'; $dbuser = 'root'; $dbpass = 'root123'; $conn = mysqli_connect($host1, $dbuser, $dbpass); if(! $conn ) { die('Could not connect: ' . mysqli_error($conn)); } echo '数据库连接成功!'; mysqli_close($conn);
浏览器返回的结果是
Warning: mysqli_connect(): (HY000/2002): No such file or directory in /Library/WebServer/Documents/html/mysql/db.php on line 33
Warning: mysqli_error() expects parameter 1 to be mysqli, boolean given in /Library/WebServer/Documents/html/mysql/db.php on line 36
Could not connect:
提取出来错误类型
No such file or directory
mysqli_error() expects parameter 1 to be mysqli
Could not connect:
尝试把 $dbuser 变成 $dbuser1
Warning: mysqli_connect(): (HY000/1045): Access denied for user ''@'localhost' (using password: YES) in /Library/WebServer/Documents/html/mysql/db.php on line 33 Warning: mysqli_error() expects parameter 1 to be mysqli, boolean given in /Library/WebServer/Documents/html/mysql/db.php on line 36 Could not connect:
提取出来错误类型
Access denied for user ''@'localhost' (using password: YES) Could not connect:
尝试把 $dbpass 变成 $dbpass1
Warning: mysqli_connect(): (HY000/1045): Access denied for user 'root'@'localhost' (using password: NO) in /Library/WebServer/Documents/html/mysql/db.php on line 33 Warning: mysqli_error() expects parameter 1 to be mysqli, boolean given in /Library/WebServer/Documents/html/mysql/db.php on line 36 Could not connect:
提取出 错误类型
Access denied for user 'root'@'localhost' (using password: NO)
接下来 我又尝试了吧 数据库用户名 和密码 都设置了空变量。
这里竟然连接成功了。。
进入到数据库才发现 默认安装的mysql。中
数据库mysql中的user表 中 有 空用户名 和 空密码的记录。也就是说 可以匿名登陆。
这里 建议 部署到正式服务器上时。把这么数据删除掉。