我正在尝试导出MySQL表,但我收到--secure-file-priv

时间:2017-01-24 15:37:28

标签: mysql database command-line terminal

我知道还有很多其他类似的问题,但我几乎已经查看了所有其他帖子,所有其他建议都没有用。

我目前正在使用macOS Sierra版本10.12.2

MySQL版本5.7.17

SELECT @@ GLOBAL.secure_file_priv;和SHOW VARIABLES一样" secure_file_priv&#34 ;;将secure_file_priv =显示为NULL。

我的系统上没有my.cnf文件(查找:my.cnf:没有这样的文件或目录)

我看过很多帖子提到改变了secure_file_priv的值,但我找不到它。

我在这里发表了以下帖子:

Solution 1

Solution 2

Solution 3

我希望这个回答与我的情况有关:

Solution 4

Solution 5

在一天结束时,看起来更改secure_file_priv是开始的地方,我找不到它。

我确信上面的OUTFILE位置可能不正确,但那是因为我不知道我在哪里有文件访问权限,因为我不知道如何更改/定位secure_file_priv。

1 个答案:

答案 0 :(得分:1)

所以我决定不担心命令行并创建一个.php文件,将MySQL数据库直接导出到Excel中。

解决方案的灵感源于以下内容:(显示这个家伙有点爱!)

作者:Shahroze Nawaz

日期:2016年11月8日

标题:如何使用PHP和MySQL导入和导出CSV文件

网址:https://www.cloudways.com/blog/import-export-csv-using-php-and-mysql/

这是主要的index.php

<pre>

    <!DOCTYPE html>
    <html lang="en">

    <head>
        <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css" crossorigin="anonymous">
        <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap-theme.min.css" crossorigin="anonymous">
        <script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js" crossorigin="anonymous"></script>
    </head>

    <body>
        <div id="wrap">
            <div class="container">
                <div class="row">

        <!--Database Table Display-->
                    <?php 
                        include 'database_table.php';
                    ?> 
        <!--End Import Form Button-->

        <!--Export Form Button-->
                    <form class="form-horizontal" action="export.php" method="POST" name="upload_excel"   
                          enctype="multipart/form-data">
                        <div class="form-group">
                            <div class="col-md-4 col-md-offset-4">
                                <input type="submit" name="Export" class="btn btn-success" value="Export to Excel"/>
                            </div>
                        </div>                    
                    </form> 
        <!--End Export Form Button-->

                </div>
            </div>
        </div>
    </body>

    </html>

</pre>

这是表单操作的export.php:

<pre>
      $dbhost = "******";
      $dbuser = "******";
      $dbpass = "******";
      $dbname = "******";
      $connection = mysqli_connect($dbhost, $dbuser, $dbpass, $dbname); 

      $selection = "SELECT * <table name>";
      $result = mysqli_query($connection, $selection);

      if(isset($_POST["Export"])) {
            header('Content-Type: text/csv; charset=utf-8');  
            header('Content-Disposition: attachment; filename = leads.csv');

            $output = fopen("php://output", "w"); 
            fputcsv($output, array('ID', 'First Name', 'Last Name', 'Email', 'Phone', 'State', 'Specialty', 'Sourcecode', 'Date'));  

            while($row = mysqli_fetch_assoc($result)) {  
                 fputcsv($output, $row);  
            }  
            fclose($output);  
       }
</pre>

这是打印在index.php文件中的数据库表,该文件显示了带有引导程序格式的MySQL数据库:

<pre>

    <?php
        $dbhost = "******";
        $dbuser = "******";
        $dbpass = "******";
        $dbname = "******";
        $connection = mysqli_connect($dbhost, $dbuser, $dbpass, $dbname); 

        $selection = "SELECT * <table name>";
        $result = mysqli_query($connection, $selection);

        if (mysqli_num_rows($result) > 0) {
              echo "<div class='table-responsive'>
                          <table id='myTable' class='table table-striped table-bordered'>
                                <thead>
                                      <tr>
                                            <th>ID</th>
                                            <th>First Name</th>
                                            <th>Last Name</th>
                                            <th>Email</th>
                                            <th>Phone</th>
                                            <th>State</th>
                                            <th>Specialty</th>
                                            <th>Sourcecode</th>
                                            <th>Time</th>
                                      </tr>
                                </thead>

                                <tbody>";
                                while($row = mysqli_fetch_assoc($result)) {
                                      echo "<tr>
                                            <td>" . $row['id']."</td>
                                            <td>" . $row['first_name']."</td>
                                            <td>" . $row['last_name']."</td>
                                            <td>" . $row['email']."</td>
                                            <td>" . $row['phone']."</td>
                                            <td>" . $row['state']."</td>
                                            <td>" . $row['specialty']."</td>
                                            <td>" . $row['source_code']."</td>
                                            <td>" . $row['date_submitted']."</td>
                                      </tr>";        
                          }

                                echo "</tbody>
                          </table>
                    </div>";

        } else {
              echo "You have no records...";
        }
    ?>

</pre>