root/dev/install/install_step3.php

Revision 473, 4.5 KB (checked in by kovell, 11 years ago)

Add transactions to installation to speed up InnoDB. Transaction log is written after each transaction instead of each insert. Warnings are reduced to help installation with overly strict error reporting.

Line 
1<?php
2if(!$installrunning) {header('Location: index.php');die();}
3$stoppage = true;
4
5if (!empty($_REQUEST['submit']))
6{
7    $_SESSION['sql']['host'] = $_POST['host'];
8    $_SESSION['sql']['user'] = $_POST['user'];
9    $_SESSION['sql']['pass'] = $_POST['dbpass'];
10    $_SESSION['sql']['db'] = $_POST['db'];
11    $_SESSION['sql']['engine'] = $_POST['engine'];
12}
13
14if (empty($_SESSION['sql']['host']))
15{
16    $host = 'localhost';
17}
18else $host = $_SESSION['sql']['host'];
19if (file_exists('../config.php'))
20{
21    echo '<div class="block-header2">Found old config</div>';
22    echo 'We will just reuse the data and create a new one.<br/>';
23    include_once('../config.php');
24    $_SESSION['sql'] = array();
25    $_SESSION['sql']['host'] = DB_HOST;
26    $_SESSION['sql']['user'] = DB_USER;
27    $_SESSION['sql']['pass'] = DB_PASS;
28    $_SESSION['sql']['db'] = DB_NAME;
29        $_SESSION['sql']['engine'] = '';
30}
31else
32{
33        if(!isset($_SESSION['sql']['db']))
34        {
35                $_SESSION['sql'] = array();
36                $_SESSION['sql']['host'] = '';
37                $_SESSION['sql']['user'] = '';
38                $_SESSION['sql']['pass'] = '';
39                $_SESSION['sql']['db'] = '';
40                $_SESSION['sql']['engine'] = '';
41        }
42?>
43<form id="options" name="options" method="post" action="?step=3">
44<input type="hidden" name="step" value="3">
45<div class="block-header2">MySQL Database</div>
46<table class="kb-subtable">
47<tr><td width="120"><b>MySQL Host:</b></td><td><input type=text name=host id=host size=20 maxlength=80 value="<?php echo $host; ?>"></td></tr>
48<tr><td width="120"><b>User:</b></td><td><input type=text name=user id=user size=20 maxlength=80 value="<?php echo $_SESSION['sql']['user']; ?>"></td></tr>
49<tr><td width="120"><b>Password:</b></td><td><input type=password name=dbpass id=pass size=20 maxlength=80 value="<?php echo $_SESSION['sql']['pass']; ?>"></td></tr>
50<tr><td width="120"><b>Database:</b></td><td><input type=text name=db id=db size=20 maxlength=80 value="<?php echo $_SESSION['sql']['db']; ?>"></td></tr>
51<tr><td width="120"><b>Engine:</b></td><td><input type=radio name=engine id=engine value="InnoDB"  <?php if ($_SESSION['sql']['engine'] != "MyISAM") echo "CHECKED"; ?>> InnoDB <input <?php if ($_SESSION['sql']['engine'] == "MyISAM") echo "CHECKED"; ?> type=radio name=engine id=engine value="MyISAM">MyISAM</tr>
52<tr><td width="120"></td><td><input type=submit name=submit value="Test"></td></tr>
53</table>
54<?php
55}
56
57if ($_SESSION['sql']['db'])
58{
59    echo '<div class="block-header2">Testing Settings</div>';
60    echo 'Got the data you supplied, trying to connect to that sql server now...<br/>';
61    $db = mysql_pconnect($_SESSION['sql']['host'], $_SESSION['sql']['user'], $_SESSION['sql']['pass']);
62    if (is_resource($db))
63    {
64        echo 'Connected to MySQl';
65        $result = mysql_query('SELECT VERSION() AS version');
66        $result = mysql_fetch_assoc($result);
67        if (!$result)
68        {
69            echo '<br/>Something went wrong:<br/>';
70            echo mysql_error();
71        }
72        else
73        {
74            echo ' running Version '.$result['version'].'.<br/>';
75            if (mysql_select_db($_SESSION['sql']['db']))
76            {
77                echo 'Successfully selected database "'.$_SESSION['sql']['db'].'", everything seems fine to continue.<br/>';
78                $stoppage = false;
79
80                //InnoDB check
81                if ($stoppage == false && $_SESSION['sql']['engine'] == 'InnoDB'){
82                        echo "</br>Checking Database Engine InnoDB.. <br/>";
83                        $stoppage = true;
84                        $result = mysql_query('SHOW ENGINES;');
85                        while (($row = mysql_fetch_row($result)) &&  $stoppage == true){
86                                if ($row[0] == 'InnoDB'){
87                                        if ($row[1] == 'YES' || $row[1] == 'DEFAULT'){ // (YES / NO / DEFAULT)
88                                                $stoppage = false;
89                                        }
90                                }
91                        }
92                        if ($stoppage){
93                                echo 'Error: InnoDB is not supported on your MySQL Server.</br>';
94                        }else{
95                                echo 'InnoDB is supported on your MySQL Server.</br>';
96                        }
97                }
98
99
100            }
101            else
102            {
103                echo 'Could not select the database: '.mysql_error().'<br/>';
104            }
105        }
106    }
107    else
108    {
109        echo 'Could not connect to the server: '.mysql_error().'<br/>';
110    }
111}
112?>
113
114<?php if ($stoppage)
115{
116    return;
117}?>
118<p><a href="?step=<?php echo ($_SESSION['state']+1); ?>">Next Step</a></p>
Note: See TracBrowser for help on using the browser.