Error Buddy
Do you have an error message from your application? Then find the answer with Error Buddy. You can search over 40000 source code files and troubleshooting documents using our beta lucene/nutch search interface or if you prefer, search as normal using google. With LXR technology you can drill right down into the line of source code where it came from with full cross-referencing.
If after searching you didn't get your ideal answer, or you are still unclear what the error means, you can choose to post that question to the community forums following the link included in the search results.
[1.6]001 ______________________________________________________________________ 002 003 Top - Requirements - Introduction - Installation - Configuration 004 Transformations - FAQ - Developers - Credits - Translators 005 ______________________________________________________________________ 006 007 phpMyAdmin 2.6.1-pl3 Documentation 008 009 * SourceForge phpMyAdmin project page [ http://www.phpmyadmin.net/ ] 010 * Local documents: 011 + Version history: ChangeLog 012 + General notes: README 013 + License: LICENSE 014 * Documentation version: $Id: Documentation.html,v 2.103.2.5 2005/03/03 20:54:24 rabus Exp $ 015 016 Requirements 017 018 * PHP 019 + You need PHP 4.1.0 or newer (*) 020 + If you want to display inline thumbnails of JPEGs with the original 021 aspect ratio, you also need GD2 support in PHP 022 + Starting with phpMyAdmin 2.6.1, MIME-based transformations that use 023 an external program need PHP 4.3.0 or newer 024 * MySQL 3.23.32 or newer (details); 025 * Not really a requirement but a strong suggestion: if you are using th e "cookie" authentication method, having the mcrypt PHP extension on 026 your web server accelerates not only the login phase but every other 027 action that you do in phpMyAdmin. 028 * a web-browser (doh!). 029 030 Introduction 031 032 phpMyAdmin can manage a whole MySQL server (needs a super-user) as well a s a single database. To accomplish the latter you'll need a properly set up MySQL user who can read/write only the desired database. It's up to you to look up the appropriate part in the MySQL manual. 033 Currently phpMyAdmin can: 034 * create and drop databases 035 * create, copy, drop, rename and alter tables 036 * do table maintenance 037 * delete, edit and add fields 038 * execute any SQL-statement, even batch-queries 039 * manage keys on fields 040 * load text files into tables 041 * create (*) and read dumps of tables 042 * export (*) data to CSV, XML and Latex formats 043 * administer multiple servers 044 * manage MySQL users and privileges 045 * check referential integrity in MyISAM tables 046 * using Query-by-example (QBE), create complex queries automatically co nnecting required tables 047 * create PDF graphics of your Database layout 048 * search globally in a database or a subset of it 049 * transform stored data into any format using a set of predefined funct ions, like displaying BLOB-data as image or download-link or ... 050 * support InnoDB tables and foreign keys (see FAQ 3.6) 051 * support mysqli, the improved MySQL extension (see FAQ 1.17) 052 * communicate in 47 different languages 053 054 (*) phpMyAdmin can compress (Zip, GZip -RFC 1952- or Bzip2 formats) dump s and CSV exports if you use PHP4 >= 4.0.4 with Zlib support (--with-zli b) and/or Bzip2 support (--with-bz2). 055 056 Installation 057 058 NOTE: phpMyAdmin does not apply any special security methods to the MySQL database server. It is still the system administrator's job to grant pe rmissions on the MySQL databases properly. phpMyAdmin's "Privileges" pag e can be used for this. 059 060 Warning for Mac users:if you are on a MacOS version before OS X, StuffIt unstuffs with Mac formats. 061 So you'll have to resave as in BBEdit to Unix style ALL phpMyAdmin script s before uploading them to your server, as PHP seems not to like Mac-sty le end of lines character ("\r"). 062 063 Quick Install 064 065 1. Untar or unzip the distribution (be sure to unzip the subdirectories) : tar -xzvf phpMyAdmin_x.x.x.tar.gz in your webserver's document root. 066 If you don't have direct access to your document root, put the files in 067 a directory on your local machine, and, after step 3, transfer the 068 directory on your web server using, for example, ftp. 069 2. Ensure that all the scripts have the appropriate owner (if PHP is run ning in safe mode, having some scripts with an owner different from the 070 owner of other scripts will be a problem). See FAQ 4.2 for suggestions. 071 3. Open the file config.inc.php in your favorite editor and change the v alues for host, user, password and authentication mode to fit your 072 environment. Here, "host" means the MySQL server. Also insert the 073 correct value for $cfg['PmaAbsoluteUri']. Have a look at Configuration 074 section for an explanation of all values. Please also read the 075 remaining of this Installation section for information about 076 authentication modes and the linked-tables infrastructure. 077 4. It is recommended that you protect the directory in which you install ed phpMyAdmin (unless it's on a closed intranet, or you wish to use 078 HTTP or cookie authentication), for example with HTTP-AUTH (in a 079 .htaccess file). See the multi-user sub-section of the FAQ for 080 additional information, especially FAQ 4.4. 081 5. Open the file <www.your-host.com>/<your-install-dir>/index.php in you r browser. phpMyAdmin should now display a welcome screen and your 082 databases, or a login dialog if using HTTP or cookie authentication 083 mode. 084 085 Linked-tables infrastructure 086 087 For a whole set of new features (bookmarks, comments, SQL-history, PDF-ge neration, field contents transformation, etc.) you need to create a set of special tables. Those tables can be located in your own database, or in a central database for a multi-user installation (this database would then be accessed by the controluser, so no other user should have right s to it). 088 Please look at your scripts/ directory, where you should find a file call ed create_tables.sql. (If you are using a Windows server, pay special at tention to FAQ 1.23). 089 If your MySQL server's version is 4.1.2 or later, please use create_table s_mysql_4_1_2+.sql instead, for a new installation. 090 If you already had this infrastructure and upgraded to MySQL 4.1.2 or lat er, please use upgrade_tables_mysql_4_1_2+.sql. 091 You can use your phpMyAdmin to create the tables for you. Please be aware that you may need special (administrator) privileges to create the data base and tables, and that the script may need some tuning, depending on the database name. 092 After having imported the create_tables.sql file, you should specify the table names in your config.inc.php file. The directives used for that ca n be found in the Configuration section. You will also need to have a co ntroluser with the proper rights to those tables (see section Using auth entication modes below). 093 094 Upgrading from an older version 095 096 * You can safely copy your older config.inc.php over a new one, if you can live with default values for possible new parameters (you can check 097 release notes to see what new features were added). This compatibility 098 will stay for long time, current version supports importing config files 099 from 2.2 and maybe even older (nobody has tried that). 100 101 Using authentication modes 102 103 * HTTP and cookie authentication modes are recommended in a multi-user environment where you want to give users access to their own database 104 and don't want them to play around with others. 105 Nevertheless be aware that MS Internet Explorer seems to be really buggy 106 about cookies, at least till version 6. And PHP 4.1.1 is also a bit 107 buggy in this area! 108 Even in a single-user environment, you might prefer to use HTTP or 109 cookie mode so that your user/password pair are not in clear in the 110 configuration file. 111 * HTTP and cookie authentication modes are more secure: the MySQL login information does not need to be set in the phpMyAdmin configuration 112 file (except possibly for the controluser). 113 However, keep in mind that the password travels in plain text, unless 114 you are using the HTTPS protocol. 115 In cookie mode, the password is stored, encrypted with the blowfish 116 algorithm, in a temporary cookie. 117 * Note: starting with phpMyAdmin 2.6.1, configuring the controluser to enable HTTP and cookie authentication applies only to MySQL servers 118 older than 4.1.2. 119 For 'HTTP' and 'cookie' modes, phpMyAdmin needs a controluser that has 120 only the SELECT privilege on the mysql.user (all columns except 121 "Password"), mysql.db (all columns), mysql.host (all columns) and 122 mysql.tables_priv (all columns except "Grantor" & "Timestamp") tables. 123 You must specify the details for the controluser in the config.inc.php 124 file under the $cfg['Servers'][$i]['controluser']& 125 $cfg['Servers'][$i]['controlpass'] settings. 126 The following example assumes you want to use pma as the controluser and 127 pmapass as the controlpass, but this is only an example: use something 128 else in your file! 129 Of course you have to replace localhost by the webserver's host if it's 130 not the same as the MySQL server's one. 131 132 GRANT USAGE ON mysql.* TO 'pma'@'localhost' IDENTIFIED BY 'pmapass'; 133 GRANT SELECT ( 134 Host, User, Select_priv, Insert_priv, Update_priv, Delete_priv, 135 Create_priv, Drop_priv, Reload_priv, Shutdown_priv, Process_priv, 136 File_priv, Grant_priv, References_priv, Index_priv, Alter_priv, 137 Show_db_priv, Super_priv, Create_tmp_table_priv, Lock_tables_priv, 138 Execute_priv, Repl_slave_priv, Repl_client_priv 139 ) ON mysql.user TO 'pma'@'localhost'; 140 GRANT SELECT ON mysql.db TO 'pma'@'localhost'; 141 GRANT SELECT ON mysql.host TO 'pma'@'localhost'; 142 GRANT SELECT (Host, Db, User, Table_name, Table_priv, Column_priv) 143 ON mysql.tables_priv TO 'pma'@'localhost'; 144 145 If you are using an old MySQL version (below 4.0.2), please replace the 146 first GRANT SELECT query by this one: 147 148 GRANT SELECT ( 149 Host, User, Select_priv, Insert_priv, Update_priv, Delete_priv, 150 Create_priv, Drop_priv, Reload_priv, Shutdown_priv, Process_priv, 151 File_priv, Grant_priv, References_priv, Index_priv, Alter_priv 152 ) ON mysql.user TO 'pma'@'localhost'; 153 154 ... and if you want to use the many new relation and bookmark features: 155 156 GRANT SELECT, INSERT, UPDATE, DELETE ON <pma_db>.* TO 'pma'@'localhost'; 157 158 (this of course requires you to have a special DB for phpMyAdmin, the 159 contents will be explained later) 160 Of course, the above queries only work if your MySQL version supports 161 the GRANT command. This is the case since 3.22.11. 162 * Then each of the true users should be granted a set of privileges on a set of particular databases. Normally you shouldn't give global 163 privileges to an ordinary user, unless you understand the impact of 164 those privileges (for example, you are creating a superuser). 165 For example, to grant the user real_user with all privileges on the 166 database user_base: 167 GRANT ALL PRIVILEGES ON user_base.* TO 'real_user'@localhost 168 IDENTIFIED BY 'real_password'; 169 What the user may now do is controlled entirely by the MySQL user 170 management system. 171 With HTTP or cookie authentication mode, you don't need to fill the 172 user/password fields inside the $cfg['Servers'] array. 173 174 'http' authentication mode 175 176 * Was called 'advanced' in versions before 2.2.3. 177 * Introduced in 1.3.0, it uses Basic HTTP authentication method and all ows you to login as any valid MySQL user. 178 * Is supported with PHP running as an Apache module. For IIS (ISAPI) su pport using CGI PHP, see FAQ 1.32. 179 * See also FAQ 4.4 about not using the .htaccess mechanism along with ' http' authentication mode. 180 181 'cookie' authentication mode 182 183 * You can use this method as a replacement for the HTTP authentication (for example, if you're running IIS). 184 * Obviously, the user must enable cookies in the browser. 185 * With this mode, the user can truly logout of phpMyAdmin and login bac k with the same username. 186 * If you want to login to arbitrary server see $cfg['AllowArbitraryServ er'] directive. 187 * See also the requirements section for a way to improve the interface speed while using this mode. 188 189 'config' authentication mode 190 191 * This mode is the less secure one because it requires you to fill the $cfg['Servers'][$i]['user'] and $cfg['Servers'][$i]['password'] fields. 192 But you don't need to setup a "controluser" here: using the 193 $cfg['Servers'][$i]['only_db'] might be enough. 194 * In the ISP FAQ section, there is an entry explaining how to protect y our configuration file. 195 * For additional security in this mode, you may wish to consider the Ho st authentication $cfg['Servers'][$i]['AllowDeny']['order'] and 196 $cfg['Servers'][$i]['AllowDeny']['rules'] configuration directives. 197 198 Configuration 199 200 Warning for Mac users: PHP seems not to like Mac end of lines character ( "\r"). So ensure you choose the option that allows to use the *nix end o f line character ("\n") in your text editor before registering a script you have modified. 201 202 Configuration note: Almost all configurable data is placed in config.inc. php. The parameters which relate to design (like colors) are placed in t hemes/themename/layout.inc.php. You might also want to modify config.foo ter.inc.php and config.header.inc.php files to add your site specific co de to be included on start and end of each page. 203 204 $cfg['PmaAbsoluteUri'] string 205 Sets here the complete URL (with full path) to your phpMyAdmin 206 version. E.g. 207 http://www.your_web.net/path_to_your_phpMyAdmin_directory/. 208 phpMyAdmin needs this setting, because of requirements of the HTTP 209 protocol, explained in RFC2616, section 14.30. 210 Don't forget the slash at the end of your URL. The URL must contain 211 characters that are valid for a URL, and on some servers, the path is 212 case-sensitive. 213 Starting with version 2.3.0, you can try to leave this parameter 214 empty, because the program tries to auto-detect its proper value. 215 Additional details are in the configuration file. 216 217 $cfg['PmaAbsoluteUri_DisableWarning'] boolean 218 By default, when you leave $cfg['PmaAbsoluteUri'] empty, and the 219 system detects your absolute URI automatically, we display a warning 220 to remind you. If you have tested the automatic detection, and it 221 works perfectly for your setup, then you can set this variable to 222 squelch the warning. 223 224 $cfg['PmaNoRelation_DisableWarning'] boolean 225 Starting with version 2.3.0 phpMyAdmin offers a lot of features to 226 work with master / foreign - tables (see 227 $cfg['Servers'][$i]['pmadb']). 228 If you tried to set this up and it does not work for you, have a look 229 on the "Structure" page of one database where you would like to use 230 it. You will find a link that will analyze why those features have 231 been disabled. 232 If you do not want to use those features set this variable to TRUE to 233 stop this message from appearing. 234 235 $cfg['blowfish_secret'] string 236 Starting with version 2.5.2, the 'cookie' auth_type uses blowfish 237 algorithm to encrypt the password. 238 If you are using the 'cookie' auth_type, enter here a random 239 passphrase of your choice. It will be used internally by the blowfish 240 algorithm: you won't be prompted for this passphrase. The maximum 241 number of characters for this parameter seems to be 46. 242 243 $cfg['Servers'] array 244 Since version 1.4.2, phpMyAdmin supports the administration of 245 multiple MySQL servers. Therefore, a $cfg['Servers']-array has been 246 added which contains the login information for the different servers. 247 The first $cfg['Servers'][$i]['host'] contains the hostname of the 248 first server, the second $cfg['Servers'][$i]['host'] the hostname of 249 the second server, etc. If you have only one server to administer, 250 simply leave free the hostname of the other $cfg['Server']-entries. 251 252 $cfg['Servers'][$i]['host'] string 253 The hostname or IP address of your $i-th MySQL-server. E.g. 254 localhost. 255 256 $cfg['Servers'][$i]['port'] string 257 The port-number of your $i-th MySQL-server. Default is 3306 (leave 258 blank). If you use "localhost" as the hostname, MySQL ignores this 259 port number and connects with the socket, so if you want to connect 260 to a port different from the default port, use "127.0.0.1" or the 261 real hostname in $cfg['Servers'][$i]['host']. 262 263 $cfg['Servers'][$i]['socket'] string 264 The path to the socket to use. Leave blank for default. 265 To use the socket feature you must run PHP 3.0.10 or more. 266 267 $cfg['Servers'][$i]['connect_type'] string 268 What type connection to use with the MySQL server. Your options are 269 'socket' & 'tcp'. It defaults to 'tcp' as that is nearly guaranteed 270 to be available on all MySQL servers, while sockets are not supported 271 on some platforms. 272 To use the socket mode, your MySQL server must be on the same machine 273 as the Web server. 274 275 $cfg['Servers'][$i]['extension'] string 276 What php MySQL extension to use for the connection. Valid options 277 are: 278 mysql : The classic MySQL extension. This is the recommended and 279 default method at this time. 280 mysqli : The improved MySQL extension. This extension became 281 available with php 5.0.0 and is the recommended way to connect to a 282 server running MySQL 4.1.x. 283 Note: phpMyAdmin's MySQL 4.1 support is experimental! 284 285 $cfg['Servers'][$i]['compress'] boolean 286 Whether to use a compressed protocol for the MySQL server connection 287 or not (experimental). 288 This feature requires PHP >= 4.3.0. 289 290 $cfg['Servers'][$i]['controluser'] string 291 $cfg['Servers'][$i]['controlpass'] string 292 Note: starting with phpMyAdmin 2.6.1, configuring the controluser to 293 enable HTTP and cookie authentication applies only to MySQL servers 294 older than 4.1.2. 295 This special account is used for 2 distinct purposes: to make 296 possible all relational features (see $cfg['Servers'][$i]['pmadb']) 297 and, for a MySQL server older than 4.1.2, to enable a multi-user 298 installation (http or cookie authentication mode). 299 When using HTTP or cookie authentication modes (or 'config' 300 authentication mode since phpMyAdmin 2.2.1), you need to supply the 301 details of a MySQL account that has SELECT privilege on the 302 mysql.user (all columns except "Password"), mysql.db (all columns) & 303 mysql.tables_priv (all columns except "Grantor" & "Timestamp") 304 tables. This account is used to check what databases the user will 305 see at login. 306 Please see the install section on "Using authentication modes" for 307 more information. 308 Note that if you try login to phpMyAdmin with this "controluser", you 309 could get some errors, depending the exact privileges you gave to the 310 "controluser". phpMyAdmin does not support a direct login with the 311 "controluser". 312 In phpMyAdmin versions before 2.2.5, those were called 313 "stduser/stdpass". 314 315 $cfg['Servers'][$i]['auth_type'] string ['http'|'cookie'|'config'] 316 Whether config or cookie or http authentication should be used for 317 this server. 318 319 + 'config' authentication ($auth_type = 'config') is the plain old 320 way: username and password are stored in config.inc.php. 321 + 'cookie' authentication mode ($auth_type = 'cookie') as introduced 322 in 2.2.3 allows you to log in as any valid MySQL user with the help 323 of cookies. Log name and password are stored in cookies during the 324 session and password is deleted when it ends. This can also allow 325 you to login in arbitrary server if $cfg['AllowArbitraryServer'] 326 enabled. 327 + 'http' authentication (was called 'advanced' in older versions) 328 ($auth_type = 'http') as introduced in 1.3.0 allows you to log in 329 as any valid MySQL user via HTTP-Auth. 330 331 Please see the install section on "Using authentication modes" for 332 more information. 333 334 $cfg['Servers'][$i]['user'] string 335 $cfg['Servers'][$i]['password'] string 336 The user/password-pair which phpMyAdmin will use to connect to this 337 MySQL-server. This user/password pair is not needed when HTTP or 338 cookie authentication is used, and should be empty. 339 340 $cfg['Servers'][$i]['only_db'] string or array 341 If set to a (an array of) database name(s), only this (these) 342 database(s) will be shown to the user. Since phpMyAdmin 2.2.1, 343 this/these database(s) name(s) may contain MySQL wildcards characters 344 ("_" and "%"): if you want to use literal instances of these 345 characters, escape them (I.E. use 'my\_db' and not 'my_db'). 346 This setting is an efficient way to lower the server load since the 347 latter does not need to send MySQL requests to build the available 348 database list. But it does not replace the privileges rules of the 349 MySQL database server. If set, it just means only these databases 350 will be displayed but not that all other databases can't be used. 351 An example of using more that one database: 352 $cfg['Servers'][$i]['only_db'] = array('db1', 'db2'); 353 As of phpMyAdmin 2.5.5 the order inside the array is used for sorting 354 the databases in the left frame, so that you can individually arrange 355 your databases. 356 If you want to have certain databases at the top, but don't care 357 about the others, you do not need to specify all other databases. 358 Use: $cfg['Servers'][$i]['only_db'] = array('db3', 'db4', '*'); 359 instead to tell phpMyAdmin that it should display db3 and db4 on top, 360 and the rest in alphabetic order. 361 362 $cfg['Servers'][$i]['verbose'] string 363 Only useful when using phpMyAdmin with multiple server entries. If 364 set, this string will be displayed instead of the hostname in the 365 pull-down menu on the main page. This can be useful if you want to 366 show only certain databases on your system, for example. 367 368 $cfg['Servers'][$i]['pmadb'] string 369 The name of the database containing the linked-tables infrastructure. 370 See the Linked-tables infrastructure section in this document to see 371 the benefits of this infrastructure, and for a quick way of creating 372 this database and the needed tables. 373 If you are the only user of this phpMyAdmin installation, you can use 374 your current database to store those special tables; in this case, 375 just put your current database name in $cfg['Servers'][$i]['pmadb']. 376 For a multi-user installation, set this parameter to the name of your 377 central database containing the linked-tables infrastructure. 378 379 $cfg['Servers'][$i]['bookmarktable'] string 380 Since release 2.2.0 phpMyAdmin allows to bookmark queries. This can 381 be useful for queries you often run. 382 To allow the usage of this functionality: 383 384 + set up pmadb and the linked-tables infrastructure 385 + enter the table name in $cfg['Servers'][$i]['bookmarktable'] 386 387 $cfg['Servers'][$i]['relation'] string 388 Since release 2.2.4 you can describe, in a special 'relation' table, 389 which field is a key in another table (a foreign key). phpMyAdmin 390 currently uses this to 391 392 + make clickable, when you browse the master table, the data values 393 that point to the foreign table; 394 + display in an optional tool-tip the "display field" when browsing 395 the master table, if you move the mouse to a column containing a 396 foreign key (use also the 'table_info' table); 397 (see FAQ 6.7) 398 + in edit/insert mode, display a drop-down list of possible foreign 399 keys (key value and "display field" are shown) 400 (see FAQ 6.21) 401 + display links on the table properties page, to check referential 402 integrity (display missing foreign keys) for each described key; 403 + in query-by-example, create automatic joins (see FAQ 6.6) 404 + enable you to get a PDF schema of your database (also uses the 405 table_coords table). 406 407 The keys can be numeric or character. 408 To allow the usage of this functionality: 409 410 + set up pmadb and the linked-tables infrastructure 411 + put the relation table name in $cfg['Servers'][$i]['relation'] 412 + now as normal user open phpMyAdmin and for each one of your tables 413 where you want to use this feature, click "Structure/Relation 414 view/" and choose foreign fields. 415 416 Please note that in the current version, master_db must be the same 417 as foreign_db. Those fields have been put in future development of 418 the cross-db relations. 419 420 $cfg['Servers'][$i]['table_info'] string 421 Since release 2.3.0 you can describe, in a special 'table_info' 422 table, which field is to be displayed as a tool-tip when moving the 423 cursor over the corresponding key. 424 This configuration variable will hold the name of this special table. 425 To allow the usage of this functionality: 426 427 + set up pmadb and the linked-tables infrastructure 428 + put the table name in $cfg['Servers'][$i]['table_info'] 429 + then for each table where you want to use this feature, click 430 "Structure/Relation view/Choose field to display" to choose the 431 field. 432 433 Usage tip: Display field. 434 435 $cfg['Servers'][$i]['table_coords'] string 436 $cfg['Servers'][$i]['pdf_pages'] string 437 Since release 2.3.0 you can have phpMyAdmin create PDF pages showing 438 the relations between your tables. To do this it needs two tables 439 "pdf_pages" (storing information about the available PDF pages) and 440 "table_coords" (storing coordinates where each table will be placed 441 on a PDF schema output). 442 You must be using the "relation" feature. 443 To allow the usage of this functionality: 444 445 + set up pmadb and the linked-tables infrastructure 446 + put the correct table names in $cfg['Servers'][$i]['table_coords'] 447 and $cfg['Servers'][$i]['pdf_pages'] 448 449 Usage tips: PDF output. 450 451 $cfg['Servers'][$i]['column_info'] string 452 Since release 2.3.0 you can store comments to describe each column 453 for each table. These will then be shown on the "printview". 454 Starting with release 2.5.0, comments are consequently used on the 455 table property pages and table browse view, showing up as tool-tips 456 above the column name (properties page) or embedded within the header 457 of table in browse view. They can also be shown in a table dump. 458 Please see the relevant configuration directives later on. 459 Also new in release 2.5.0 is a MIME-transformation system which is 460 also based on the following table structure. See Transformations for 461 further information. To use the MIME-transformation system, your 462 column_info table has to have the three new fields 'mimetype', 463 'transformation', 'transformation_options'. 464 To allow the usage of this functionality: 465 466 + set up pmadb and the linked-tables infrastructure 467 + put the table name in $cfg['Servers'][$i]['column_info'] 468 + to update your PRE-2.5.0 Column_comments Table use this: 469 ALTER TABLE `pma_column_comments` 470 ADD `mimetype` VARCHAR( 255 ) NOT NULL , 471 ADD `transformation` VARCHAR( 255 ) NOT NULL , 472 ADD `transformation_options` VARCHAR( 255 ) NOT NULL ; 473 and remember that the Variable in config.inc.php has been renamed 474 from 475 $cfg['Servers'][$i]['column_comments'] to 476 $cfg['Servers'][$i]['column_info'] 477 478 $cfg['Servers'][$i]['history'] string 479 Since release 2.5.0 you can store your SQL history, which means all 480 queries you entered manually into the phpMyAdmin interface. If you 481 don't want to use a table- based history, you can use the 482 JavaScript-based history. Using that, all your history items are 483 deleted when closing the window. 484 Using $cfg['QueryHistoryMax'] you can specify an amount of history 485 items you want to have on hold. On every login, this list gets cut to 486 the maximum amount. 487 The query history is only available if you use the JavaScript-based 488 query window, see $cfg['QueryFrame']. 489 To allow the usage of this functionality: 490 491 + set up pmadb and the linked-tables infrastructure 492 + put the table name in $cfg['Servers'][$i]['history'] 493 494 $cfg['Servers'][$i]['verbose_check'] boolean 495 Because release 2.5.0 introduced the new MIME-transformation support, 496 the column_info table got enhanced with three new fields. If the 497 above variable is set to TRUE (default) phpMyAdmin will check if you 498 have the latest table structure available. If not, it will emit a 499 warning to the superuser. 500 You can disable this checking behavior by setting the variable to 501 false, which should offer a performance increase. 502 Recommended to set to FALSE, when you are sure, your table structure 503 is up to date. 504 505 $cfg['Servers'][$i]['AllowRoot'] boolean 506 Whether to allow root access, This is just simplification of rules 507 below. 508 509 $cfg['Servers'][$i]['AllowDeny']['order'] string 510 If your rule order is empty, then IP authentication is disabled. 511 If your rule order is set to 'deny,allow' then the system applies all 512 deny rules followed by allow rules. Access is allowed by default. Any 513 client which does not match a Deny command or does match an Allow 514 command will be allowed access to the server. 515 If your rule order is set to 'allow,deny' then the system applies all 516 allow rules followed by deny rules. Access is denied by default. Any 517 client which does not match an Allow directive or does match a Deny 518 directive will be denied access to the server. 519 If your rule order is set to 'explicit', the authentication is 520 performed in a similar fashion to rule order 'deny,allow', with the 521 added restriction that your host/username combination must be listed 522 in the allow rules, and not listed in the deny rules. This is the 523 most secure means of using Allow/Deny rules, and was available in 524 Apache by specifying allow and deny rules without setting any order. 525 526 $cfg['Servers'][$i]['AllowDeny']['rules'] array of strings 527 The general format for the rules is as such: 528 <'allow' | 'deny'> <username> [from] <ipmask> 529 If you wish to match all users, it is possible to use a '%' as a 530 wildcard in the username field. 531 There are a few shortcuts you can use in the ipmask field as well: 532 'all' -> 0.0.0.0/0 533 'localhost' -> 127.0.0.1/8 534 Having an empty rule list is equivalent to either using 'allow % from 535 all' if your rule order is set to 'deny,allow' or 'deny % from all' 536 if your rule order is set to 'allow,deny' or 'explicit'. 537 For the IP matching system, the following work: 538 xxx.xxx.xxx.xxx (an exact IP address) 539 xxx.xxx.xxx.[yyy-zzz] (an IP address range) 540 xxx.xxx.xxx.xxx/nn (CIDR, Classless Inter-Domain Routing type IP 541 addresses) 542 But the following does not work: 543 xxx.xxx.xxx.xx[yyy-zzz] (partial IP address range) 544 545 $cfg['ServerDefault'] integer 546 If you have more than one server configured, you can set 547 $cfg['ServerDefault'] to any one of them to autoconnect to that 548 server when phpMyAdmin is started, or set it to 0 to be given a list 549 of servers without logging in. 550 If you have only one server configured, $cfg['ServerDefault'] MUST be 551 set to that server. 552 553 $cfg['OBGzip'] string/boolean 554 Defines whether to use GZip output buffering for increased speed in 555 HTTP transfers. 556 Set to true/false for enabling/disabling. When set to 'auto' 557 (string), phpMyAdmin tries to enable output buffering and will 558 automatically disable it, if your browser has some problems with 559 buffering. IE6 with a certain patch is known to cause data corruption 560 having enabled buffering. 561 562 $cfg['PersistentConnections'] boolean 563 Whether persistent connections should be used or not (mysql_connect 564 or mysql_pconnect). 565 566 $cfg['ExecTimeLimit'] integer [number of seconds] 567 Set the number of seconds a script is allowed to run. If seconds is 568 set to zero, no time limit is imposed. 569 This setting is used while importing/exporting dump files but has no 570 effect when PHP is running in safe mode. 571 572 $cfg['SkipLockedTables'] boolean 573 Mark used tables and make it possible to show databases with locked 574 tables (since 3.23.30). 575 576 $cfg['ShowSQL'] boolean 577 Defines whether SQL-queries generated by phpMyAdmin should be 578 displayed or not. 579 580 $cfg['AllowUserDropDatabase'] boolean 581 Defines whether normal users (non-administrator) are allowed to 582 delete their own database or not. If set as FALSE, the link "Drop 583 Database" will not be shown, and even a "DROP DATABASE mydatabase" 584 will be rejected. Quite practical for ISP's with many customers. 585 586 $cfg['Confirm'] boolean 587 Whether a warning ("Are your really sure...") should be displayed 588 when you're about to lose data. 589 590 $cfg['LoginCookieRecall'] boolean 591 Define whether the previous login should be recalled or not in cookie 592 authentication mode. 593 594 $cfg['UseDbSearch'] boolean 595 Define whether the "search string inside database" is enabled or not. 596 597 $cfg['IgnoreMultiSubmitErrors'] boolean 598 Define whether phpMyAdmin will continue executing a multi-query 599 statement if one of the queries fails. Default is to abort execution. 600 601 $cfg['VerboseMultiSubmit'] boolean 602 Define whether phpMyAdmin will output the results of each query of a 603 multi-query statement embedded into the SQL output as inline 604 comments. Defaults to TRUE. 605 606 $cfg['AllowArbitraryServer'] boolean 607 If enabled allows you to login to arbitrary server using cookie auth. 608 NOTE: Please use this carefully, as this may allow to access MySQL 609 servers behind firewall where your http server is placed. 610 611 $cfg['LeftFrameLight'] boolean 612 Defines whether to use select-based menu and display only the current 613 tables in the left frame (smaller page). Only in Non-Lightmode you 614 can use the feature to display nested folders using 615 $cfg['LeftFrameTableSeparator'] 616 617 $cfg['LeftFrameTableSeparator'] string 618 Defines a string to be used to nest table spaces. Defaults to '__'. 619 This means if you have tables like 'first__second__third' this will 620 be shown as a three-level hierarchie like: first > second > third. If 621 set to FALSE or empty, the feature is disabled. NOTE: You shall not 622 use this Separator in a table name at the beginning or end of a table 623 name, or multiple times after another without any other characters in 624 between. 625 626 $cfg['LeftFrameTableLevel'] string 627 Defines how many sublevels should be displayed when splitting up 628 tables by the above Separator. 629 630 $cfg['ShowTooltip'] boolean 631 Defines whether to display table comment as tool-tip in left frame or 632 not. 633 634 $cfg['ShowTooltipAliasDB'] boolean 635 If tool-tips are enabled and a DB comment is set, this will flip the 636 comment and the real name. That means, if you have a table called 637 'user0001' and add the comment 'MyName' on it, you will see the name 638 'MyName' used consequently in the left frame and the tool-tip shows 639 the real name of the DB. 640 641 $cfg['ShowTooltipAliasTB'] boolean/string 642 Same as $cfg['ShowTooltipAliasDB'], except this works for table 643 names. When setting this to 'nested', the Alias of the Tablename is 644 only used to split/nest the tables according to the 645 $cfg['LeftFrameTableSeparator'] directive. So only the folder is 646 called like the Alias, the tablename itself stays the real tablename. 647 648 $cfg['LeftDisplayLogo'] boolean 649 Defines whether to display the phpMyAdmin logo at the top of the left 650 frame or not. Defaults to TRUE. 651 652 $cfg['LeftDisplayServers'] boolean 653 Defines whether to display a server choice at the top of the left 654 frame or not. Defaults to FALSE. 655 656 $cfg['DisplayServersList'] boolean 657 Defines whether to display this server choice as links instead of in 658 a drop-down. Defaults to FALSE (drop-down). 659 660 $cfg['ShowStats'] boolean 661 Defines whether to display space usage and statistics about databases 662 and tables or not. 663 Note that statistics requires at least MySQL 3.23.3 and that, at this 664 date, MySQL doesn't return such information for Berkeley DB tables. 665 666 $cfg['ShowMysqlInfo'] boolean 667 $cfg['ShowMysqlVars'] boolean 668 $cfg['ShowPhpInfo'] boolean 669 $cfg['ShowChgPassword'] boolean 670 Defines whether to display the "MySQL runtime information", "MySQL 671 system variables", "PHP information" and "Change password " links or 672 not for simple users at the starting main (right) frame. This setting 673 does not check MySQL commands entered directly. 674 Please note that to block the usage of phpinfo() in scripts, you have 675 to put this in your php.ini: 676 disable_functions = phpinfo() 677 Also note that enabling the "Change password " link has no effect 678 with "config" authentication mode: because of the hard coded password 679 value in the configuration file, end users can't be allowed to change 680 their passwords. 681 682 $cfg['SuggestDBName'] boolean 683 Defines whether to suggest a database name on the "Create Database" 684 form or to keep the textfield empty. 685 686 $cfg['ShowBlob'] boolean 687 Defines whether BLOB fields are shown when browsing a table's content 688 or not. 689 690 $cfg['NavigationBarIconic'] boolean 691 Defines whether navigation bar buttons contain text or symbols only. 692 693 $cfg['ShowAll'] boolean 694 Defines whether an user should be displayed a "show all (records)" 695 button in browse mode or not. 696 697 $cfg['MaxRows'] integer 698 Number of rows displayed when browsing a result set. If the result 699 set contains more rows, Previous/Next links will be shown. 700 701 $cfg['Order'] string [DESC|ASC|SMART] 702 Defines whether fields are displayed in ascending (ASC) order, in 703 descending (DESC) order or in a "smart" (SMART) order - I.E. 704 descending order for fields of type TIME, DATE, DATETIME & TIMESTAMP, 705 ascending order else- by default. 706 707 $cfg['ProtectBinary'] boolean or string 708 Defines whether BLOB or BINARY fields are protected from edition when 709 browsing a table's content or not. Valid values are: 710 - FALSE to allow edition of all fields; 711 - blob to allow edition of all fields except BLOBS; 712 - all to disallow edition of all BINARY or BLOB fields. 713 714 $cfg['ShowFunctionFields'] boolean 715 Defines whether MySQL functions fields should be displayed or not in 716 edit/insert mode. 717 718 $cfg['CharEditing'] string 719 Defines which type of editing controls should be used for CHAR and 720 VARCHAR fields. Possible values are: 721 722 + input - this allows to limit size of text to size of field in 723 MySQL, but has problems with newlines in fields 724 + textarea - no problems with newlines in fields, but also no length 725 limitations 726 727 Default is old behavior so input. 728 729 $cfg['ZipDump'] boolean 730 $cfg['GZipDump'] boolean 731 $cfg['BZipDump'] boolean 732 Defines whether to allow the use of zip/GZip/BZip2 compression when 733 creating a dump file or not. 734 735 $cfg['CompressOnFly'] boolean 736 Defines whether to allow on the fly compression for GZip/BZip2 737 compressed exports. This doesn't affect smaller dumps and allows to 738 create larger dumps, that won't fit otherwise in memory due to php 739 memory limit. Produced files contain more GZip/BZip2 headers, but all 740 normal programs handle this correctly. 741 742 $cfg['LightTabs'] string 743 If set to True, do use less graphically intense tabs on the top of 744 the mainframe. 745 746 $cfg['PropertiesIconic'] string 747 If set to True, will display icons instead of text for db and table 748 properties links (like 'Browse', 'Select', 'Insert', ...). 749 Can be set to 'both' if you want icons AND text. 750 When set to False, will only show text. 751 752 $cfg['PropertiesNumColumns'] integer 753 How many columns will be utilized to display the tables on the 754 database property view? Default is 1 column. When setting this to a 755 value larger than 1, the type of the database will be omitted for 756 more display space. 757 758 $cfg['DefaultTabServer'] string 759 Defines the tab displayed by default on server view. Possible values: 760 "main.php" (recommended for multi-user setups), 761 "server_databases.php","server_status.php","server_variables.php", 762 "server_privileges.php" or "server_processlist.php". 763 764 $cfg['DefaultTabDatabase'] string 765 Defines the tab displayed by default on database view. Possible 766 values: "db_details_structure.php", "db_details.php" or 767 "db_search.php". 768 769 $cfg['DefaultTabTable'] string 770 Defines the tab displayed by default on table view. Possible values: 771 "tbl_properties_structure.php", "tbl_properties.php", 772 "tbl_select.php" or "tbl_change.php". 773 774 $cfg['MySQLManualBase'] string 775 If set to an URL which points to the MySQL documentation (type 776 depends on $cfg['MySQLManualType']), appropriate help links are 777 generated. 778 See MySQL Documentation page for more information about MySQL manuals 779 and their types. 780 781 $cfg['MySQLManualType'] string 782 Type of MySQL documentation: 783 784 + old - old style used in phpMyAdmin 2.3.0 and earlier 785 + searchable - "Searchable, with user comments" 786 + chapters - "HTML, one page per chapter" 787 + big - "HTML, all on one page" 788 + none - do not show documentation links 789 790 $cfg['DefaultLang'] string 791 Defines the default language to use, if not browser-defined or 792 user-defined. 793 See the select_lang.inc.php script to know the valid values for this 794 setting. 795 796 $cfg['Lang'] string 797 Force: always use this language (must be defined in the 798 select_lang.inc.php script). 799 800 $cfg['DefaultCharset'] string 801 Default character set to use for recoding of MySQL queries. This must 802 be enabled and it's described by $cfg['AllowAnywhereRecoding'] 803 option. 804 You can give here any character set which is in 805 $cfg['AvailableCharsets'] array and this is just default choice, user 806 can select any of them. 807 808 $cfg['AllowAnywhereRecoding'] boolean 809 Allow character set recoding of MySQL queries. You need recode or 810 iconv support (compiled in or module) in PHP to allow MySQL queries 811 recoding and used language file must have it enabled (by default only 812 these which are in Unicode, just to avoid losing some characters). 813 814 $cfg['RecodingEngine'] string 815 You can select here which functions will be used for character set 816 conversion. Possible values are: 817 818 + auto - automatically use available one (first is tested iconv, then 819 recode) 820 + iconv - use iconv or libiconv functions 821 + recode - use recode_string function 822 823 Default is auto. 824 825 $cfg['IconvExtraParams'] string 826 Specify some parameters for iconv used in charset conversion. See 827 iconv documentation for details. 828 829 $cfg['AvailableCharsets'] array 830 Available character sets for MySQL conversion. You can add your own 831 (any of supported by recode/iconv) or remove these which you don't 832 use. Character sets will be shown in same order as here listed, so if 833 you frequently use some of these move them to the top. 834 835 $cfg['GD2Available'] string 836 Specifies whether GD >= 2 is available. If yes it can be used for 837 MIME transformations. 838 Possible values are: 839 840 + auto - automatically detect, this is a bit expensive operation for 841 php < 4.3.0 so it is preferred to change this according to your 842 server real possibilities 843 + yes - GD 2 functions can be used 844 + no - GD 2 function cannot be used 845 846 Default is auto. 847 848 $cfg['LeftWidth'] integer 849 Left frame width in pixel. See themes/themename/layout.inc.php. 850 851 $cfg['LeftBgColor'] string [HTML color] 852 $cfg['RightBgColor'] string [HTML color] 853 The background colors (HTML) used for both the frames. See 854 themes/themename/layout.inc.php. 855 856 $cfg['RightBgImage'] string 857 The URI of the background image used for the right frame. It must be 858 an absolute URI. See themes/themename/layout.inc.php. 859 860 $cfg['LeftPointerColor'] string [HTML color] 861 The color (HTML) used for the pointer in the left frame (does not 862 work with Netscape 4). See themes/themename/layout.inc.php. 863 864 $cfg['LeftPointerEnable'] boolean 865 A value of TRUE activates the left pointer (when LeftFrameLight is 866 FALSE). 867 868 $cfg['Border'] integer 869 The size of a table's border. See themes/themename/layout.inc.php. 870 871 $cfg['ThBgcolor'] string [HTML color] 872 The color (HTML) used for table headers. See 873 themes/themename/layout.inc.php. 874 875 $cfg['BgcolorOne'] string [HTML color] 876 The color (HTML) #1 for table rows. See 877 themes/themename/layout.inc.php. 878 879 $cfg['BgcolorTwo'] string [HTML color] 880 The color (HTML) #2 for table rows. See 881 themes/themename/layout.inc.php. 882 883 $cfg['BrowsePointerColor'] string [HTML color] 884 $cfg['BrowseMarkerColor'] string [HTML color] 885 The colors (HTML) uses for the pointer and the marker in browse mode 886 (does not work with Netscape 4). 887 The former feature highlights the row over which your mouse is 888 passing and the latter lets you visually mark/unmark rows by clicking 889 on them. 890 See themes/themename/layout.inc.php. 891 892 $cfg['BrowsePointerEnable'] boolean 893 Whether to activate the browse pointer or not. 894 895 $cfg['BrowseMarkerEnable'] boolean 896 Whether to activate the browse marker or not. 897 898 $cfg['TextareaCols'] integer 899 $cfg['TextareaRows'] integer 900 $cfg['CharTextareaCols'] integer 901 $cfg['CharTextareaRows'] integer 902 Number of columns and rows for the textareas. 903 This value will be emphasized (*2) for SQL query textareas and 904 (*1.25) for SQL textareas inside the query window. 905 The Char* values are used for CHAR and VARCHAR editing (if configured 906 via $cfg['CharEditing']). 907 908 $cfg['LongtextDoubleTextarea'] boolean 909 Defines whether textarea for LONGTEXT fields should have double size. 910 911 $cfg['TextareaAutoSelect'] boolean 912 Defines if the whole textarea of the query box will be selected on 913 click. 914 915 $cfg['CtrlArrowsMoving'] boolean 916 Enable Ctrl+Arrows (Option+Arrows in Safari) moving between fields 917 when editing? 918 919 $cfg['LimitChars'] integer 920 Maximal number of Chars showed in any non-numeric field on browse 921 view. Can be turned off by a toggle button on the browse page. 922 923 $cfg['ModifyDeleteAtLeft'] boolean 924 $cfg['ModifyDeleteAtRight'] boolean 925 Defines the place where modify and delete links would be put when 926 tables contents are displayed (you may have them displayed both at 927 the left and at the right). "Left" and "right" are parsed as "top" 928 and "bottom" with vertical display mode. 929 930 $cfg['DefaultDisplay'] string 931 $cfg['HeaderFlipType'] string 932 There are 3 display modes: horizontal, horizontalflipped and 933 vertical. Define which one is displayed by default. The first mode 934 displays each row on a horizontal line, the second rotates the 935 headers by 90 degrees, so you can use descriptive headers even though 936 fields only contain small values and still print them out. The 937 vertical mode sorts each row on a vertical lineup. 938 The HeaderFlipType can be set to 'css' or 'faked'. When using 'css' 939 the rotation of the header for horizontalflipped is done via CSS. If 940 set to 'faked' PHP does the transformation for you, but of course 941 this does not look as good as CSS. 942 943 $cfg['DefaultPropDisplay'] string 944 When editing/creating new columns in a table all fields normally get 945 lined up one field a line. (default: 'horizontal'). If you set this 946 to 'vertical' you can have each field lined up vertically beneath 947 each other. You can save up a lot of place on the horizontal 948 direction and no longer have to scroll. 949 950 $cfg['ShowBrowseComments'] boolean 951 $cfg['ShowPropertyComments'] boolean 952 By setting the corresponding variable to TRUE you can enable the 953 display of column comments in Browse or Property display. In browse 954 mode, the comments are show inside the header. In property mode, 955 comments are displayed using a CSS-formatted dashed-line below the 956 name of the field. The comment is shown as a tool-tip for that field. 957 958 $cfg['UploadDir'] string 959 The name of the directory, where SQL files have been uploaded by 960 other means than phpMyAdmin (for example, ftp). Those files are 961 available under a drop-down box when you click the database name, 962 then the SQL tab. 963 Please note that the file names must have the suffix ".sql" (or 964 ".sql.bz2" or ".sql.gz" if support for compressed formats is 965 enabled). 966 This feature is useful when your file is too big to be uploaded via 967 HTTP, or when file uploads are disabled in PHP. 968 Please note that if PHP is running in safe mode, this directory must 969 be owned by the same user as the owner of the phpMyAdmin scripts. 970 971 $cfg['docSQLDir'] string 972 The name of the directory, where docSQL files can be uploaded for 973 import into phpMyAdmin. 974 Please note that if PHP is running in safe mode, this directory must 975 be owned by the same user as the owner of the phpMyAdmin scripts. 976 977 $cfg['SaveDir'] string 978 The name of the directory, where dumps can be saved. 979 Please note that the directory has to be writable for user running 980 webserver. 981 Please note that if PHP is running in safe mode, this directory must 982 be owned by the same user as the owner of the phpMyAdmin scripts. 983 984 $cfg['TempDir'] string 985 The name of the directory, where temporary files can be stored. 986 This is needed for native MS Excel export, see FAQ 6.23 987 988 $cfg['Export'] array 989 In this array are defined default parameters for export, names of 990 items are similar to texts seen on export page, so you can easily 991 identify what they mean. 992 993 $cfg['RepeatCells'] integer 994 Repeat the headers every X cells, or 0 to deactivate. 995 996 $cfg['QueryFrame'] boolean 997 $cfg['QueryFrameJS'] boolean 998 $cfg['QueryWindowWidth'] integer 999 $cfg['QueryWindowHeight'] integer 1000 $cfg['QueryHistoryDB'] boolean 1001 $cfg['QueryWindowDefTab'] string 1002 $cfg['QueryHistoryMax'] integer 1003 All those variables affect the query box feature. When 1004 $cfg['QueryFrame'] is set to true, a link or icon is displayed on the 1005 left panel. Clicking on it opens the query box, a direct interface to 1006 enter SQL queries. 1007 When $cfg['QueryFrameJS'] is set to true, clicking on that link opens 1008 the query box, a new custom sized browser window 1009 ($cfg['QueryWindowWidth'], $cfg['QueryWindowWidth'] - both integers 1010 for the size in pixels). Also, a click on [Edit] from the results 1011 page (in the "Showing Rows" section) opens the query box and puts the 1012 current query inside it. If set to false, clicking on the link only 1013 opens the SQL input in the main frame. 1014 The usage of the JavaScript query window is recommended if you have a 1015 JavaScript enabled browser. Basic functions are used to exchange 1016 quite a few variables, so most 4th generation browsers should be 1017 capable to use that feature. It currently is only tested with 1018 Internet Explorer 6 and Mozilla 1.x. 1019 If $cfg['QueryHistoryDB'] is set to TRUE, all your Queries are logged 1020 to a table, which has to be created by you (see 1021 $cfg['Servers'][$i]['history']). If set to FALSE, all your queries 1022 will be appended to the form, but only as long as your window is 1023 opened they remain saved. 1024 When using the JavaScript based query window, it will always get 1025 updated when you click on a new table/db to browse and will focus if 1026 you click on "Edit SQL" after using a query. You can suppress 1027 updating the query window by checking the box "Do not overwrite this 1028 query from outside the window" below the query textarea. Then you can 1029 browse tables/databases in the background without losing the contents 1030 of the textarea, so this is especially useful when composing a query 1031 with tables you first have to look in. The checkbox will get 1032 automatically checked whenever you change the contents of the 1033 textarea. Please uncheck the button whenever you definitely want the 1034 query window to get updated even though you have made alterations. 1035 If $cfg['QueryHistoryDB'] is set to TRUE you can specify the amount 1036 of saved history items using $cfg['QueryHistoryMax']. 1037 The query window also has a custom tabbed look to group the features. 1038 Using the variable $cfg['QueryWindowDefTab'] you can specify the 1039 default tab to be used when opening the query window. It can be set 1040 to either 'sql', 'files', 'history' or 'full'. 1041 1042 $cfg['BrowseMIME'] boolean 1043 Enable MIME-transformations. 1044 1045 $cfg['MaxExactCount'] integer 1046 Determines for how large tables phpMyAdmin should get exact row count 1047 by SELECT COUNT. If approximate row count is smaller than this value, 1048 SELECT COUNT will be used, otherwise only value returned by SHOW 1049 TABLE STATUS. This has currently an impact only on InnoDB tables. 1050 1051 $cfg['WYSIWYG-PDF'] boolean 1052 Utilizes a WYSIWYG editing control to easily place elements of a PDF 1053 page. By clicking on the button 'toggle scratchboard' on the page 1054 where you edit x/y coordinates of those elements you can activate a 1055 scratchboard where all your elements are placed. By clicking on an 1056 element, you can move them around in the pre-defined area and the x/y 1057 coordinates will get updated dynamically. Likewise, when entering a 1058 new position directly into the input field, the new position in the 1059 scratchboard changes after your cursor leaves the input field. 1060 You have to click on the 'OK'-button below the tables to save the new 1061 positions. If you want to place a new element, first add it to the 1062 table of elements and then you can drag the new element around. 1063 By changing the paper size and the orientation you can change the 1064 size of the scratchboard as well. You can do so by just changing the 1065 dropdown field below, and the scratchboard will resize automatically, 1066 without interfering with the current placement of the elements. 1067 If ever an element gets out of range you can either enlarge the paper 1068 size or click on the 'reset' button to place all elements below each 1069 other. 1070 NOTE: You have to use a recent browser like IE6 or Mozilla to get 1071 this control to work. The basic Drag&Drop script functionality was 1072 kindly borrowed from www.youngpup.net and is underlying so specific 1073 license. 1074 1075 $cfg['NaturalOrder'] boolean 1076 Sorts database and table names according to natural order (for 1077 example, t1, t2, t10). Currently implemented in the left panel (Light 1078 mode) and in Database view, for the table list. 1079 1080 $cfg['ShowHttpHostTitle'] boolean 1081 Shows the HTTP host name in window's title bar. 1082 1083 $cfg['SetHttpHostTitle'] string 1084 If $cfg['ShowHttpHostTitle'] is TRUE, it shows the real HTTP host 1085 name, unless an alternate name is set here. 1086 1087 $cfg['ErrorIconic'] boolean 1088 Uses icons for warnings, errors and informations. 1089 1090 $cfg['MainPageIconic'] boolean 1091 Uses icons on main page in lists, on right panel top menu and menu 1092 tabs. 1093 1094 $cfg['ReplaceHelpImg'] boolean 1095 Shows a help button instead of the "Documentation" message. 1096 1097 $cfg['ThemePath'] string 1098 If theme manager is active, use this as the path of the subdirectory 1099 containing all the themes. 1100 1101 $cfg['ThemeManager'] boolean 1102 Enables user-selectable themes. See FAQ 2.7. 1103 1104 $cfg['ThemeDefault'] string 1105 The default theme (a subdirectory under cfg['ThemePath']). 1106 1107 $cfg['DefaultQueryTable'] string 1108 $cfg['DefaultQueryDatabase'] string 1109 Default queries that will be displayed in query boxes when user 1110 didn't specify any. Use %d for database name, %t for table name and 1111 %f for a comma separated list of field names. Note that %t and %f are 1112 only applicable to $cfg['DefaultQueryTable']. 1113 1114 $cfg['SQP']['fmtType'] string [html|none] 1115 The main use of the new SQL Parser is to pretty-print SQL queries. By 1116 default we use HTML to format the query, but you can disable this by 1117 setting this variable to 'none'. 1118 1119 $cfg['SQP']['fmtInd'] float 1120 $cfg['SQP']['fmtIndUnit'] string [em|px|pt|ex] 1121 For the pretty-printing of SQL queries, under some cases the part of 1122 a query inside a bracket is indented. By changing 1123 $cfg['SQP']['fmtInd'] you can change the amount of this indent. 1124 Related in purpose is $cfg['SQP']['fmtIndUnit'] which specifies the 1125 units of the indent amount that you specified. This is used via 1126 stylesheets. 1127 1128 $cfg['SQP']['fmtColor'] array of string tuples 1129 This array is used to define the colours for each type of element of 1130 the pretty-printed SQL queries. The tuple format is 1131 class => [HTML colour code | empty string] 1132 If you specify an empty string for the color of a class, it is 1133 ignored in creating the stylesheet. You should not alter the class 1134 names, only the colour strings. 1135 Class name key: 1136 1137 + comment Applies to all comment sub-classes 1138 + comment_mysql Comments as "#...\n" 1139 + comment_ansi Comments as "-- ...\n" 1140 + comment_c Comments as "/*...*/" 1141 + digit Applies to all digit sub-classes 1142 + digit_hex Hexadecimal numbers 1143 + digit_integer Integer numbers 1144 + digit_float Floating point numbers 1145 + punct Applies to all punctuation sub-classes 1146 + punct_bracket_open_round Opening brackets"(" 1147 + punct_bracket_close_round Closing brackets ")" 1148 + punct_listsep List item Separator "," 1149 + punct_qualifier Table/Column Qualifier "." 1150 + punct_queryend End of query marker ";" 1151 + alpha Applies to all alphabetic classes 1152 + alpha_columnType Identifiers matching a column type 1153 + alpha_columnAttrib Identifiers matching a database/table/column 1154 attribute 1155 + alpha_functionName Identifiers matching a MySQL function name 1156 + alpha_reservedWord Identifiers matching any other reserved word 1157 + alpha_variable Identifiers matching a SQL variable "@foo" 1158 + alpha_identifier All other identifiers 1159 + quote Applies to all quotation mark classes 1160 + quote_double Double quotes " 1161 + quote_single Single quotes ' 1162 + quote_backtick Backtick quotes ` 1163 1164 $cfg['SQLValidator']['use'] boolean 1165 phpMyAdmin now supports use of the Mimer SQL Validator service, as 1166 originally published on Slashdot. 1167 For help in setting up your system to use the service, see the FAQ 1168 #6.14. 1169 1170 $cfg['SQLValidator']['username'] string 1171 $cfg['SQLValidator']['password'] string 1172 The SOAP service allows you to login with anonymous and any password, 1173 so we use those by default. Instead, if you have an account with 1174 them, you can put your login details here, and it will be used in 1175 place of the anonymous login. 1176 1177 $cfg['DBG']['enable'] boolean 1178 DEVELOPERS ONLY! 1179 Enable the DBG extension for debugging phpMyAdmin. Required for 1180 profiling the code. 1181 For help in setting up your system to this, see the Developers 1182 section. 1183 1184 $cfg['DBG']['profile']['enable'] boolean 1185 DEVELOPERS ONLY! 1186 Enable profiling support for phpMyAdmin. This will append a chunk of 1187 data to the end of every page displayed in the main window with 1188 profiling statistics for that page. 1189 You may need to increase the maximum execution time for this to 1190 complete successfully. 1191 1192 $cfg['DBG']['profile']['threshold'] float (units in milliseconds) 1193 DEVELOPERS ONLY! 1194 When profiling data is displayed, this variable controls the 1195 threshold of display for any profiling data, based on the average 1196 time each time has taken. If it is over the threshold it is 1197 displayed, otherwise it is not displayed. This takes a value in 1198 milliseconds. In most cases you don't need to edit this. 1199 1200 $cfg['ColumnTypes'] array 1201 All possible types of a MySQL column. In most cases you don't need to 1202 edit this. 1203 1204 $cfg['AttributeTypes'] array 1205 Possible attributes for fields. In most cases you don't need to edit 1206 this. 1207 1208 $cfg['Functions'] array 1209 A list of functions MySQL supports. In most cases you don't need to 1210 edit this. 1211 1212 $cfg['RestrictColumnTypes'] array 1213 Mapping of column types to meta types used for preferring displayed 1214 functions. In most cases you don't need to edit this. 1215 1216 $cfg['RestrictFunctions'] array 1217 Functions preferred for column meta types as defined in 1218 $cfg['RestrictColumnTypes']. In most cases you don't need to edit 1219 this. 1220 1221 $cfg['DefaultFunctions'] array 1222 Functions selected by default when insering/changing row, Functions 1223 are defined for meta types from $cfg['RestrictColumnTypes'] and for 1224 first_timestamp, which is used for first timestamp column in table. 1225 1226 $cfg['NumOperators'] array 1227 Operators available for search operations on numeric and date fields. 1228 1229 $cfg['TextOperators'] array 1230 Operators available for search operations on character fields. Note 1231 that we put LIKE by default instead of LIKE %...%, to avoid 1232 unintended performance problems in case of huge tables. 1233 1234 $cfg['EnumOperators'] array 1235 Operators available for search operations on enum fields. 1236 1237 $cfg['NullOperators'] array 1238 Additionnal operators available for search operations when the field 1239 can be null. 1240 1241 Transformations 1242 1243 Introduction - Usage - File structure 1244 1245 [1. Introduction] 1246 1247 To enable transformations, you have to setup the column_info table and th e proper directives. Please see the Configuration section on how to do s o. 1248 1249 You can apply different transformations to the contents of each field. Th e transformation will take the content of each field and transform it wi th certain rules defined in the selected transformation. 1250 1251 Say you have a field 'filename' which contains a filename. Normally you w ould see in phpMyAdmin only this filename. Using transformations you can transform that filename into a HTML link, so you can click inside of th e phpMyAdmin structure on the field's link and will see the file display ed in a new browser window. Using transformation options you can also sp ecify strings to append/prepend to a string or the format you want the o utput stored in. 1252 1253 For a general overview of all available transformations and their options , you can consult your <www.your-host.com>/<your-install-dir>/libraries/ transformations/overview.php installation. 1254 1255 For a tutorial on how to effectively use transformations, see our Link se ction on the official phpMyAdmin-homepage. 1256 1257 [2. Usage] 1258 1259 Go to your tbl_properties.inc.php page (i.e. reached through clicking on the 'properties' link for a table). There click on "Change" (or change i con) and there you will see three new fields at the end of the line. The y are called 'MIME-type', 'Browser transformation' and 'Transformation o ptions'. 1260 * The field 'MIME-type' is a dropdown field. You have the options to le ave that field empty or to use 'auto' [this feature is not yet 1261 available]. Please note that transformations are inactive as long as no 1262 MIME-type is selected. 1263 * The field 'Browser transformation' is a drop-down field. You can choo se from a hopefully growing amount of pre-defined transformations. See 1264 below for information on how to build your own transformation. 1265 There are global transformations and mimetype-bound transformations. 1266 Global transformations can be used for any mimetype. They will take the 1267 mimetype, if necessary, into regard. Mimetype-bound transformations 1268 usually only operate on a certain mimetype. There are transformations 1269 which operate on the main mimetype (like 'image'), which will most 1270 likely take the subtype into regard, and those who only operate on a 1271 specific subtype (like 'image/jpeg'). 1272 You can use transformations on mimetypes for which the function was not 1273 defined for. There is no security check for you selected the right 1274 transformation, so take care of what the output will be like. 1275 * The field 'Transformation options' is a free-type textfield. You have to enter transform-function specific options here. Usually the 1276 transforms can operate with default options, but it is generally a good 1277 idea to look up the overview to see which options are necessary. 1278 Much like the ENUM/SET-Fields, you have to split up several options 1279 using the format 'a','b','c',...(NOTE THE MISSING BLANKS). This is 1280 because internally the options will be parsed as an array, leaving the 1281 first value the first element in the array, and so forth. 1282 If you want to specify a MIME character set you can define it in the 1283 transformation_options. You have to put that outside of the pre-defined 1284 options of the specific mime-transform, as the last value of the set. 1285 Use the format "'; charset=XXX'". If you use a transform, for which you 1286 can specify 2 options and you want to append a character set, enter 1287 "'first parameter','second parameter','charset=us-ascii'". You can, 1288 however use the defaults for the parameters: "'','','charset=us-ascii'". 1289 1290 [3. File structure] 1291 1292 All mimetypes and their transformations are defined through single files in the directory 'libraries/transformations/'. 1293 1294 They are stored in files to ease up customization and easy adding of new transformations. 1295 1296 Because the user cannot enter own mimetypes, it is kept sure that transfo rmations always work. It makes no sense to apply a transformation to a m imetype, the transform-function doesn't know to handle. 1297 1298 One can, however, use empty mime-types and global transformations which s hould work for many mimetypes. You can also use transforms on a differen t mimetype they where built for, but pay attention to option usage as we ll as what the transformation does to your field. 1299 1300 There is a basic file called 'global.inc.php'. This function can be inclu ded by any other transform function and provides some basic functions. 1301 1302 There are 5 possible file names: 1303 1. A mimetype+subtype transform: 1304 [mimetype]_[subtype]__[transform].inc.php 1305 Please not that mimetype and subtype are separated via '_', which shall 1306 not be contained in their names. The transform function/filename may 1307 contain only characters which cause no problems in the file system as 1308 well as the PHP function naming convention. 1309 The transform function will the be called 1310 'PMA_transform_[mimetype]_[subtype]__[transform]()'. 1311 Example: 1312 text_html__formatted.inc.php 1313 PMA_transform_text_html__formatted() 1314 2. A mimetype (w/o subtype) transform: 1315 [mimetype]__[transform].inc.php 1316 Please note that there are no single '_' characters. The transform 1317 function/filename may contain only characters which cause no problems in 1318 the file system as well as the PHP function naming convention. 1319 The transform function will the be called 1320 'PMA_transform_[mimetype]__[transform]()'. 1321 Example: 1322 text__formatted.inc.php 1323 PMA_transform_text__formatted() 1324 3. A mimetype+subtype without specific transform function 1325 [mimetype]_[subtype].inc.php 1326 Please note that there are no '__' characters in the filename. Do not 1327 use special characters in the filename causing problems with the file 1328 system. 1329 No transformation function is defined in the file itself. 1330 Example: 1331 text_plain.inc.php 1332 (No function) 1333 4. A mimetype (w/o subtype) without specific transform function 1334 [mimetype].inc.php 1335 Please note that there are no '_' characters in the filename. Do not use 1336 special characters in the filename causing problems with the file 1337 system. 1338 No transformation function is defined in the file itself. 1339 Example: 1340 text.inc.php 1341 (No function) 1342 5. A global transform function with no specific mimetype 1343 global__[transform].inc.php 1344 The transform function will the be called 1345 'PMA_transform_global__[transform]()'. 1346 Example: 1347 global__formatted 1348 PMA_transform_global__formatted() 1349 1350 So generally use '_' to split up mimetype and subtype, and '__' to provid e a transform function. 1351 1352 All filenames containing no '__' in themselves are not shown as valid tra nsform functions in the dropdown. 1353 1354 Please see the libraries/transformations/TEMPLATE file for adding your ow n transform function. See the libraries/transformations/TEMPLATE_MIMETYP E for adding a mimetype without a transform function. Also note the intr oduction of a function description in the language files. For each funct ion a $strTransformation_[filename without .inc.php] has to exist. 1355 1356 You can use the template generator to generate new functions and entries in the language file. 1357 1358 To create a new transform function please see libraries/transformations/t emplate_generator.sh. To create a new, empty mimetype please see librari es/transformations/template_generator_mimetype.sh. 1359 1360 A transform function always gets passed three variables: 1361 1. $buffer - Contains the text inside of the column. This is the text, y ou want to transform. 1362 2. $options - Contains any user-passed options to a transform function a s an array. 1363 3. $meta - Contains an object with field information to your column. The data is drawn from the output of the mysql_fetch_field() function. 1364 This means, all object properties described on the manual page are 1365 available in this variable and can be used to transform a field 1366 accordingly to unsigned/zerofill/not_null/... properties. 1367 The $meta->mimetype variable contains the original MIME-type of the 1368 field (i.e. 'text/plain', 'image/jpeg' etc.) 1369 1370 FAQ - Frequently Asked Questions 1371 1372 Server - Configuration - Limitations - Multi-user - Browsers - Usage tips - Project - Security 1373 1374 Please have a look at our Link section on the official phpMyAdmin homepag e for in-depth coverage of phpMyAdmin's features and/or interface. 1375 1376 [1. Server] 1377 1378 [1.1] I'm running PHP 4+ and my server is crashing each time a specific 1379 action is required or phpMyAdmin sends a blank page or a page full of 1380 cryptic characters to my browser, what can I do? 1381 1382 There are some known PHP bugs with output buffering and compression. 1383 Try to set the $cfg['OBGzip'] directive to FALSE in your config.inc.php f ile and the zlib.output_compression directive to Off in your php configu ration file. 1384 Furthermore, we know about such problems connected to the release candida tes of PHP 4.2.0 (tested with PHP 4.2.0 RC1 to RC4) together with MS Int ernet Explorer. Please upgrade to the release version PHP 4.2.0. 1385 1386 [1.2] My Apache server crashes when using phpMyAdmin. 1387 1388 You should first try the latest versions of Apache (and possibly MySQL). 1389 See also the other FAQ entry about PHP bugs with output buffering. 1390 If your server keeps crashing, please ask for help in the various Apache support groups. 1391 1392 [1.3] I'm running phpMyAdmin with "cookie" authentication mode under PHP 1393 4.2.0 or 4.2.1 loaded as an Apache 2+ module but can't enter the script: 1394 I'm always displayed the login screen. 1395 1396 This is a known PHP bug (see this bug report) from the official PHP bug d atabase. It means there is and won't be any phpMyAdmin fix against it be cause there is no way to code a fix. 1397 1398 [1.4] Using phpMyAdmin on IIS, I'm displayed the error message: "The 1399 specified CGI application misbehaved by not returning a complete set of 1400 HTTP headers...". 1401 1402 You just forgot to read the install.txt file from the php distribution. H ave a look at the last message in this bug report from the official PHP bug database. 1403 1404 [1.5] Using phpMyAdmin on IIS, I'm facing crashes and/or many error 1405 messages with the HTTP or advanced authentication mode. 1406 1407 This is a known problem with the PHP ISAPI filter: it's not so stable. Fo r some more information and complete testings see the messages posted by André B. aka "djdeluxe76" in this thread from the phpWizard forum. 1408 Please use instead the cookie authentication mode. 1409 1410 [1.6] I can't use phpMyAdmin on PWS: nothing is displayed! 1411 1412 This seems to be a PWS bug. Filippo Simoncini found a workaround (at this time there is no better fix): remove or comment the DOCTYPE declaration s (2 lines) from the scripts header.inc.php, header_printview.inc.php, i ndex.php, left.php and libraries/common.lib.php. 1413 1414 [1.7] How can I GZip or Bzip a dump or a CSV export. It does not seem to 1415 work. 1416 1417 These features are based on the gzencode() and bzcompress() PHP functions to be more independent of the platform (Unix/Windows, Safe Mode or not, and so on). So, you must have PHP4 >= 4.0.4 and Zlib/Bzip2 support (--w ith-zlib and --with-bz2). 1418 We faced PHP crashes when trying to download a dump with MS Internet Expl orer when phpMyAdmin is run with a release candidate of PHP 4.2.0. In th is case you should switch to the release version of PHP 4.2.0. 1419 1420 [1.8] I cannot insert a text file in a table, and I get an error about safe 1421 mode being in effect. 1422 1423 Your uploaded file is saved by PHP in the "upload dir", as defined in php .ini by the variable upload_tmp_dir (usually the system default is /tmp) . 1424 We recommend the following setup for Apache servers running in safe mode, to enable uploads of files while being reasonably secure: 1425 * create a separate directory for uploads: mkdir /tmp/php 1426 * give ownership to the Apache server's user.group: chown apache.apache /tmp/php 1427 * give proper permission: chmod 600 /tmp/php 1428 * put upload_tmp_dir = /tmp/php in php.ini 1429 * restart Apache 1430 1431 [1.9] I'm having troubles when uploading files. In general file uploads 1432 don't work on my system and uploaded files have a Content-Type: header in 1433 the first line. 1434 1435 It's not really phpMyAdmin related but RedHat 7.0. You have a RedHat 7.0 and you updated your PHP RPM to php-4.0.4pl1-3.i386.rpm, didn't you? 1436 So the problem is that this package has a serious bug that was corrected ages ago in PHP (2001-01-28: see PHP's bug tracking system for more deta ils). The problem is that the bugged package is still available though i t was corrected (see RedHat's BugZilla for more details). 1437 So please download the fixed package (4.0.4pl1-9) and the problem should go away. 1438 And that fixes the \r\n problem with file uploads! 1439 1440 [1.10] I'm having troubles when uploading files with phpMyAdmin running on 1441 a secure server. My browser is Internet Explorer and I'm using the Apache 1442 server. 1443 1444 As suggested by "Rob M" in the phpWizard forum, add this line to your htt pd.conf: 1445 SetEnvIf User-Agent ".*MSIE.*" nokeepalive ssl-unclean-shutdown 1446 It seems to clear up many problems between Internet Explorer and SSL. 1447 1448 [1.11] I get an 'open_basedir restriction' while uploading a file from the 1449 query box. 1450 1451 Since version 2.2.4, phpMyAdmin supports servers with open_basedir restri ctions. Assuming that the restriction allows you to open files in the cu rrent directory ('.'), all you have to do is create a 'tmp' directory un der the phpMyAdmin install directory, with permissions 777 and the same owner as the owner of your phpMyAdmin directory. The uploaded files will be moved there, and after execution of your SQL commands, removed. 1452 1453 [1.12] I have lost my MySQL root password, what can I do? 1454 1455 The MySQL manual explains how to reset the permissions. 1456 1457 [1.13] I get an error 'No SQL query' when trying to execute a bookmark. 1458 1459 If PHP does not have read/write access to its upload_tmp_dir, it cannot a ccess the uploaded query. 1460 1461 [1.14] I get an error 'No SQL query' when trying to submit a query from the 1462 convenient text area. 1463 1464 Check the post_max_size directive from your PHP configuration file and tr y to increase it. 1465 1466 [1.15] I have problems with mysql.user field names. 1467 1468 In older MySQL versions, the User and Password fields were named user and password. Please modify your field names to align with current standard s. 1469 1470 [1.16] I cannot upload big dump files (memory, http or timeout problems). 1471 1472 The first things to check (or ask your host provider to check) are the va lues of upload_max_filesize, memory_limit and post_max_size in the php.i ni configuration file. 1473 All of these three settings limit the maximum size of data that can be su bmitted and handled by PHP. One user also said that post_max_size and me mory_limit need to be larger than upload_max_filesize. 1474 If you get a timeout problem, look at the $cfg['UploadDir'] feature. 1475 1476 [1.17] Which MySQL versions does phpMyAdmin support? 1477 1478 All MySQL versions from 3.23.32 till 5.0 (except for 4.1.0 and 4.1.1) are fully supported. Please note that the older your MySQL version is, the more limitations you will have to face. 1479 phpMyAdmin may connect to your MySQL server using php's classic MySQL ext ension as well as the improved MySQL extension (MySQLi) that is availabl e in php 5.0. 1480 Either way, the developers of both extensions recommend to use the classi c extension for MySQL 4.0 and below and MySQLi for MySQL 4.1 and newer. 1481 When compiling php, we strongly recommend that you manually link the MySQ L extension of your choice to a MySQL client library of at least the sam e minor version since the one that is bundled with some php distribution s is rather old and might cause problems (see also FAQ 1.17a). 1482 MySQL 5.1 is not yet supported. 1483 1484 [1.17a] I cannot connect to the MySQL server. It always returns the error 1485 message, "Client does not support authentication protocol requested by 1486 server; consider upgrading MySQL client" 1487 1488 You tried to access MySQL with an old MySQL client library. The version o f your MySQL client library can be checked in your phpinfo() output. 1489 In general, it should have at least the same minor version as your server - as mentioned in FAQ 1.17. 1490 The only way to fix this problem is manually compiling php and its MySQL extension against a current MySQL client library. 1491 If you still face this problem, please compile your MySQL client library against the same or a newer MySQL release. 1492 1493 [1.18] I'm running MySQL <= 4.0.1 having lower_case_table_names set to 1. 1494 If I create a new table with a capital letter in its name it is changed to 1495 lowercase as it should. But if I try to DROP this table MySQL is unable to 1496 find the corresponding file. 1497 1498 This is a bug of MySQL <= 4.0.1. Please upgrade to at least MySQL 4.0.2 o r turn off your lower_case_table_names directive. 1499 1500 [1.19] I can't run the "display relations" feature because the script seems 1501 not to know the font face I'm using! 1502 1503 The "FPDF" library we're using for this feature requires some special fil es to use font faces. 1504 Please refers to the FPDF manual to build these files. 1505 1506 [1.20] I receive the error "cannot load MySQL extension, please check PHP 1507 Configuration". 1508 1509 To connect to a MySQL server, PHP needs a set of MySQL functions called " MySQL extension". This extension may be part of the PHP distribution (co mpiled-in), otherwise it needs to be loaded dynamically. Its name is pro bably mysql.so or php_mysql.dll. phpMyAdmin tried to load the extension but failed. 1510 Usually, the problem is solved by installing a software package called "P HP-MySQL" or something similar. 1511 1512 [1.21] I am running the CGI version of PHP under Unix, and I cannot login 1513 using cookie auth. 1514 1515 In php.ini, set mysql.max_links higher than 1. 1516 1517 [1.22] I don't see the "Location of text file" field, so I cannot upload. 1518 1519 This is most likely because in php.ini, your file_uploads parameter is no t set to "on". 1520 1521 [1.23] I'm running MySQL on a Win32 machine. Each time I create a new table 1522 the table and field names are changed to lowercase! 1523 1524 This happens because the MySQL directive lower_case_table_names defaults to 1 (ON) in the Win32 version of MySQL. You can change this behavior by simply changing the directive to 0 (OFF): 1525 Just edit your my.ini file that should be located in your Windows directo ry and add the following line to the group [mysqld]: 1526 set-variable = lower_case_table_names=0 1527 Next, save the file and restart the MySQL service. You can always check t he value of this directive using the query 1528 SHOW VARIABLES LIKE 'lower_case_table_names'; 1529 1530 [1.24] Some characters are being truncated in my queries, or I get 1531 characters randomly added. I am running PHP 4.2.3. 1532 1533 This is a PHP 4.2.3 bug. 1534 1535 [1.25] I am running Apache with mod_gzip-1.3.26.1a on Windows XP, and I get 1536 problems, such as undefined variables when I run a SQL query. 1537 1538 A tip from Jose Fandos: put a comment on the following two lines in httpd .conf, like this: 1539 # mod_gzip_item_include file \.php$ 1540 # mod_gzip_item_include mime "application/x-httpd-php.*" 1541 as this version of mod_gzip on Apache (Windows) has problems handling PHP scripts. Of course you have to restart Apache. 1542 1543 [1.26] I just installed phpMyAdmin in my document root of IIS but I get the 1544 error "No input file specified" when trying to run phpMyAdmin. 1545 1546 This is a permission problem. Right-click on the phpmyadmin folder and ch oose properties. Under the tab Security, click on "Add" and select the u ser "IUSR_machine" from the list. Now set his permissions and it should work. 1547 1548 [1.27] I get empty page when I want to view huge page (eg. 1549 db_details_structure.php with plenty of tables). 1550 1551 This is a PHP bug that occur when GZIP output buffering is enabled. If yo u turn off it (by $cfg['OBGzip'] = FALSE in config.inc.php), it should w ork. This bug will be fixed in PHP 5.0.0. 1552 1553 [1.28] My MySQL server sometimes refuses queries and returns the message 1554 'Errorcode: 13'. What does this mean? 1555 1556 This can happen due to a MySQL bug when having database / table names wit h upper case characters although lower_case_table_names is set to 1. To fix this, turn off this directive, convert all database and table names to lower case and turn it on again. Alternatively, there's a bug-fix ava ilable starting with MySQL 3.23.56 / 4.0.11-gamma. 1557 1558 [1.29] When I create a table or modify a field, I get an error and the 1559 fields are duplicated. 1560 1561 It is possible to configure Apache in such a way that PHP has problems in terpreting .php files. 1562 The problems occur when two different (and conflicting) set of directives are used: 1563 SetOutputFilter PHP 1564 SetInputFilter PHP 1565 & 1566 AddType application/x-httpd-php .php 1567 In the case we saw, one set of directives was in /etc/httpd/conf/httpd.co nf, while the other set was in /etc/httpd/conf/addon-modules/php.conf. 1568 The recommended way is with AddType, so just comment out the first set of lines and restart Apache: 1569 #SetOutputFilter PHP 1570 #SetInputFilter PHP 1571 1572 [1.30] I get the error "left.php: Missing hash". 1573 1574 This problem is known to happen when the server is running Turck MMCache but upgrading MMCache to version 2.3.21 solves the problem. 1575 1576 [1.31] Does phpMyAdmin support php5? 1577 1578 Yes. 1579 However, phpMyAdmin needs to be backwards compatible to php4. This is why you won't be able to run phpMyAdmin having enabled E_STRICT in your err or_reporting settings. 1580 1581 [1.32] Can I use HTTP authentication with IIS? 1582 1583 Yes. This procedure was tested with phpMyAdmin 2.6.1, PHP 4.3.9 in ISAPI mode under IIS 5.1. 1584 1. In your php.ini file, set cgi.rfc2616_headers = 0 1585 2. In Web Site Properties -> File/Directory Security -> Anonymous Access dialog box, check the Anonymous access checkbox and uncheck any other 1586 checkboxes (i.e. uncheck Basic authentication, Integrated Windows 1587 authentication, and Digest if it's enabled.) Click OK. 1588 3. In Custom Errors, select the range of 401;1 through 401;5 and click t he Set to Default button. 1589 1590 [2. Configuration] 1591 1592 [2.1] The error message "Warning: Cannot add header information - headers 1593 already sent by ..." is displayed, what's the problem? 1594 1595 Edit your config.inc.php or .php file and ensure there is nothing (I.E. n o blank lines, no spaces, no characters...) neither before the <?php tag at the beginning, neither after the ?> tag at the end. 1596 1597 [2.2] phpMyAdmin can't connect to MySQL. What's wrong? 1598 1599 Either there is an error with your PHP setup or your username/password is wrong. Try to make a small script which uses mysql_connect and see if i t works. If it doesn't, it may be you haven't even compiled MySQL suppor t into PHP. 1600 1601 [2.3] The error message "Warning: MySQL Connection Failed: Can't connect to 1602 local MySQL server through socket '/tmp/mysql.sock' (111)..." is displayed. 1603 What can I do? 1604 1605 For RedHat users, Harald Legner suggests this on the mailing list: 1606 On my RedHat-Box the socket of MySQL is /var/lib/mysql/mysql.sock. In you r php.ini you will find a line 1607 mysql.default_socket = /tmp/mysql.sock 1608 change it to 1609 mysql.default_socket = /var/lib/mysql/mysql.sock 1610 Then restart apache and it will work. 1611 Here is a fix suggested by Brad Ummer in the phpwizard forum: 1612 * First, you need to determine what socket is being used by MySQL. 1613 To do this, telnet to your server and go to the MySQL bin directory. In 1614 this directory there should be a file named mysqladmin. Type 1615 ./mysqladmin variables, and this should give you a bunch of info about 1616 your MySQL server, including the socket (/tmp/mysql.sock, for example). 1617 * Then, you need to tell PHP to use this socket. 1618 Assuming you are using PHP 3.0.10 or better, you can specify the socket 1619 to use when you open the connection. To do this in phpMyAdmin, you need 1620 to complete the socket information in the config.inc.php. 1621 For example: $cfg['Servers'][$i]['socket'] = '/tmp/mysql.sock'; 1622 Please also make sure that the permissions of this file allow to be 1623 readable by your webserver (i.e. '0755'). 1624 1625 Have also a look at the corresponding section of the MySQL documentation. 1626 [2.4] Nothing is displayed by my browser when I try to run phpMyAdmin, what 1627 can I do? 1628 1629 Try to set the $cfg['OBGZip'] directive to FALSE in the phpMyAdmin config uration file. It helps sometime. 1630 Also have a look at your PHP version number: if it contains "4.0b..." it means you're running a beta version of PHP. That's not a so good idea, p lease upgrade to a plain revision. 1631 1632 [2.5] Each time I want to insert or change a record or drop a database or a 1633 table, an error 404 (page not found) is displayed or, with HTTP or cookie 1634 authentication, I'm asked to login again. What's wrong? 1635 1636 Check the value you set for the $cfg['PmaAbsoluteUri'] directive in the p hpMyAdmin configuration file. 1637 1638 [2.6] I get an "Access denied for user: 'root@localhost' (Using password: 1639 YES)"-error when trying to access a MySQL-Server on a host which is 1640 port-forwarded for my localhost. 1641 1642 When you are using a port on your localhost, which you redirect via port- forwarding to another host, MySQL is not resolving the localhost as expe cted. 1643 Erik Wasser explains: The solution is: if your host is "localhost" MySQL (the commandline tool 'mysql' as well) always tries to use the socket co nnection for speeding up things. And that doesn't work in this configura tion with port forwarding. 1644 If you enter "127.0.0.1" as hostname, everything is right and MySQL uses the TCP connection. 1645 1646 [2.7] Using and creating themes 1647 1648 Themes are configured with $cfg['ThemePath'], $cfg['ThemeManager'] and $c fg['ThemeDefault']. 1649 Under $cfg['ThemePath'], you should not delete the directory "original" o r its underlying structure, because this is the system theme used by php MyAdmin. "original" contains all images and styles, for backwards compat ibility and for all themes that would not include images or css-files. 1650 If $cfg['ThemeManager'] is enabled, you can select your favorite theme on the main page. Your selected theme will be stored in a cookie. 1651 1652 To create a theme: 1653 * make a new subdirectory (for example "your_theme_name") under $cfg['T hemePath'] (by default themes) 1654 * copy the files and directories from "original" to "your_theme_name" 1655 * edit the css-files in "your_theme_name/css" 1656 * put your new images in "your_theme_name/img" 1657 * edit layout.inc.php in "your_theme_name" 1658 * edit info.inc.php in "your_theme_name" to contain your chosen theme n ame, that will be visible in user interface 1659 * make a new screenshot of your theme and save it under "your_theme_nam e/screen.png" 1660 1661 In theme directory there is file info.inc.php which contains theme verbos e name, theme generation and theme version. These versions and generatio ns are enumerated from 1 and do not have any direct dependance on phpMyA dmin version. Themes within same generation should be backwards compatib le - theme with version 2 should work in phpMyAdmin requiring version 1. Themes with different generation are incompatible. 1662 1663 If you do not want to use your own symbols and buttons, remove the direct ory "img" in "your_theme_name". phpMyAdmin will use the default icons an d buttons (from the system-theme "original"). 1664 1665 [3. Known limitations] 1666 1667 [3.1] When using HTTP authentication, an user who logged out can not 1668 relogin in with the same nick. 1669 1670 This is related to the authentication mechanism (protocol) used by phpMyA dmin. To bypass this problem: just close all the opened browser windows and then go back to phpMyAdmin. You should be able to log in again. 1671 1672 [3.2] When dumping a large table in compressed mode, I get a memory limit 1673 error or a time limit error. 1674 1675 Compressed dumps are built in memory and because of this are limited to p hp's memory limit. For GZip/BZip2 exports this can be overcome since 2.5 .4 using $cfg['CompressOnFly'] (enabled by default). Zip exports can not be handled this way, so if you need Zip files for larger dump, you have to use another way. 1676 1677 [3.3] With InnoDB tables, I lose foreign key relationships when I rename or 1678 alter a table. 1679 1680 This seems to be a InnoDB bug (fixed in MySQL 3.23.50?). 1681 1682 [3.4] I am unable to import dumps I created with the mysqldump tool bundled 1683 with the MySQL server distribution. 1684 1685 The problem is that mysqldump creates invalid comments like this: 1686 -- MySQL dump 8.22 1687 -- 1688 -- Host: localhost Database: database 1689 --------------------------------------------------------- 1690 -- Server version 3.23.54 1691 1692 The invalid part of the code is the horizontal line made of dashes that a ppears once in every dump created with mysqldump. If you want to run you r dump you have to turn it into valid MySQL. This means, you have to add a whitespace after the first two dashes of the line or add a # before i t: 1693 -- ------------------------------------------------------- 1694 or 1695 #--------------------------------------------------------- 1696 1697 [3.5] When using nested folders ($cfg['LeftFrameTableSeparator']) there are 1698 some multiple hierarchies displayed in a wrong manner?! 1699 1700 Please note that you should not use the separating string multiple times without any characters between them, or at the beginning/end of your tab le name. If you have to, think about using another TableSeparator or dis abling that feature 1701 1702 [3.6] What is currently not supported in phpMyAdmin about InnoDB? 1703 1704 In Relation view, being able to choose a table in another database, or ha ving more than one index field in the foreign key. 1705 In Query-by-example (Query), automatic generation of the query LEFT JOIN from the foreign table. 1706 In PDF schema editing, automatic layout. 1707 1708 [3.7] I have table with many (100+) fields and when I try to browse table I 1709 get series of errors like "Warning: unable to parse url". How can this be 1710 fixed? 1711 1712 Your table neither have a primary key nor an unique one, so we must use a long expression to identify this row. This causes problems to parse_url function. The workaround is to create a primary or unique key. 1713 1714 [3.8] I cannot use (clickable) HTML-forms in fields where I put a 1715 MIME-Transformation onto! 1716 1717 Due to a surrounding form-container (for multi-row delete checkboxes), no nested forms can be put inside the table where phpMyAdmin displays the results. You can, however, use any form inside of a table if keep the pa rent form-container with the target to tbl_row_delete.php and just put y our own input-elements inside. If you use a custom submit input field, t he form will submit itself to the displaying page again, where you can v alidate the $HTTP_POST_VARS in a transformation. For a tutorial on how t o effectively use transformations, see our Link section on the official phpMyAdmin-homepage. 1718 1719 [3.9] I get error messages when using "--sql_mode=ANSI" for the MySQL 1720 server 1721 1722 When MySQL is running in ANSI-compatibility mode, there are some major di fferences in how SQL is structured (see http://dev.mysql.com/doc/mysql/e n/ANSI_mode.html). Most important of all, the quote-character (") is int erpreted as an identifier quote character and not as a string quote char acter, which makes many internal phpMyAdmin operations into invalid SQL statements. There is no workaround to this behaviour. News to this item will be posted in Bug report #816858 1723 1724 [3.10] Homonyms and no primary key: When the results of a SELECT display 1725 more that one column with the same value (for example SELECT lastname from 1726 employees where firstname like 'A%' and two "Smith" values are displayed), 1727 if I click Edit I cannot be sure that I am editing the intended row. 1728 1729 Please make sure that your table has a primary key, so that phpMyAdmin ca n use it for the Edit and Delete links. 1730 1731 [3.11] The number of records for InnoDB tables is not correct. 1732 1733 phpMyAdmin uses a quick method to get the row count, and this method only returns an approximate count in the case of InnoDB tables. See $cfg['Ma xExactCount'] for a way to modify those results, but this could have a s erious impact on performance. 1734 1735 [4. ISPs, multi-user installations ] 1736 1737 [4.1] I'm an ISP. Can I setup one central copy of phpMyAdmin or do I need 1738 to install it for each customer. 1739 1740 Since version 2.0.3, you can setup a central copy of phpMyAdmin for all y our users. The development of this feature was kindly sponsored by NetCo logne GmbH. This requires a properly setup MySQL user management and php MyAdmin HTTP or cookie authentication. See the install section on "Using HTTP authentication". 1741 1742 [4.2] What's the preferred way of making phpMyAdmin secure against evil 1743 access. 1744 1745 This depends on your system. 1746 If you're running a server which cannot be accessed by other people, it's sufficient to use the directory protection bundled with your webserver (with Apache you can use .htaccess files, for example). 1747 If other people have telnet access to your server, you should use phpMyAd min's HTTP authentication feature. 1748 Suggestions: 1749 * Your config.inc.php file should be chmod 660. 1750 * All your phpMyAdmin files should be chown -R phpmy.apache, where phpm y is a user whose password is only known to you, and apache is the 1751 group under which Apache runs. 1752 * You should use PHP safe mode, to protect from other users that try to include your config.inc.php in their scripts. 1753 1754 [4.3] I get errors about not being able to include a file in /lang or in 1755 /libraries. 1756 1757 Check php.ini, or ask your sysadmin to check it. The include_path must co ntain "." somewhere in it, and open_basedir, if used, must contain "." a nd "./lang" to allow normal operation of phpMyAdmin. 1758 1759 [4.4] phpMyAdmin always gives "Access denied" when using HTTP 1760 authentication. 1761 1762 This could happen for several reasons: 1763 * $cfg['Servers'][$i]['controluser'] and/or $cfg['Servers'][$i]['contro lpass'] are wrong. 1764 * The username/password you specify in the login-dialog are invalid. 1765 * You have already setup a security mechanism for the phpMyAdmin-direct ory, eg. a .htaccess file. This would interfere with phpMyAdmin's 1766 authentication, so remove it. 1767 1768 [4.5] Is it possible to let users create their own databases? 1769 1770 Starting with 2.2.5, in the user management page, you can enter a wildcar d database name for a user (for example "joe%"), and put the privileges you want. For example, adding SELECT, INSERT, UPDATE, DELETE, CREATE, DR OP, INDEX, ALTER would let a user create/manage his/her database(s). 1771 1772 [4.6] How can I use the Host-based authentication additions? 1773 1774 If you have existing rules from an old .htaccess file, you can take them and add a username between the 'deny'/'allow' and 'from' strings. Using the username wildcard of '%' would be a major benefit here if your insta llation is suited to using it. Then you can just add those updated lines into the $cfg['Servers'][$i]['AllowDeny']['rules'] array. 1775 If you want a pre-made sample, you can try this fragment. It stops the 'r oot' user from logging in from any networks other than the private netwo rk IP blocks. 1776 //block root from logging in except from the private networks 1777 $cfg['Servers'][$i]['AllowDeny']['order'] = 'deny,allow'; 1778 $cfg['Servers'][$i]['AllowDeny']['rules'] = array( 1779 'deny root from all', 1780 'allow root from localhost', 1781 'allow root from 10.0.0.0/8', 1782 'allow root from 192.168.0.0/16', 1783 'allow root from 172.16.0.0/12', 1784 ); 1785 1786 [4.7] Authentication window is displayed more than once, why? 1787 1788 This happens if you are using a URL to start phpMyAdmin which is differen t than the one set in your $cfg['PmaAbsoluteUri']. For example, a missin g "www", or entering with an IP address while a domain name is defined i n the config file. 1789 1790 [5. Browsers or client OS] 1791 1792 [5.1] I get an out of memory error, and my controls are non-functional, 1793 when trying to create a table with more than 14 fields. 1794 1795 We could reproduce this problem only under Win98/98SE. Testing under WinN T4 or Win2K, we could easily create more than 60 fields. 1796 A workaround is to create a smaller number of fields, then come back to y our table properties and add the other fields. 1797 1798 [5.2] With Xitami 2.5b4, phpMyAdmin won't process form fields. 1799 1800 This is not a phpMyAdmin problem but a Xitami known bug: you'll face it w ith each script/website that use forms. 1801 Upgrade or downgrade your Xitami server. 1802 1803 [5.3] I have problems dumping tables with Konqueror (phpMyAdmin 2.2.2). 1804 1805 With Konqueror 2.1.1: plain dumps, zip and GZip dumps work ok, except tha t the proposed file name for the dump is always 'tbl_dump.php'. Bzip2 du mps don't seem to work. 1806 With Konqueror 2.2.1: plain dumps work; zip dumps are placed into the use r's temporary directory, so they must be moved before closing Konqueror, or else they disappear. GZip dumps give an error message. 1807 Testing needs to be done for Konqueror 2.2.2. 1808 1809 [5.4] I can't use the cookie authentication mode because Internet Explorer 1810 never stores the cookies. 1811 1812 MS Internet Explorer seems to be really buggy about cookies, at least til l version 6. And thanks to Andrew Zivolup we've traced also a PHP 4.1.1 bug in this area! 1813 Then, if you're running PHP 4.1.1, try to upgrade or downgrade... it may work! 1814 1815 [5.5] In Internet Explorer 5.0, I get JavaScript errors when browsing my 1816 rows. 1817 1818 Upgrade to at least Internet Explorer 5.5 SP2. 1819 1820 [5.6] In Internet Explorer 5.0, 5.5 or 6.0, I get an error (like "Page not 1821 found") when trying to modify a row in a table with many fields, or with a 1822 text field 1823 1824 Your table neither have a primary key nor an unique one, so we must use a long URL to identify this row. There is a limit on the length of the UR L in those browsers, and this not happen in Netscape, for example. The w orkaround is to create a primary or unique key, or use another browser. 1825 1826 [5.7] I refresh (reload) my browser, and come back to the welcome page. 1827 1828 Some browsers support right-clicking into the frame you want to refresh, just do this in the right frame. 1829 1830 [5.8] With Mozilla 0.9.7 I have problems sending a query modified in the 1831 query box. 1832 1833 Looks like a Mozilla bug: 0.9.6 was OK. We will keep an eye on future Moz illa versions. 1834 1835 [5.9] With Mozilla 0.9.? to 1.0 and Netscape 7.0-PR1 I can't type a 1836 whitespace in the SQL-Query edit area: the page scrolls down. 1837 1838 This is a Mozilla bug (see bug #26882 at BugZilla). 1839 1840 [5.10] With Netscape 4.75 I get empty rows between each row of data in a 1841 CSV exported file. 1842 1843 This is a known Netscape 4.75 bug: it adds some line feeds when exporting data in octet-stream mode. Since we can't detect the specific Netscape version, we cannot workaround this bug. 1844 1845 [5.11] Extended-ASCII characters like German umlauts are displayed wrong. 1846 1847 Please ensure that you have set your browser's character set to the one o f the language file you have selected on phpMyAdmin's start page. Altern atively, you can try the auto detection mode that is supported by the re cent versions of the most browsers. 1848 1849 [5.12] Apple OS X: Safari browser changes special characters to "?". 1850 1851 This issue has been reported by a OS X user, who adds that Chimera, Netsc ape and Mozilla do not have this problem. 1852 1853 [5.13] With Internet Explorer 5.5 or 6, and HTTP authentication type, I 1854 cannot manage two servers: I login to the first one, then the other one, 1855 but if I switch back to the first, I have to login on each operation. 1856 1857 This is a bug in Internet Explorer, other browsers do not behave this way . 1858 1859 [5.14] Using Opera6, I can manage to get to the authentication, but nothing 1860 happens after that, only a blank screen. 1861 1862 Having $cfg['QueryFrameJS'] set to TRUE, this leads to a bug in Opera6, b ecause it is not able to interpret frameset definitiions written by Java Script. Please upgrade to Opera7 at least. 1863 1864 [5.15] I have display problems with Safari. 1865 1866 Please upgrade to at least version 1.2.3. 1867 1868 [5.16] With Internet Explorer, I get "Access is denied" Javascript errors. 1869 Or I cannot make phpMyAdmin work under Windows. 1870 1871 Please check the following points: 1872 * Maybe you have defined your PmaAbsoluteUri setting in config.inc.php to an IP address and you are starting phpMyAdmin with a URL containing 1873 a domain name, or the reverse situation. 1874 * Security settings in IE and/or Microsoft Security Center are too high , thus blocking scripts execution. 1875 * The Windows Firewall is blocking Apache and MySQL. You must allow htt p ports (80 or 443) and MySQL port (usually 3306) in the "in" and "out" 1876 directions. 1877 1878 [6. Using phpMyAdmin] 1879 1880 [6.1] I can't insert new rows into a table / I can't create a table - MySQL 1881 brings up a SQL-error. 1882 1883 Examine the SQL error with care. Often the problem is caused by specifyin g a wrong field-type. 1884 Common errors include: 1885 * Using VARCHAR without a size argument 1886 * Using TEXT or BLOB with a size argument 1887 1888 Also, look at the syntax chapter in the MySQL manual to confirm that your syntax is correct. 1889 1890 [6.2] When I create a table, I click the Index checkbox for 2 fields and 1891 phpMyAdmin generates only one index with those 2 fields. 1892 1893 In phpMyAdmin 2.2.0 and 2.2.1, this is the way to create a multi-fields i ndex. If you want two indexes, create the first one when creating the ta ble, save, then display the table properties and click the Index link to create the other index. 1894 1895 [6.3] How can I insert a null value into my table? 1896 1897 Since version 2.2.3, you have a checkbox for each field that can be null. Before 2.2.3, you had to enter "null", without the quotes, as the field 's value. Since version 2.5.5, you have to use the checkbox to get a rea l NULL value, so if you enter "NULL" this means you want a literal NULL in the field, and not a NULL value (this works in PHP4). 1898 1899 [6.4] How can I backup my database or table? 1900 1901 Click on a database or table name in the left frame, the properties will be displayed. Then on the menu, click "Export", you can dump the structu re, the data, or both. This will generate standard SQL statements that c an be used to recreate your database/table. 1902 You will need to choose "Save as file", so that phpMyAdmin can transmit t he resulting dump to your station. Depending on your PHP configuration, you will see options to compress the dump. See also the $cfg['ExecTimeLi mit'] configuration variable. 1903 For additional help on this subject, look for the word "dump" in this doc ument. 1904 1905 [6.5] How can I restore (upload) my database or table using a dump? How can 1906 I run a ".sql" file. 1907 1908 Click on a database name in the left frame, the properties will be local displayed. Then in the "Run SQL query" section, type in your dump filena me, or use the Browse button. Then click Go. 1909 For additional help on this subject, look for the word "upload" in this d ocument. 1910 1911 [6.6] How can I use the relation table in Query-by-example? 1912 1913 Here is an example with the tables persons, towns and countries, all loca ted in the database mydb. If you don't have a pma_relation table, create it as explained in the configuration section. Then create the example t ables: 1914 CREATE TABLE REL_countries ( 1915 country_code char(1) NOT NULL default '', 1916 description varchar(10) NOT NULL default '', 1917 PRIMARY KEY (country_code) 1918 ) TYPE=MyISAM; 1919 INSERT INTO REL_countries VALUES ('C', 'Canada'); 1920 CREATE TABLE REL_persons ( 1921 id tinyint(4) NOT NULL auto_increment, 1922 person_name varchar(32) NOT NULL default '', 1923 town_code varchar(5) default '0', 1924 country_code char(1) NOT NULL default '', 1925 PRIMARY KEY (id) 1926 ) TYPE=MyISAM; 1927 INSERT INTO REL_persons VALUES (11, 'Marc', 'S', ''); 1928 INSERT INTO REL_persons VALUES (15, 'Paul', 'S', 'C'); 1929 CREATE TABLE REL_towns ( 1930 town_code varchar(5) NOT NULL default '0', 1931 description varchar(30) NOT NULL default '', 1932 PRIMARY KEY (town_code) 1933 ) TYPE=MyISAM; 1934 INSERT INTO REL_towns VALUES ('S', 'Sherbrooke'); 1935 INSERT INTO REL_towns VALUES ('M', 'Montréal'); 1936 To setup appropriate links and display information: 1937 * on table "REL_persons" click Structure, then Relation view 1938 * in Links, for "town_code" choose "REL_towns->code" 1939 * in Links, for "country_code" choose "REL_countries->country_code" 1940 * on table "REL_towns" click Structure, then Relation view 1941 * in "Choose field to display", choose "description" 1942 * repeat the two previous steps for table "REL_countries" 1943 1944 Then test like this: 1945 * Click on your db name in the left frame 1946 * Choose "Query" 1947 * Use tables: persons, towns, countries 1948 * Click "Update query" 1949 * In the fields row, choose persons.person_name and click the "Show" ti ckbox 1950 * Do the same for towns.description and countries.descriptions in the o ther 2 columns 1951 * Click "Update query" and you will see in the query box that the corre ct joins have been generated 1952 * Click "Submit query" 1953 1954 [6.7] How can I use the "display field" feature? 1955 1956 Starting from the previous example, create the pma_table_info as explaine d in the configuration section, then browse your persons table, and move the mouse over a town code or country code. 1957 See also FAQ 6.21 for an additionnal feature that "display field" enables : drop-down list of possible values. 1958 1959 [6.8] How can I produce a PDF schema of my database? 1960 1961 First the configuration variables "relation", "table_coords" and "pdf_pag es" have to be filled in. 1962 Then you need to think about your schema layout. Which tables will go on which pages? 1963 * Select your database in the left frame. 1964 * Choose "Operations" in the navigation bar at the top. 1965 * Choose "Edit PDF Pages" near the bottom of the page. 1966 * Enter a name for the first PDF page and click Go. If you like, you ca n use the "automatic layout," which will put all your linked tables 1967 onto the new page. 1968 * Select the name of the new page (the action choice being set to Edit) and click Go. 1969 * Select a table from the list, enter its coordinates and click Go. 1970 Coordinates are relative; your diagram will be automatically scaled to 1971 fit the page. When initially placing tables on the page, just pick any 1972 coordinates -- say, 50x50. After clicking Go, you can then use the 1973 graphical editor to position the element correctly. 1974 * When you'd like to look at your PDF, first be sure to click the Go bu tton beneath the list of tables and coordinates, to save any changes 1975 you made there. Then scroll all the way down, select the PDF options you 1976 want, and click Go. 1977 * Internet Explorer for Windows may suggest an incorrect filename when you try to save a generated PDF. When saving a generated PDF, be sure 1978 that the filename ends in ".pdf", for example "schema.pdf". Browsers on 1979 other operating systems, and other browsers on Windows, do not have this 1980 problem. 1981 1982 [6.9] phpMyAdmin is changing the type of one of my columns! 1983 1984 No, it's MySQL that is doing silent column type changing. 1985 1986 [6.10] When creating a privilege, what happens with underscores in the 1987 database name? 1988 1989 If you do not put a backslash before the underscore, this is a wildcard g rant, and the underscore means "any character". So, if the database name is "john_db", the user would get rights to john1db, john2db... 1990 If you put a backslash before the underscore, it means that the database name will have a real underscore. 1991 1992 [6.11] What is the curious symbol ø in the statistics pages? 1993 1994 It means "average". 1995 1996 [6.12] I want to understand some Export options. 1997 1998 Structure: 1999 * "Add DROP TABLE" will add a line telling MySQL to drop the table, if it already exists during the import. It does NOT drop the table after 2000 your export, it only affects the import file. 2001 * "If Not Exists" will only create the table if it doesn't exist. Other wise, you may get an error if the table name exists but has a different 2002 structure. 2003 * "Add AUTO_INCREMENT value" ensures that AUTO_INCREMENT value (if any) will be included in backup. 2004 * "Enclose table and field names with backquotes" ensures that field an d table names formed with special characters are protected. 2005 * "Add into comments" includes column comments, relations, and MIME typ es set in the pmadb in the dump as SQL comments (/* xxx */). 2006 2007 Data: 2008 * "Complete inserts" adds the column names on every INSERT command, for better documentation (but resulting file is bigger). 2009 * "Extended inserts" provides a shorter dump file by using only once th e INSERT verb and the table name. 2010 * "Delayed inserts" are best explained in the MySQL manual. 2011 * "Ignore inserts" treats errors as a warning instead. Again, more info is provided in the MySQL manual, but basically with this selected, 2012 invalid values are adjusted and inserted rather than causing the entire 2013 statement to fail. 2014 2015 [6.13] I would like to create a database with a dot in its name. 2016 2017 This is a bad idea, because in MySQL the syntax "database.table" is the n ormal way to reference a database and table name. Worse, MySQL will usua lly let you create a database with a dot, but then you cannot work with it, nor delete it. 2018 2019 [6.14] How do I set up the SQL Validator? 2020 2021 To use it, you need a very recent version of PHP, 4.3.0 recommended, with XML, PCRE and PEAR support. On your system command line, run "pear inst all Net_Socket Net_URL HTTP_Request Mail_Mime Net_DIME SOAP" to get the necessary PEAR modules for usage. 2022 On a more recent pear version, I had problems with the state of Net_DIME being beta, so this single command "pear -d preferred_state=beta install -a SOAP" installed all the needed modules. 2023 If you use the Validator, you should be aware that any SQL statement you submit will be stored anonymously (database/table/column names, strings, numbers replaced with generic values). The Mimer SQL Validator itself, is © 2001 Upright Database Technology. We utilize it as free SOAP servic e. 2024 2025 [6.15] I want to add a BLOB field and put an index on it, but MySQL says 2026 "BLOB column '...' used in key specification without a key length". 2027 2028 The right way to do this, is to create the field without any indexes, the n display the table structure and use the "Create an index" dialog. On t his page, you will be able to choose your BLOB field, and set a size to the index, which is the condition to create an index on a BLOB field. 2029 2030 [6.16] How can I simply move in page with plenty editing fields? 2031 2032 You can use Ctrl+arrows (Option+Arrows in Safari) for moving on most page s with many editing fields (table structure changes, row editing, etc.) (must be enabled in configuration - see. $cfg['CtrlArrowsMoving']). You can also have a look at the directive $cfg['DefaultPropDisplay'] ('verti cal') and see if this eases up editing for you. 2033 2034 [6.17] Transformations: I can't enter my own mimetype! WTF is this feature 2035 then useful for? 2036 2037 Slow down :). Defining mimetypes is of no use, if you can't put transform ations on them. Otherwise you could just put a comment on the field. Bec ause entering your own mimetype will cause serious syntax checking issue s and validation, this introduces a high-risk false-user-input situation . Instead you have to initialize mimetypes using functions or empty mime type definitions. 2038 Plus, you have a whole overview of available mimetypes. Who knows all tho se mimetypes by heart so he/she can enter it at will? 2039 2040 [6.18] Bookmarks: Where can I store bookmarks? Why can't I see any 2041 bookmarks below the query box? What is this variable for? 2042 2043 Any query you have executed can be stored as a bookmark on the page where the results are displayed. You will find a button labeled 'Bookmark thi s query' just at the end of the page. 2044 As soon as you have stored a bookmark, it is related to the database you run the query on. You can now access a bookmark dropdown on each page, t he query box appears on for that database. 2045 Since phpMyAdmin 2.5.0 you are also able to store variables for the bookm arks. Just use the string /*[VARIABLE]*/ anywhere in your query. Everyth ing which is put into the value input box on the query box page will rep lace the string "/*[VARIABLE]*/" in your stored query. Just be aware of that you HAVE to create a valid query, otherwise your query won't be eve n able to be stored in the database. 2046 Also remember, that everything else inside the /*[VARIABLE]*/ string for your query will remain the way it is, but will be stripped of the /**/ c hars. So you can use: 2047 /*, [VARIABLE] AS myname */ 2048 which will be expanded to 2049 , VARIABLE as myname 2050 in your query, where VARIABLE is the string you entered in the input box. If an empty string is provided, no replacements are made. 2051 A more complex example. Say you have stored this query: 2052 SELECT Name, Address FROM addresses WHERE 1 /* AND Name LIKE '%[VARIABLE] %' */ 2053 Say, you now enter "phpMyAdmin" as the variable for the stored query, the full query will be: 2054 SELECT Name, Address FROM addresses WHERE 1 AND Name LIKE '%phpMyAdmin%' 2055 You can use multiple occurences of /*[VARIABLE]*/ in a single query. 2056 NOTE THE ABSENCE OF SPACES inside the "/**/" construct. Any spaces insert ed there will be later also inserted as spaces in your query and may lea d to unexpected results especially when using the variable expansion ins ide of a "LIKE ''" expression. 2057 Your initial query which is going to be stored as a bookmark has to yield at least one result row so you can store the bookmark. You may have tha t to work around using well positioned "/**/" comments. 2058 2059 [6.19] How can I create simple LaTeX document to include exported table? 2060 2061 You can simply include table in your LaTeX documents, minimal sample docu ment should look like following one (assuming you have table exported in file table.tex): 2062 \documentclass{article} % or any class you want 2063 \usepackage{longtable} % for displaying table 2064 \begin{document} % start of document 2065 \include{table} % including exported table 2066 \end{document} % end of document 2067 2068 [6.20] In MySQL 4, I see a lot of databases which are not mine, and cannot 2069 access them. 2070 2071 Upgrading to MySQL 4 usually gives users those global privileges: CREATE TEMPORARY TABLES, SHOW DATABASES, LOCK TABLES. Those privileges also ena bles users to see all the database names, until you upgrade the grant ta bles as described in the MySQL manual. See this bug report. 2072 So if your users do not need those privileges, you can remove them and th eir databases list will shorten. 2073 2074 [6.21] In edit/insert mode, how can I see a list of possible values for a 2075 field, based on some foreign table? 2076 2077 You have to setup appropriate links between the tables, and also setup th e "display field" in the foreign table. See FAQ 6.6 for an example. Then , if there are 200 values or less in the foreign table, a drop-down list of values will be available. You will see two lists of values, the firs t list containing the key and the display field, the second list contain ing the display field and the key. The reason for this is to be able to type the first letter of either the key or the display field. 2078 For 200 values or more, a distinct window will appear, to browse foreign key values and choose one. 2079 2080 [6.22] Bookmarks: Can I execute a default bookmark automatically when 2081 entering Browse mode for a table? 2082 2083 Yes. If a bookmark has the same label as a table name, it will be execute d. 2084 2085 [6.23] Export: I heard phpMyAdmin can export MS Excel files, how can I 2086 enable that? 2087 2088 You can either export as CSV suitable for MS Excel, which works out of th e box or you can try native experimental MS Excel exporter. This export has several problems, most important are limitation of cell content to 2 55 chars and no support for charsets, so think carefully whether you wan t to enable this.. For enabling this you need to set $cfg['TempDir'] to place where web server user can write (for example './tmp') and install PEAR module Spreadsheet_Excel_Writer into php include path. The installa tion can be done by following command: 2089 pear -d preferred_state=beta install -a Spreadsheet_Excel_Writer 2090 2091 First part of switches set we want to install beta version of that module (no stable version available yet) and then we tell pear we want to sati sfy dependencies. 2092 2093 If you are running in PHP safe mode, you will have to set in php.ini the safe_mode_include_dir to the directory where your PEAR modules are locat ed, for example: 2094 safe_mode_include_dir = /usr/local/lib/php 2095 2096 To create the temporary directory on a UNIX-based system, you can do: 2097 cd phpMyAdmin 2098 mkdir tmp 2099 chmod o+rwx tmp 2100 2101 [7. phpMyAdmin project] 2102 2103 [7.1] I have found a bug. How do I inform developers? 2104 2105 Our Bug Tracker is located at http://sourceforge.net/projects/phpmyadmin/ under the Bugs section. 2106 But please first discuss your bug with other users: 2107 http://sourceforge.net/projects/phpmyadmin/ (and choose Forums) 2108 2109 [7.2] I want to translate the messages to a new language or upgrade an 2110 existing language, where do I start? 2111 2112 Always use the current CVS version of your language file. For a new langu age, start from english-iso-8859-1.inc.php. If you don't know how to get the CVS version, please ask one of the developers. 2113 Please note that we try not to use HTML entities like é in the tra nslations, since we define the right character set in the file. With HTM L entities, the text on JavaScript messages would not display correctly. However there are some entities that need to be there, for quotes ,non- breakable spaces, ampersands, less than, greater than. 2114 You can then put your translations, as a zip file to avoid losing special characters, on the sourceforge.net translation tracker. 2115 It would be a good idea to subscribe to the phpmyadmin-translators mailin g list, because this is where we ask for translations of new messages. 2116 2117 [7.3] I would like to help out with the development of phpMyAdmin. How 2118 should I proceed? 2119 2120 The following method is preferred for new developers: 2121 1. fetch the current CVS tree over anonymous CVS: 2122 cvs 2123 -d:pserver:anonymous@cvs.phpmyadmin.sourceforge.net:/cvsroot/phpmyadmin 2124 login 2125 [Password: simply press the Enter key] 2126 cvs -z3 2127 -d:pserver:anonymous@cvs.phpmyadmin.sourceforge.net:/cvsroot/phpmyadmin 2128 checkout phpMyAdmin 2129 [This will create a new sub-directory named phpMyAdmin] 2130 2. add your stuff 2131 3. put the modified files (tar'ed and gzip'ed) inside the patch tracker of the phpMyAdmin SourceForge account. 2132 2133 Write access to the CVS tree is granted only to experienced developers wh o have already contributed something useful to phpMyAdmin. 2134 Also, have a look at the Developers section. 2135 2136 [8. Security ] 2137 2138 [8.1] Security alert, dated 2003-06-18. 2139 2140 Last update of this FAQ: 2003-07-22. 2141 The phpMyAdmin development team received notice of this security alert: h ttp://www.securityfocus.com/archive/1/325641. 2142 The team regrets that the author did not communicate with us before sendi ng this alert. However, here is our current reply to the points mentionn ed: 2143 * "Directory transversal attack" 2144 This problem had been fixed in version 2.5.0, even if the author reports 2145 the 2.5.2 development version as vulnerable, which we could not 2146 reproduce. 2147 * "Remote local file retrieving" 2148 This is a misleading title, as the author tells in his text: "Note that 2149 you can't request files ( only dirs )". 2150 * "Remote internal directory listing" 2151 It was possible to retrieve the list of phpMyAdmin's directory (which we 2152 doubt can cause any damage), but we fixed this in the 2.5.2 version. 2153 * "XSS and Path disclosures" 2154 Most of the XSS problems have been fixed in version 2.5.0. The rest have 2155 been fixed in the 2.5.2 version. 2156 We believe that the Path disclosures problems have also been fixed in 2157 version 2.5.2. 2158 * "Information encoding weakness" 2159 We believe that an exploit for this weakness would be difficult to 2160 achieve. However version 2.5.2 now encrypts the password with the 2161 well-known blowfish algorithm. 2162 2163 [8.2] Security alert, dated 2004-06-29. 2164 2165 Last update of this FAQ: 2004-06-30. 2166 The phpMyAdmin development team received notice of this security alert: h ttp://securityfocus.com/archive/1/367486/2004-06-26/2004-07-02/0 2167 We would like to put emphasis on the disappointment we feel when a bugrep orter does not contact the authors of a software first, before posting a ny exploits. The common way to report this, is to give the developers a reasonable amount of time to respond to an exploit before it is made pub lic. 2168 We acknowledge that phpMyAdmin versions 2.5.1 to 2.5.7 are vulnerable to this problem, if each of the following conditions are met: 2169 * The Web server hosting phpMyAdmin is not running in safe mode. 2170 * In config.inc.php, $cfg['LeftFrameLight'] is set to FALSE (the defaul t value of this parameter is TRUE). 2171 * There is no firewall blocking requests from the Web server to the att acking host. 2172 2173 Version 2.5.7-pl1 was released with a fix for this vulnerability. 2174 2175 Developers Information 2176 2177 phpMyAdmin is Open Source, so you're invited to contribute to it. Many gr eat features have been written by other people and you too can help to m ake phpMyAdmin a useful tool. 2178 2179 If you're planning to contribute source, please read the following inform ation: 2180 * All files include header.inc.php (layout), libraries/common.lib.php ( common functions) and config.inc.php. 2181 Only configuration data should go in config.inc.php. Please keep it free 2182 from other code. 2183 Commonly used functions should be added to libraries/common.lib.php and 2184 more specific ones may be added within a library stored into the 2185 libraries sub-directory. 2186 * Obviously, you're free to use whatever coding style you want. But ple ase try to keep your code as simple as possible: beginners are using 2187 phpMyAdmin as an example application. 2188 As far as possible, we want the scripts to be XHTML1.0 and CSS2 2189 compliant on one hand, they fit the PEAR coding standards on the other 2190 hand. Please pay attention to this. 2191 * Please try to keep up the file-naming conventions. Table-related stuf f goes to tbl_*.php, db-related code to db_*.php, server-related tools 2192 to server_*.php and so on. 2193 * Please don't use verbose strings in your code, instead add the string (at least) to english-iso-8859-1.inc.php and print() it out. 2194 * If you want to be really helpful, write an entry for the ChangeLog. 2195 * The DBG extension (PHP Debugger DBG) is now supported by phpMyAdmin f or developers to better debug and profile their code. 2196 Please see the $cfg['DBG']* configuration options for more information. 2197 This is in memoriam of the Space Shuttle Columbia (STS-107) which was 2198 lost during its re-entry into Earth's atmosphere and in memory of the 2199 brave men and women who gave their lives for the people of Earth. 2200 2201 Credits 2202 2203 2204 phpMyAdmin - Credits 2205 ==================== 2206 2207 CREDITS, in chronological order 2208 ------------------------------- 2209 2210 - Tobias Ratschiller <tobias_at_ratschiller.com> 2211 * creator of the phpmyadmin project 2212 * maintainer from 1998 to summer 2000 2213 2214 - Marc Delisle <DelislMa_at_CollegeSherbrooke.qc.ca> 2215 * multi-language version 2216 * various fixes and improvements 2217 * SQL analyser (most of it) 2218 * current project maintainer 2219 2220 - Olivier Müller <om_at_omnis.ch> 2221 * started SourceForge phpMyAdmin project in March 2001 2222 * sync'ed different existing CVS trees with new features and bugfixes 2223 * multi-language improvements, dynamic language selection 2224 * current project maintainer 2225 * many bugfixes and improvements 2226 2227 - Loïc Chapeaux <lolo_at_phpheaven.net> 2228 * rewrote and optimized javascript, DHTML and DOM stuff 2229 * rewrote the scripts so they fit the PEAR coding standards and 2230 generate XHTML1.0 and CSS2 compliant codes 2231 * improved the language detection system 2232 * many bugfixes and improvements 2233 2234 - Robin Johnson <robbat2_at_users.sourceforge.net> 2235 * database maintenance controls 2236 * table type code 2237 * Host authentication IP Allow/Deny 2238 * DB-based configuration (Not completed) 2239 * SQL parser and pretty-printer 2240 * SQL validator 2241 * many bugfixes and improvements 2242 2243 - Armel Fauveau <armel.fauveau_at_globalis-ms.com> 2244 * bookmarks feature 2245 * multiple dump feature 2246 * gzip dump feature 2247 * zip dump feature 2248 2249 - Geert Lund <glund_at_silversoft.dk> 2250 * various fixes 2251 * moderator of the phpMyAdmin users forum at phpwizard.net 2252 2253 - Korakot Chaovavanich <korakot_at_iname.com> 2254 * "insert as new row" feature 2255 2256 - Pete Kelly <webmaster_at_trafficg.com> 2257 * rewrote and fix dump code 2258 * bugfixes 2259 2260 - Steve Alberty <alberty_at_neptunlabs.de> 2261 * rewrote dump code for PHP4 2262 * mySQL table statistics 2263 * bugfixes 2264 2265 - Benjamin Gandon <gandon_at_isia.cma.fr> 2266 * main author of the version 2.1.0.1 2267 * bugfixes 2268 2269 - Alexander M. Turek <me_at_derrabus.de> 2270 * MySQL 4.0 / 4.1 / 5.0 compatibility 2271 * abstract database interface (PMA_DBI) with MySQLi support 2272 * privileges administration 2273 * XML exports 2274 * various features and fixes 2275 * German language file updates 2276 2277 - Mike Beck <mike.beck_at_web.de> 2278 * automatic joins in QBE 2279 * links column in printview 2280 * Relation view 2281 2282 - Michal ÄŒihaÅ™ <michal_at_cihar.com> 2283 * enhanced index creation/display feature 2284 * feature to use a different charset for HTML than for MySQL 2285 * improvements of export feature 2286 * various features and fixes 2287 * Czech language file updates 2288 2289 - Christophe Gesché from the "MySQL Form Generator for PHPMyAdmin" 2290 (http://sourceforge.net/projects/phpmysqlformgen/) 2291 * suggested the patch for multiple table printviews 2292 2293 - Garvin Hicking <me_at_supergarv.de> 2294 * built the patch for vertical display of table rows 2295 * built the Javascript based Query window + SQL history 2296 * Improvement of column/db comments 2297 * (MIME)-Transformations for columns 2298 * Use custom alias names for Databases in left frame 2299 * hierarchical/nested table display 2300 * PDF-scratchboard for WYSIWYG-distribution of PDF relations 2301 * new icon sets 2302 * vertical display of column properties page 2303 * some bugfixes, features, support, German language additions 2304 2305 - Yukihiro Kawada <kawada_at_den.fujifilm.co.jp> 2306 * japanese kanji encoding conversion feature 2307 2308 - Piotr Roszatycki <d3xter_at_users.sourceforge.net> and Dan Wilson 2309 * the Cookie authentication mode 2310 2311 - Axel Sander <n8falke_at_users.sourceforge.net> 2312 * table relation-links feature 2313 2314 - Maxime Delorme <delorme.maxime_at_free.fr> 2315 * PDF schema output, thanks also to Olivier Plathey for the 2316 "FPDF" library (see http://www.fpdf.org/) and Steven Wittens 2317 for the "UFPDF" library (see http://www.acko.net/node/56). 2318 2319 - Olof Edlund <olof.edlund_at_upright.se> 2320 * SQL validator server 2321 2322 - Ivan R. Lanin <ivanlanin_at_users.sourceforge.net> 2323 * phpMyAdmin logo (until June 2004) 2324 2325 - Mike Cochrane <mike_at_graftonhall.co.nz> 2326 * blowfish library from the Horde project 2327 2328 - Marcel Tschopp <ne0x_at_users.sourceforge.net> 2329 * mysqli support 2330 * many bugfixes and improvements 2331 2332 - Michael Keck <mkkeck_at_users.sourceforge.net> 2333 * redesign for 2.6.0 2334 * phpMyAdmin sailboat logo (June 2004) 2335 2336 - Mathias Landhäußer 2337 * Representation at conferences 2338 2339 And also to the following people who have contributed minor changes, 2340 enhancements, bugfixes or support for a new language since version 2.1.0: 2341 2342 Bora Alioglu, Ricardo ?, Sven-Erik Andersen, Alessandro Astarita, 2343 Péter Bakondy, Borges Botelho, Olivier Bussier, Neil Darlow, 2344 Mats Engstrom, Ian Davidson, Laurent Dhima, Kristof Hamann, Thomas Kläger, 2345 Lubos Klokner, Martin Marconcini, Girish Nair, David Nordenberg, Andreas Pauley, 2346 Bernard M. Piller, Laurent Haas, "Sakamoto", Yuval Sarna, 2347 www.securereality.com.au, Alexis Soulard, Alvar Soome, Siu Sun, Peter Svec, 2348 Michael Tacelosky, Rachim Tamsjadi, Kositer Uros, 2349 LuÃs V., Martijn W. van der Lee, 2350 Algis Vainauskas, Daniel Villanueva, Vinay, Ignacio Vazquez-Abrams, Chee Wai, 2351 Jakub Wilk, Thomas Michael Winningham, Vilius Zigmantas, "Manuzhai". 2352 2353 2354 Original Credits of Version 2.1.0 2355 --------------------------------- 2356 2357 This work is based on Peter Kuppelwieser's MySQL-Webadmin. It was his idea 2358 to create a web-based interface to MySQL using PHP3. Although I have not 2359 used any of his source-code, there are some concepts I've borrowed from 2360 him. phpMyAdmin was created because Peter told me he wasn't going to 2361 further develop his (great) tool. 2362 Thanks go to 2363 - Amalesh Kempf <ak-lsml_at_living-source.com> who contributed the 2364 code for the check when dropping a table or database. He also suggested 2365 that you should be able to specify the primary key on tbl_create.php3. To 2366 version 1.1.1 he contributed the ldi_*.php3-set (Import text-files) as 2367 well as a bug-report. Plus many smaller improvements. 2368 - Jan Legenhausen <jan_at_nrw.net>: He made many of the changes that 2369 were introduced in 1.3.0 (including quite significant ones like the 2370 authentication). For 1.4.1 he enhanced the table-dump feature. Plus 2371 bug-fixes and help. 2372 - Marc Delisle <DelislMa_at_CollegeSherbrooke.qc.ca> made phpMyAdmin 2373 language-independent by outsourcing the strings to a separate file. He 2374 also contributed the French translation. 2375 - Alexandr Bravo <abravo_at_hq.admiral.ru> who contributed 2376 tbl_select.php3, a feature to display only some fields from a table. 2377 - Chris Jackson <chrisj_at_ctel.net> added support for MySQL 2378 functions in tbl_change.php3. He also added the 2379 "Query by Example" feature in 2.0. 2380 - Dave Walton <walton_at_nordicdms.com> added support for multiple 2381 servers and is a regular contributor for bug-fixes. 2382 - Gabriel Ash <ga244_at_is8.nyu.edu> contributed the random access 2383 features for 2.0.6. 2384 The following people have contributed minor changes, enhancements, bugfixes 2385 or support for a new language: 2386 Jim Kraai, Jordi Bruguera, Miquel Obrador, Geert Lund, Thomas Kleemann, 2387 Alexander Leidinger, Kiko Albiol, Daniel C. Chao, Pavel Piankov, 2388 Sascha Kettler, Joe Pruett, Renato Lins, Mark Kronsbein, Jannis Hermanns, 2389 G. Wieggers. 2390 2391 And thanks to everyone else who sent me email with suggestions, bug-reports 2392 and or just some feedback. 2393 2394 Valid XHTML 1.0! Valid CSS! 2395 ______________________________________________________________________ 2396 2397 Top - Requirements - Introduction - Installation - Configuration 2398 Transformations - FAQ - Developers - Credits - Translators 2399 ______________________________________________________________________ 2400 2401 phpMyAdmin 2.6.1-pl3 Documentation 2402 2403 * SourceForge phpMyAdmin project page [ http://www.phpmyadmin.net/ ] 2404 * Local documents: 2405 + Version history: ChangeLog 2406 + General notes: README 2407 + License: LICENSE 2408 * Documentation version: $Id: Documentation.html,v 2.103.2.5 2005/03/03 20:54:24 rabus Exp $ 2409 2410 Requirements 2411 2412 * PHP 2413 + You need PHP 4.1.0 or newer (*) 2414 + If you want to display inline thumbnails of JPEGs with the original 2415 aspect ratio, you also need GD2 support in PHP 2416 + Starting with phpMyAdmin 2.6.1, MIME-based transformations that use 2417 an external program need PHP 4.3.0 or newer 2418 * MySQL 3.23.32 or newer (details); 2419 * Not really a requirement but a strong suggestion: if you are using th e "cookie" authentication method, having the mcrypt PHP extension on 2420 your web server accelerates not only the login phase but every other 2421 action that you do in phpMyAdmin. 2422 * a web-browser (doh!). 2423 2424 Introduction 2425 2426 phpMyAdmin can manage a whole MySQL server (needs a super-user) as well a s a single database. To accomplish the latter you'll need a properly set up MySQL user who can read/write only the desired database. It's up to you to look up the appropriate part in the MySQL manual. 2427 Currently phpMyAdmin can: 2428 * create and drop databases 2429 * create, copy, drop, rename and alter tables 2430 * do table maintenance 2431 * delete, edit and add fields 2432 * execute any SQL-statement, even batch-queries 2433 * manage keys on fields 2434 * load text files into tables 2435 * create (*) and read dumps of tables 2436 * export (*) data to CSV, XML and Latex formats 2437 * administer multiple servers 2438 * manage MySQL users and privileges 2439 * check referential integrity in MyISAM tables 2440 * using Query-by-example (QBE), create complex queries automatically co nnecting required tables 2441 * create PDF graphics of your Database layout 2442 * search globally in a database or a subset of it 2443 * transform stored data into any format using a set of predefined funct ions, like displaying BLOB-data as image or download-link or ... 2444 * support InnoDB tables and foreign keys (see FAQ 3.6) 2445 * support mysqli, the improved MySQL extension (see FAQ 1.17) 2446 * communicate in 47 different languages 2447 2448 (*) phpMyAdmin can compress (Zip, GZip -RFC 1952- or Bzip2 formats) dump s and CSV exports if you use PHP4 >= 4.0.4 with Zlib support (--with-zli b) and/or Bzip2 support (--with-bz2). 2449 2450 Installation 2451 2452 NOTE: phpMyAdmin does not apply any special security methods to the MySQL database server. It is still the system administrator's job to grant pe rmissions on the MySQL databases properly. phpMyAdmin's "Privileges" pag e can be used for this. 2453 2454 Warning for Mac users:if you are on a MacOS version before OS X, StuffIt unstuffs with Mac formats. 2455 So you'll have to resave as in BBEdit to Unix style ALL phpMyAdmin script s before uploading them to your server, as PHP seems not to like Mac-sty le end of lines character ("\r"). 2456 2457 Quick Install 2458 2459 1. Untar or unzip the distribution (be sure to unzip the subdirectories) : tar -xzvf phpMyAdmin_x.x.x.tar.gz in your webserver's document root. 2460 If you don't have direct access to your document root, put the files in 2461 a directory on your local machine, and, after step 3, transfer the 2462 directory on your web server using, for example, ftp. 2463 2. Ensure that all the scripts have the appropriate owner (if PHP is run ning in safe mode, having some scripts with an owner different from the 2464 owner of other scripts will be a problem). See FAQ 4.2 for suggestions. 2465 3. Open the file config.inc.php in your favorite editor and change the v alues for host, user, password and authentication mode to fit your 2466 environment. Here, "host" means the MySQL server. Also insert the 2467 correct value for $cfg['PmaAbsoluteUri']. Have a look at Configuration 2468 section for an explanation of all values. Please also read the 2469 remaining of this Installation section for information about 2470 authentication modes and the linked-tables infrastructure. 2471 4. It is recommended that you protect the directory in which you install ed phpMyAdmin (unless it's on a closed intranet, or you wish to use 2472 HTTP or cookie authentication), for example with HTTP-AUTH (in a 2473 .htaccess file). See the multi-user sub-section of the FAQ for 2474 additional information, especially FAQ 4.4. 2475 5. Open the file <www.your-host.com>/<your-install-dir>/index.php in you r browser. phpMyAdmin should now display a welcome screen and your 2476 databases, or a login dialog if using HTTP or cookie authentication 2477 mode. 2478 2479 Linked-tables infrastructure 2480 2481 For a whole set of new features (bookmarks, comments, SQL-history, PDF-ge neration, field contents transformation, etc.) you need to create a set of special tables. Those tables can be located in your own database, or in a central database for a multi-user installation (this database would then be accessed by the controluser, so no other user should have right s to it). 2482 Please look at your scripts/ directory, where you should find a file call ed create_tables.sql. (If you are using a Windows server, pay special at tention to FAQ 1.23). 2483 If your MySQL server's version is 4.1.2 or later, please use create_table s_mysql_4_1_2+.sql instead, for a new installation. 2484 If you already had this infrastructure and upgraded to MySQL 4.1.2 or lat er, please use upgrade_tables_mysql_4_1_2+.sql. 2485 You can use your phpMyAdmin to create the tables for you. Please be aware that you may need special (administrator) privileges to create the data base and tables, and that the script may need some tuning, depending on the database name. 2486 After having imported the create_tables.sql file, you should specify the table names in your config.inc.php file. The directives used for that ca n be found in the Configuration section. You will also need to have a co ntroluser with the proper rights to those tables (see section Using auth entication modes below). 2487 2488 Upgrading from an older version 2489 2490 * You can safely copy your older config.inc.php over a new one, if you can live with default values for possible new parameters (you can check 2491 release notes to see what new features were added). This compatibility 2492 will stay for long time, current version supports importing config files 2493 from 2.2 and maybe even older (nobody has tried that). 2494 2495 Using authentication modes 2496 2497 * HTTP and cookie authentication modes are recommended in a multi-user environment where you want to give users access to their own database 2498 and don't want them to play around with others. 2499 Nevertheless be aware that MS Internet Explorer seems to be really buggy 2500 about cookies, at least till version 6. And PHP 4.1.1 is also a bit 2501 buggy in this area! 2502 Even in a single-user environment, you might prefer to use HTTP or 2503 cookie mode so that your user/password pair are not in clear in the 2504 configuration file. 2505 * HTTP and cookie authentication modes are more secure: the MySQL login information does not need to be set in the phpMyAdmin configuration 2506 file (except possibly for the controluser). 2507 However, keep in mind that the password travels in plain text, unless 2508 you are using the HTTPS protocol. 2509 In cookie mode, the password is stored, encrypted with the blowfish 2510 algorithm, in a temporary cookie. 2511 * Note: starting with phpMyAdmin 2.6.1, configuring the controluser to enable HTTP and cookie authentication applies only to MySQL servers 2512 older than 4.1.2. 2513 For 'HTTP' and 'cookie' modes, phpMyAdmin needs a controluser that has 2514 only the SELECT privilege on the mysql.user (all columns except 2515 "Password"), mysql.db (all columns), mysql.host (all columns) and 2516 mysql.tables_priv (all columns except "Grantor" & "Timestamp") tables. 2517 You must specify the details for the controluser in the config.inc.php 2518 file under the $cfg['Servers'][$i]['controluser']& 2519 $cfg['Servers'][$i]['controlpass'] settings. 2520 The following example assumes you want to use pma as the controluser and 2521 pmapass as the controlpass, but this is only an example: use something 2522 else in your file! 2523 Of course you have to replace localhost by the webserver's host if it's 2524 not the same as the MySQL server's one. 2525 2526 GRANT USAGE ON mysql.* TO 'pma'@'localhost' IDENTIFIED BY 'pmapass'; 2527 GRANT SELECT ( 2528 Host, User, Select_priv, Insert_priv, Update_priv, Delete_priv, 2529 Create_priv, Drop_priv, Reload_priv, Shutdown_priv, Process_priv, 2530 File_priv, Grant_priv, References_priv, Index_priv, Alter_priv, 2531 Show_db_priv, Super_priv, Create_tmp_table_priv, Lock_tables_priv, 2532 Execute_priv, Repl_slave_priv, Repl_client_priv 2533 ) ON mysql.user TO 'pma'@'localhost'; 2534 GRANT SELECT ON mysql.db TO 'pma'@'localhost'; 2535 GRANT SELECT ON mysql.host TO 'pma'@'localhost'; 2536 GRANT SELECT (Host, Db, User, Table_name, Table_priv, Column_priv) 2537 ON mysql.tables_priv TO 'pma'@'localhost'; 2538 2539 If you are using an old MySQL version (below 4.0.2), please replace the 2540 first GRANT SELECT query by this one: 2541 2542 GRANT SELECT ( 2543 Host, User, Select_priv, Insert_priv, Update_priv, Delete_priv, 2544 Create_priv, Drop_priv, Reload_priv, Shutdown_priv, Process_priv, 2545 File_priv, Grant_priv, References_priv, Index_priv, Alter_priv 2546 ) ON mysql.user TO 'pma'@'localhost'; 2547 2548 ... and if you want to use the many new relation and bookmark features: 2549 2550 GRANT SELECT, INSERT, UPDATE, DELETE ON <pma_db>.* TO 'pma'@'localhost'; 2551 2552 (this of course requires you to have a special DB for phpMyAdmin, the 2553 contents will be explained later) 2554 Of course, the above queries only work if your MySQL version supports 2555 the GRANT command. This is the case since 3.22.11. 2556 * Then each of the true users should be granted a set of privileges on a set of particular databases. Normally you shouldn't give global 2557 privileges to an ordinary user, unless you understand the impact of 2558 those privileges (for example, you are creating a superuser). 2559 For example, to grant the user real_user with all privileges on the 2560 database user_base: 2561 GRANT ALL PRIVILEGES ON user_base.* TO 'real_user'@localhost 2562 IDENTIFIED BY 'real_password'; 2563 What the user may now do is controlled entirely by the MySQL user 2564 management system. 2565 With HTTP or cookie authentication mode, you don't need to fill the 2566 user/password fields inside the $cfg['Servers'] array. 2567 2568 'http' authentication mode 2569 2570 * Was called 'advanced' in versions before 2.2.3. 2571 * Introduced in 1.3.0, it uses Basic HTTP authentication method and all ows you to login as any valid MySQL user. 2572 * Is supported with PHP running as an Apache module. For IIS (ISAPI) su pport using CGI PHP, see FAQ 1.32. 2573 * See also FAQ 4.4 about not using the .htaccess mechanism along with ' http' authentication mode. 2574 2575 'cookie' authentication mode 2576 2577 * You can use this method as a replacement for the HTTP authentication (for example, if you're running IIS). 2578 * Obviously, the user must enable cookies in the browser. 2579 * With this mode, the user can truly logout of phpMyAdmin and login bac k with the same username. 2580 * If you want to login to arbitrary server see $cfg['AllowArbitraryServ er'] directive. 2581 * See also the requirements section for a way to improve the interface speed while using this mode. 2582 2583 'config' authentication mode 2584 2585 * This mode is the less secure one because it requires you to fill the $cfg['Servers'][$i]['user'] and $cfg['Servers'][$i]['password'] fields. 2586 But you don't need to setup a "controluser" here: using the 2587 $cfg['Servers'][$i]['only_db'] might be enough. 2588 * In the ISP FAQ section, there is an entry explaining how to protect y our configuration file. 2589 * For additional security in this mode, you may wish to consider the Ho st authentication $cfg['Servers'][$i]['AllowDeny']['order'] and 2590 $cfg['Servers'][$i]['AllowDeny']['rules'] configuration directives. 2591 2592 Configuration 2593 2594 Warning for Mac users: PHP seems not to like Mac end of lines character ( "\r"). So ensure you choose the option that allows to use the *nix end o f line character ("\n") in your text editor before registering a script you have modified. 2595 2596 Configuration note: Almost all configurable data is placed in config.inc. php. The parameters which relate to design (like colors) are placed in t hemes/themename/layout.inc.php. You might also want to modify config.foo ter.inc.php and config.header.inc.php files to add your site specific co de to be included on start and end of each page. 2597 2598 $cfg['PmaAbsoluteUri'] string 2599 Sets here the complete URL (with full path) to your phpMyAdmin 2600 version. E.g. 2601 http://www.your_web.net/path_to_your_phpMyAdmin_directory/. 2602 phpMyAdmin needs this setting, because of requirements of the HTTP 2603 protocol, explained in RFC2616, section 14.30. 2604 Don't forget the slash at the end of your URL. The URL must contain 2605 characters that are valid for a URL, and on some servers, the path is 2606 case-sensitive. 2607 Starting with version 2.3.0, you can try to leave this parameter 2608 empty, because the program tries to auto-detect its proper value. 2609 Additional details are in the configuration file. 2610 2611 $cfg['PmaAbsoluteUri_DisableWarning'] boolean 2612 By default, when you leave $cfg['PmaAbsoluteUri'] empty, and the 2613 system detects your absolute URI automatically, we display a warning 2614 to remind you. If you have tested the automatic detection, and it 2615 works perfectly for your setup, then you can set this variable to 2616 squelch the warning. 2617 2618 $cfg['PmaNoRelation_DisableWarning'] boolean 2619 Starting with version 2.3.0 phpMyAdmin offers a lot of features to 2620 work with master / foreign - tables (see 2621 $cfg['Servers'][$i]['pmadb']). 2622 If you tried to set this up and it does not work for you, have a look 2623 on the "Structure" page of one database where you would like to use 2624 it. You will find a link that will analyze why those features have 2625 been disabled. 2626 If you do not want to use those features set this variable to TRUE to 2627 stop this message from appearing. 2628 2629 $cfg['blowfish_secret'] string 2630 Starting with version 2.5.2, the 'cookie' auth_type uses blowfish 2631 algorithm to encrypt the password. 2632 If you are using the 'cookie' auth_type, enter here a random 2633 passphrase of your choice. It will be used internally by the blowfish 2634 algorithm: you won't be prompted for this passphrase. The maximum 2635 number of characters for this parameter seems to be 46. 2636 2637 $cfg['Servers'] array 2638 Since version 1.4.2, phpMyAdmin supports the administration of 2639 multiple MySQL servers. Therefore, a $cfg['Servers']-array has been 2640 added which contains the login information for the different servers. 2641 The first $cfg['Servers'][$i]['host'] contains the hostname of the 2642 first server, the second $cfg['Servers'][$i]['host'] the hostname of 2643 the second server, etc. If you have only one server to administer, 2644 simply leave free the hostname of the other $cfg['Server']-entries. 2645 2646 $cfg['Servers'][$i]['host'] string 2647 The hostname or IP address of your $i-th MySQL-server. E.g. 2648 localhost. 2649 2650 $cfg['Servers'][$i]['port'] string 2651 The port-number of your $i-th MySQL-server. Default is 3306 (leave 2652 blank). If you use "localhost" as the hostname, MySQL ignores this 2653 port number and connects with the socket, so if you want to connect 2654 to a port different from the default port, use "127.0.0.1" or the 2655 real hostname in $cfg['Servers'][$i]['host']. 2656 2657 $cfg['Servers'][$i]['socket'] string 2658 The path to the socket to use. Leave blank for default. 2659 To use the socket feature you must run PHP 3.0.10 or more. 2660 2661 $cfg['Servers'][$i]['connect_type'] string 2662 What type connection to use with the MySQL server. Your options are 2663 'socket' & 'tcp'. It defaults to 'tcp' as that is nearly guaranteed 2664 to be available on all MySQL servers, while sockets are not supported 2665 on some platforms. 2666 To use the socket mode, your MySQL server must be on the same machine 2667 as the Web server. 2668 2669 $cfg['Servers'][$i]['extension'] string 2670 What php MySQL extension to use for the connection. Valid options 2671 are: 2672 mysql : The classic MySQL extension. This is the recommended and 2673 default method at this time. 2674 mysqli : The improved MySQL extension. This extension became 2675 available with php 5.0.0 and is the recommended way to connect to a 2676 server running MySQL 4.1.x. 2677 Note: phpMyAdmin's MySQL 4.1 support is experimental! 2678 2679 $cfg['Servers'][$i]['compress'] boolean 2680 Whether to use a compressed protocol for the MySQL server connection 2681 or not (experimental). 2682 This feature requires PHP >= 4.3.0. 2683 2684 $cfg['Servers'][$i]['controluser'] string 2685 $cfg['Servers'][$i]['controlpass'] string 2686 Note: starting with phpMyAdmin 2.6.1, configuring the controluser to 2687 enable HTTP and cookie authentication applies only to MySQL servers 2688 older than 4.1.2. 2689 This special account is used for 2 distinct purposes: to make 2690 possible all relational features (see $cfg['Servers'][$i]['pmadb']) 2691 and, for a MySQL server older than 4.1.2, to enable a multi-user 2692 installation (http or cookie authentication mode). 2693 When using HTTP or cookie authentication modes (or 'config' 2694 authentication mode since phpMyAdmin 2.2.1), you need to supply the 2695 details of a MySQL account that has SELECT privilege on the 2696 mysql.user (all columns except "Password"), mysql.db (all columns) & 2697 mysql.tables_priv (all columns except "Grantor" & "Timestamp") 2698 tables. This account is used to check what databases the user will 2699 see at login. 2700 Please see the install section on "Using authentication modes" for 2701 more information. 2702 Note that if you try login to phpMyAdmin with this "controluser", you 2703 could get some errors, depending the exact privileges you gave to the 2704 "controluser". phpMyAdmin does not support a direct login with the 2705 "controluser". 2706 In phpMyAdmin versions before 2.2.5, those were called 2707 "stduser/stdpass". 2708 2709 $cfg['Servers'][$i]['auth_type'] string ['http'|'cookie'|'config'] 2710 Whether config or cookie or http authentication should be used for 2711 this server. 2712 2713 + 'config' authentication ($auth_type = 'config') is the plain old 2714 way: username and password are stored in config.inc.php. 2715 + 'cookie' authentication mode ($auth_type = 'cookie') as introduced 2716 in 2.2.3 allows you to log in as any valid MySQL user with the help 2717 of cookies. Log name and password are stored in cookies during the 2718 session and password is deleted when it ends. This can also allow 2719 you to login in arbitrary server if $cfg['AllowArbitraryServer'] 2720 enabled. 2721 + 'http' authentication (was called 'advanced' in older versions) 2722 ($auth_type = 'http') as introduced in 1.3.0 allows you to log in 2723 as any valid MySQL user via HTTP-Auth. 2724 2725 Please see the install section on "Using authentication modes" for 2726 more information. 2727 2728 $cfg['Servers'][$i]['user'] string 2729 $cfg['Servers'][$i]['password'] string 2730 The user/password-pair which phpMyAdmin will use to connect to this 2731 MySQL-server. This user/password pair is not needed when HTTP or 2732 cookie authentication is used, and should be empty. 2733 2734 $cfg['Servers'][$i]['only_db'] string or array 2735 If set to a (an array of) database name(s), only this (these) 2736 database(s) will be shown to the user. Since phpMyAdmin 2.2.1, 2737 this/these database(s) name(s) may contain MySQL wildcards characters 2738 ("_" and "%"): if you want to use literal instances of these 2739 characters, escape them (I.E. use 'my\_db' and not 'my_db'). 2740 This setting is an efficient way to lower the server load since the 2741 latter does not need to send MySQL requests to build the available 2742 database list. But it does not replace the privileges rules of the 2743 MySQL database server. If set, it just means only these databases 2744 will be displayed but not that all other databases can't be used. 2745 An example of using more that one database: 2746 $cfg['Servers'][$i]['only_db'] = array('db1', 'db2'); 2747 As of phpMyAdmin 2.5.5 the order inside the array is used for sorting 2748 the databases in the left frame, so that you can individually arrange 2749 your databases. 2750 If you want to have certain databases at the top, but don't care 2751 about the others, you do not need to specify all other databases. 2752 Use: $cfg['Servers'][$i]['only_db'] = array('db3', 'db4', '*'); 2753 instead to tell phpMyAdmin that it should display db3 and db4 on top, 2754 and the rest in alphabetic order. 2755 2756 $cfg['Servers'][$i]['verbose'] string 2757 Only useful when using phpMyAdmin with multiple server entries. If 2758 set, this string will be displayed instead of the hostname in the 2759 pull-down menu on the main page. This can be useful if you want to 2760 show only certain databases on your system, for example. 2761 2762 $cfg['Servers'][$i]['pmadb'] string 2763 The name of the database containing the linked-tables infrastructure. 2764 See the Linked-tables infrastructure section in this document to see 2765 the benefits of this infrastructure, and for a quick way of creating 2766 this database and the needed tables. 2767 If you are the only user of this phpMyAdmin installation, you can use 2768 your current database to store those special tables; in this case, 2769 just put your current database name in $cfg['Servers'][$i]['pmadb']. 2770 For a multi-user installation, set this parameter to the name of your 2771 central database containing the linked-tables infrastructure. 2772 2773 $cfg['Servers'][$i]['bookmarktable'] string 2774 Since release 2.2.0 phpMyAdmin allows to bookmark queries. This can 2775 be useful for queries you often run. 2776 To allow the usage of this functionality: 2777 2778 + set up pmadb and the linked-tables infrastructure 2779 + enter the table name in $cfg['Servers'][$i]['bookmarktable'] 2780 2781 $cfg['Servers'][$i]['relation'] string 2782 Since release 2.2.4 you can describe, in a special 'relation' table, 2783 which field is a key in another table (a foreign key). phpMyAdmin 2784 currently uses this to 2785 2786 + make clickable, when you browse the master table, the data values 2787 that point to the foreign table; 2788 + display in an optional tool-tip the "display field" when browsing 2789 the master table, if you move the mouse to a column containing a 2790 foreign key (use also the 'table_info' table); 2791 (see FAQ 6.7) 2792 + in edit/insert mode, display a drop-down list of possible foreign 2793 keys (key value and "display field" are shown) 2794 (see FAQ 6.21) 2795 + display links on the table properties page, to check referential 2796 integrity (display missing foreign keys) for each described key; 2797 + in query-by-example, create automatic joins (see FAQ 6.6) 2798 + enable you to get a PDF schema of your database (also uses the 2799 table_coords table). 2800 2801 The keys can be numeric or character. 2802 To allow the usage of this functionality: 2803 2804 + set up pmadb and the linked-tables infrastructure 2805 + put the relation table name in $cfg['Servers'][$i]['relation'] 2806 + now as normal user open phpMyAdmin and for each one of your tables 2807 where you want to use this feature, click "Structure/Relation 2808 view/" and choose foreign fields. 2809 2810 Please note that in the current version, master_db must be the same 2811 as foreign_db. Those fields have been put in future development of 2812 the cross-db relations. 2813 2814 $cfg['Servers'][$i]['table_info'] string 2815 Since release 2.3.0 you can describe, in a special 'table_info' 2816 table, which field is to be displayed as a tool-tip when moving the 2817 cursor over the corresponding key. 2818 This configuration variable will hold the name of this special table. 2819 To allow the usage of this functionality: 2820 2821 + set up pmadb and the linked-tables infrastructure 2822 + put the table name in $cfg['Servers'][$i]['table_info'] 2823 + then for each table where you want to use this feature, click 2824 "Structure/Relation view/Choose field to display" to choose the 2825 field. 2826 2827 Usage tip: Display field. 2828 2829 $cfg['Servers'][$i]['table_coords'] string 2830 $cfg['Servers'][$i]['pdf_pages'] string 2831 Since release 2.3.0 you can have phpMyAdmin create PDF pages showing 2832 the relations between your tables. To do this it needs two tables 2833 "pdf_pages" (storing information about the available PDF pages) and 2834 "table_coords" (storing coordinates where each table will be placed 2835 on a PDF schema output). 2836 You must be using the "relation" feature. 2837 To allow the usage of this functionality: 2838 2839 + set up pmadb and the linked-tables infrastructure 2840 + put the correct table names in $cfg['Servers'][$i]['table_coords'] 2841 and $cfg['Servers'][$i]['pdf_pages'] 2842 2843 Usage tips: PDF output. 2844 2845 $cfg['Servers'][$i]['column_info'] string 2846 Since release 2.3.0 you can store comments to describe each column 2847 for each table. These will then be shown on the "printview". 2848 Starting with release 2.5.0, comments are consequently used on the 2849 table property pages and table browse view, showing up as tool-tips 2850 above the column name (properties page) or embedded within the header 2851 of table in browse view. They can also be shown in a table dump. 2852 Please see the relevant configuration directives later on. 2853 Also new in release 2.5.0 is a MIME-transformation system which is 2854 also based on the following table structure. See Transformations for 2855 further information. To use the MIME-transformation system, your 2856 column_info table has to have the three new fields 'mimetype', 2857 'transformation', 'transformation_options'. 2858 To allow the usage of this functionality: 2859 2860 + set up pmadb and the linked-tables infrastructure 2861 + put the table name in $cfg['Servers'][$i]['column_info'] 2862 + to update your PRE-2.5.0 Column_comments Table use this: 2863 ALTER TABLE `pma_column_comments` 2864 ADD `mimetype` VARCHAR( 255 ) NOT NULL , 2865 ADD `transformation` VARCHAR( 255 ) NOT NULL , 2866 ADD `transformation_options` VARCHAR( 255 ) NOT NULL ; 2867 and remember that the Variable in config.inc.php has been renamed 2868 from 2869 $cfg['Servers'][$i]['column_comments'] to 2870 $cfg['Servers'][$i]['column_info'] 2871 2872 $cfg['Servers'][$i]['history'] string 2873 Since release 2.5.0 you can store your SQL history, which means all 2874 queries you entered manually into the phpMyAdmin interface. If you 2875 don't want to use a table- based history, you can use the 2876 JavaScript-based history. Using that, all your history items are 2877 deleted when closing the window. 2878 Using $cfg['QueryHistoryMax'] you can specify an amount of history 2879 items you want to have on hold. On every login, this list gets cut to 2880 the maximum amount. 2881 The query history is only available if you use the JavaScript-based 2882 query window, see $cfg['QueryFrame']. 2883 To allow the usage of this functionality: 2884 2885 + set up pmadb and the linked-tables infrastructure 2886 + put the table name in $cfg['Servers'][$i]['history'] 2887 2888 $cfg['Servers'][$i]['verbose_check'] boolean 2889 Because release 2.5.0 introduced the new MIME-transformation support, 2890 the column_info table got enhanced with three new fields. If the 2891 above variable is set to TRUE (default) phpMyAdmin will check if you 2892 have the latest table structure available. If not, it will emit a 2893 warning to the superuser. 2894 You can disable this checking behavior by setting the variable to 2895 false, which should offer a performance increase. 2896 Recommended to set to FALSE, when you are sure, your table structure 2897 is up to date. 2898 2899 $cfg['Servers'][$i]['AllowRoot'] boolean 2900 Whether to allow root access, This is just simplification of rules 2901 below. 2902 2903 $cfg['Servers'][$i]['AllowDeny']['order'] string 2904 If your rule order is empty, then IP authentication is disabled. 2905 If your rule order is set to 'deny,allow' then the system applies all 2906 deny rules followed by allow rules. Access is allowed by default. Any 2907 client which does not match a Deny command or does match an Allow 2908 command will be allowed access to the server. 2909 If your rule order is set to 'allow,deny' then the system applies all 2910 allow rules followed by deny rules. Access is denied by default. Any 2911 client which does not match an Allow directive or does match a Deny 2912 directive will be denied access to the server. 2913 If your rule order is set to 'explicit', the authentication is 2914 performed in a similar fashion to rule order 'deny,allow', with the 2915 added restriction that your host/username combination must be listed 2916 in the allow rules, and not listed in the deny rules. This is the 2917 most secure means of using Allow/Deny rules, and was available in 2918 Apache by specifying allow and deny rules without setting any order. 2919 2920 $cfg['Servers'][$i]['AllowDeny']['rules'] array of strings 2921 The general format for the rules is as such: 2922 <'allow' | 'deny'> <username> [from] <ipmask> 2923 If you wish to match all users, it is possible to use a '%' as a 2924 wildcard in the username field. 2925 There are a few shortcuts you can use in the ipmask field as well: 2926 'all' -> 0.0.0.0/0 2927 'localhost' -> 127.0.0.1/8 2928 Having an empty rule list is equivalent to either using 'allow % from 2929 all' if your rule order is set to 'deny,allow' or 'deny % from all' 2930 if your rule order is set to 'allow,deny' or 'explicit'. 2931 For the IP matching system, the following work: 2932 xxx.xxx.xxx.xxx (an exact IP address) 2933 xxx.xxx.xxx.[yyy-zzz] (an IP address range) 2934 xxx.xxx.xxx.xxx/nn (CIDR, Classless Inter-Domain Routing type IP 2935 addresses) 2936 But the following does not work: 2937 xxx.xxx.xxx.xx[yyy-zzz] (partial IP address range) 2938 2939 $cfg['ServerDefault'] integer 2940 If you have more than one server configured, you can set 2941 $cfg['ServerDefault'] to any one of them to autoconnect to that 2942 server when phpMyAdmin is started, or set it to 0 to be given a list 2943 of servers without logging in. 2944 If you have only one server configured, $cfg['ServerDefault'] MUST be 2945 set to that server. 2946 2947 $cfg['OBGzip'] string/boolean 2948 Defines whether to use GZip output buffering for increased speed in 2949 HTTP transfers. 2950 Set to true/false for enabling/disabling. When set to 'auto' 2951 (string), phpMyAdmin tries to enable output buffering and will 2952 automatically disable it, if your browser has some problems with 2953 buffering. IE6 with a certain patch is known to cause data corruption 2954 having enabled buffering. 2955 2956 $cfg['PersistentConnections'] boolean 2957 Whether persistent connections should be used or not (mysql_connect 2958 or mysql_pconnect). 2959 2960 $cfg['ExecTimeLimit'] integer [number of seconds] 2961 Set the number of seconds a script is allowed to run. If seconds is 2962 set to zero, no time limit is imposed. 2963 This setting is used while importing/exporting dump files but has no 2964 effect when PHP is running in safe mode. 2965 2966 $cfg['SkipLockedTables'] boolean 2967 Mark used tables and make it possible to show databases with locked 2968 tables (since 3.23.30). 2969 2970 $cfg['ShowSQL'] boolean 2971 Defines whether SQL-queries generated by phpMyAdmin should be 2972 displayed or not. 2973 2974 $cfg['AllowUserDropDatabase'] boolean 2975 Defines whether normal users (non-administrator) are allowed to 2976 delete their own database or not. If set as FALSE, the link "Drop 2977 Database" will not be shown, and even a "DROP DATABASE mydatabase" 2978 will be rejected. Quite practical for ISP's with many customers. 2979 2980 $cfg['Confirm'] boolean 2981 Whether a warning ("Are your really sure...") should be displayed 2982 when you're about to lose data. 2983 2984 $cfg['LoginCookieRecall'] boolean 2985 Define whether the previous login should be recalled or not in cookie 2986 authentication mode. 2987 2988 $cfg['UseDbSearch'] boolean 2989 Define whether the "search string inside database" is enabled or not. 2990 2991 $cfg['IgnoreMultiSubmitErrors'] boolean 2992 Define whether phpMyAdmin will continue executing a multi-query 2993 statement if one of the queries fails. Default is to abort execution. 2994 2995 $cfg['VerboseMultiSubmit'] boolean 2996 Define whether phpMyAdmin will output the results of each query of a 2997 multi-query statement embedded into the SQL output as inline 2998 comments. Defaults to TRUE. 2999 3000 $cfg['AllowArbitraryServer'] boolean 3001 If enabled allows you to login to arbitrary server using cookie auth. 3002 NOTE: Please use this carefully, as this may allow to access MySQL 3003 servers behind firewall where your http server is placed. 3004 3005 $cfg['LeftFrameLight'] boolean 3006 Defines whether to use select-based menu and display only the current 3007 tables in the left frame (smaller page). Only in Non-Lightmode you 3008 can use the feature to display nested folders using 3009 $cfg['LeftFrameTableSeparator'] 3010 3011 $cfg['LeftFrameTableSeparator'] string 3012 Defines a string to be used to nest table spaces. Defaults to '__'. 3013 This means if you have tables like 'first__second__third' this will 3014 be shown as a three-level hierarchie like: first > second > third. If 3015 set to FALSE or empty, the feature is disabled. NOTE: You shall not 3016 use this Separator in a table name at the beginning or end of a table 3017 name, or multiple times after another without any other characters in 3018 between. 3019 3020 $cfg['LeftFrameTableLevel'] string 3021 Defines how many sublevels should be displayed when splitting up 3022 tables by the above Separator. 3023 3024 $cfg['ShowTooltip'] boolean 3025 Defines whether to display table comment as tool-tip in left frame or 3026 not. 3027 3028 $cfg['ShowTooltipAliasDB'] boolean 3029 If tool-tips are enabled and a DB comment is set, this will flip the 3030 comment and the real name. That means, if you have a table called 3031 'user0001' and add the comment 'MyName' on it, you will see the name 3032 'MyName' used consequently in the left frame and the tool-tip shows 3033 the real name of the DB. 3034 3035 $cfg['ShowTooltipAliasTB'] boolean/string 3036 Same as $cfg['ShowTooltipAliasDB'], except this works for table 3037 names. When setting this to 'nested', the Alias of the Tablename is 3038 only used to split/nest the tables according to the 3039 $cfg['LeftFrameTableSeparator'] directive. So only the folder is 3040 called like the Alias, the tablename itself stays the real tablename. 3041 3042 $cfg['LeftDisplayLogo'] boolean 3043 Defines whether to display the phpMyAdmin logo at the top of the left 3044 frame or not. Defaults to TRUE. 3045 3046 $cfg['LeftDisplayServers'] boolean 3047 Defines whether to display a server choice at the top of the left 3048 frame or not. Defaults to FALSE. 3049 3050 $cfg['DisplayServersList'] boolean 3051 Defines whether to display this server choice as links instead of in 3052 a drop-down. Defaults to FALSE (drop-down). 3053 3054 $cfg['ShowStats'] boolean 3055 Defines whether to display space usage and statistics about databases 3056 and tables or not. 3057 Note that statistics requires at least MySQL 3.23.3 and that, at this 3058 date, MySQL doesn't return such information for Berkeley DB tables. 3059 3060 $cfg['ShowMysqlInfo'] boolean 3061 $cfg['ShowMysqlVars'] boolean 3062 $cfg['ShowPhpInfo'] boolean 3063 $cfg['ShowChgPassword'] boolean 3064 Defines whether to display the "MySQL runtime information", "MySQL 3065 system variables", "PHP information" and "Change password " links or 3066 not for simple users at the starting main (right) frame. This setting 3067 does not check MySQL commands entered directly. 3068 Please note that to block the usage of phpinfo() in scripts, you have 3069 to put this in your php.ini: 3070 disable_functions = phpinfo() 3071 Also note that enabling the "Change password " link has no effect 3072 with "config" authentication mode: because of the hard coded password 3073 value in the configuration file, end users can't be allowed to change 3074 their passwords. 3075 3076 $cfg['SuggestDBName'] boolean 3077 Defines whether to suggest a database name on the "Create Database" 3078 form or to keep the textfield empty. 3079 3080 $cfg['ShowBlob'] boolean 3081 Defines whether BLOB fields are shown when browsing a table's content 3082 or not. 3083 3084 $cfg['NavigationBarIconic'] boolean 3085 Defines whether navigation bar buttons contain text or symbols only. 3086 3087 $cfg['ShowAll'] boolean 3088 Defines whether an user should be displayed a "show all (records)" 3089 button in browse mode or not. 3090 3091 $cfg['MaxRows'] integer 3092 Number of rows displayed when browsing a result set. If the result 3093 set contains more rows, Previous/Next links will be shown. 3094 3095 $cfg['Order'] string [DESC|ASC|SMART] 3096 Defines whether fields are displayed in ascending (ASC) order, in 3097 descending (DESC) order or in a "smart" (SMART) order - I.E. 3098 descending order for fields of type TIME, DATE, DATETIME & TIMESTAMP, 3099 ascending order else- by default. 3100 3101 $cfg['ProtectBinary'] boolean or string 3102 Defines whether BLOB or BINARY fields are protected from edition when 3103 browsing a table's content or not. Valid values are: 3104 - FALSE to allow edition of all fields; 3105 - blob to allow edition of all fields except BLOBS; 3106 - all to disallow edition of all BINARY or BLOB fields. 3107 3108 $cfg['ShowFunctionFields'] boolean 3109 Defines whether MySQL functions fields should be displayed or not in 3110 edit/insert mode. 3111 3112 $cfg['CharEditing'] string 3113 Defines which type of editing controls should be used for CHAR and 3114 VARCHAR fields. Possible values are: 3115 3116 + input - this allows to limit size of text to size of field in 3117 MySQL, but has problems with newlines in fields 3118 + textarea - no problems with newlines in fields, but also no length 3119 limitations 3120 3121 Default is old behavior so input. 3122 3123 $cfg['ZipDump'] boolean 3124 $cfg['GZipDump'] boolean 3125 $cfg['BZipDump'] boolean 3126 Defines whether to allow the use of zip/GZip/BZip2 compression when 3127 creating a dump file or not. 3128 3129 $cfg['CompressOnFly'] boolean 3130 Defines whether to allow on the fly compression for GZip/BZip2 3131 compressed exports. This doesn't affect smaller dumps and allows to 3132 create larger dumps, that won't fit otherwise in memory due to php 3133 memory limit. Produced files contain more GZip/BZip2 headers, but all 3134 normal programs handle this correctly. 3135 3136 $cfg['LightTabs'] string 3137 If set to True, do use less graphically intense tabs on the top of 3138 the mainframe. 3139 3140 $cfg['PropertiesIconic'] string 3141 If set to True, will display icons instead of text for db and table 3142 properties links (like 'Browse', 'Select', 'Insert', ...). 3143 Can be set to 'both' if you want icons AND text. 3144 When set to False, will only show text. 3145 3146 $cfg['PropertiesNumColumns'] integer 3147 How many columns will be utilized to display the tables on the 3148 database property view? Default is 1 column. When setting this to a 3149 value larger than 1, the type of the database will be omitted for 3150 more display space. 3151 3152 $cfg['DefaultTabServer'] string 3153 Defines the tab displayed by default on server view. Possible values: 3154 "main.php" (recommended for multi-user setups), 3155 "server_databases.php","server_status.php","server_variables.php", 3156 "server_privileges.php" or "server_processlist.php". 3157 3158 $cfg['DefaultTabDatabase'] string 3159 Defines the tab displayed by default on database view. Possible 3160 values: "db_details_structure.php", "db_details.php" or 3161 "db_search.php". 3162 3163 $cfg['DefaultTabTable'] string 3164 Defines the tab displayed by default on table view. Possible values: 3165 "tbl_properties_structure.php", "tbl_properties.php", 3166 "tbl_select.php" or "tbl_change.php". 3167 3168 $cfg['MySQLManualBase'] string 3169 If set to an URL which points to the MySQL documentation (type 3170 depends on $cfg['MySQLManualType']), appropriate help links are 3171 generated. 3172 See MySQL Documentation page for more information about MySQL manuals 3173 and their types. 3174 3175 $cfg['MySQLManualType'] string 3176 Type of MySQL documentation: 3177 3178 + old - old style used in phpMyAdmin 2.3.0 and earlier 3179 + searchable - "Searchable, with user comments" 3180 + chapters - "HTML, one page per chapter" 3181 + big - "HTML, all on one page" 3182 + none - do not show documentation links 3183 3184 $cfg['DefaultLang'] string 3185 Defines the default language to use, if not browser-defined or 3186 user-defined. 3187 See the select_lang.inc.php script to know the valid values for this 3188 setting. 3189 3190 $cfg['Lang'] string 3191 Force: always use this language (must be defined in the 3192 select_lang.inc.php script). 3193