PHP MySql 安装与连接

330 阅读2分钟
  • 先进入 MAC MySql 安装,安装完成之后还我们需要来配置与 php 关联起来。

  • 运行 php 文件之后会发现连接 mysql 失败。

    <?php
      if (mysqli_connect('localhost', 'root', '123456')) {
    
        echo '连接数据库成功';
    
      } else {
    
        echo '连接数据库失败';
      }
    ?>
    
  • 这里我们需要启动数据库

    $ mysql -u root -p
    
  • 进入数据库之后 输入:

    $ status
    
    dengzemiaodeMacBook-Pro:~ dengzemiao$ mysql -u root -p
    Enter password: 
    Welcome to the MySQL monitor.  Commands end with ; or \g.
    Your MySQL connection id is 276
    Server version: 5.7.28 MySQL Community Server (GPL)
    
    Copyright (c) 2000, 2019, 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> status
    
  • status 会输出:

    mysql  Ver 14.14 Distrib 5.7.28, for macos10.14 (x86_64) using  EditLine wrapper
    
    Connection id:		276
    Current database:	
    Current user:		root@localhost
    SSL:			Not in use
    Current pager:		stdout
    Using outfile:		''
    Using delimiter:	;
    Server version:		5.7.28 MySQL Community Server (GPL)
    Protocol version:	10
    Connection:		Localhost via UNIX socket
    Server characterset:	latin1
    Db     characterset:	latin1
    Client characterset:	utf8
    Conn.  characterset:	utf8
    UNIX socket:		/tmp/mysql.sock
    Uptime:			20 min 2 sec
    
    Threads: 1  Questions: 16  Slow queries: 0  Opens: 105  Flush tables: 1  Open tables: 98  Queries per second avg: 0.013
    --------------
    
    mysql> 
    
  • 我们需要用到的就是这一行:

    UNIX socket:		/tmp/mysql.sock
    
  • 在我们做出配置之前我们可以使用 phpinfo(); 查看一下 mysqli.default_socket 的路径是否为上面 UNIX socket 的值:

    <?php
      phpinfo();
    ?>
    

  • 查看之后发现 mysqli.default_socket 的值为 /var/mysql/mysql.sock

  • 所以我们需要修改这个路径为我们当前的 mysql 的路径

  • 我们找到 /etc 文件夹,打开 php.ini 文件,按住 Command+F 查找pdo_mysql.default_socketmysql.default_socketmysqli.default_socket 这三个值,改成上文中的 UNIX socket 的值,修改之后保存覆盖之前的文件

  • 我这边只在 php.ini 文件里面找到 pdo_mysql.default_socketmysqli.default_socket

    ; Default socket name for local MySQL connects.  If empty, uses the built-in
    ; MySQL defaults.
    ; http://php.net/pdo_mysql.default-socket
    pdo_mysql.default_socket = /tmp/mysql.sock
    
    ; Default socket name for local MySQL connects.  If empty, uses the built-in
    ; MySQL defaults.
    ; http://php.net/mysqli.default-socket
    mysqli.default_socket = /tmp/mysql.sock
    
  • 注意:php.ini 文件里面有这行支持 mysql 的配置,但是在 mac 里面不需要打开,mac 对应的都是 .so 后缀的文件, Windows 对应的才是 .dll 的文件,所以它是 Windows 的文件,打不打开跟 Mac 没关系。

    ;extension=php_mysqli.dll
    
  • 修改之后我们可以再次运行 phpinfo(),查看更换结果,这次就是显示当前 mysql 路径;

  • 将上面两个值后面路径添加之后,我们保存文件,重启 Apache,然后再次运行连接代码:

  • 到此为止,我们 php 数据库就连接成功了!!!