phpMyAdmin is one of the most famous tools for managing the MySQL database. However, it is not perfect which is the reason why Adminer has been created. In which areas is Adminer a better alternative to replace phpMyAdmin? The list is quite long and some points may be insignificant for you. The most important differences are:
There are several screenshots linked from the comparison table further explaining the difference.
This comparison was made in the past and the current state might be different. I do not have enough energy to do a similar in-depth comparison with current versions.
Feature | phpMyAdmin 3.3.9 | Adminer 3.1.0 | Comment |
---|---|---|---|
Supported systems | MySQL | MySQL, SQLite, PostgreSQL, MS SQL, Oracle | Adminer is also available in a MySQL-only version. |
Login | partial | complete | Adminer offers permanent login including user list, phpMyAdmin only partial support through configuration. |
Create table | not smart | smart | In phpMyAdmin you have to specify the number of fields prior to creating the table. The form design transposes based on the number of fields. Adminer adds fields automatically. |
Alter table | restricted | unlimited | phpMyAdmin cannot move columns and cannot add columns in different places at once (every alter table is very slow when applied to big tables). Adminer can reorganize columns and add them in different places - at once. |
Enum type | miserable | comfortable | Adminer offers textarea with one item per line for enum type creation. |
Indexes | one at a time | all at once | Adding an index is a slow operation with big tables. Adminer allows manipulation with all indexes together. |
Foreign keys | limited | complete | It is not possible to create multi-column foreign keys in phpMyAdmin. You have to create an index manually before you create the foreign key. Adminer offers a foreign keys interface directly in create/alter table. |
Views | no alter | full support | It is not possible to alter a view in phpMyAdmin, it must be dropped and recreated manually. |
User interface | confusing | intuitive | An example that applies to many differenet cases: there is an icon by table name in navigation. Half of users do not know that it has a different function than table name, the other half is not sure which function it is. |
Triggers, routines, events | no create, alter manually | full support | phpMyAdmin does not offer an interface for creating these objects and has only primitive functionality for altering them. |
Calling routines | SQL only | friendly | Calling stored procedures and functions in phpMyAdmin is possible only by creating a SQL query. Adminer offers a friendly interface. |
Selecting data | lacking | functions, grouping | Adminer allows grouping results and applying functions to columns in select statements. It is also possible to order by several columns at once. phpMyAdmin lacks these features. |
Blob field download | extra tables | automatic | It is possible to download the contents of a blob field in phpMyAdmin only by creating extra tables, specifying them in the configuration and manually marking the downloadable fields. Adminer allows downloading any blob. |
Relations | extra tables | automatic | To link data through foreign keys, you have to create an extra table and specify it in the configuration of phpMyAdmin. |
Bulk editing | absent | present | There is no way to change a field value for several rows at once in phpMyAdmin. Adminer offers both relative and absolute modifications. |
Multiple editing | complicated | trivial | For example, to fix typos on ten rows: You have to select these rows in phpMyAdmin, edit them, find the typos again and save. In Adminer, just Ctrl-click on a typo and save. |
Clone row | error-prone | safe | phpMyAdmin offers the clone row feature after standard editing, therefore it is possible to overwrite the row by mistake. Adminer has a special button that is displayed prior to this operation. |
Schema | extra tables | always | Schema in phpMyAdmin is available only after setting up and specifying extra tables in the configuration file and only through PDF or <canvas>. Adminer uses HTML and JavaScript. |
Synchronization | requires remote access | works anywhere | phpMyAdmin synchronize feature does not work without remote access to the server which is usually disabled by a firewall. Adminer uses a different approach - it can create an ALTER export which generates alter commands to synchronize the target database with the source after running on the remote server. |
Database list | slow | fast | Database list is slow because it displays the number of tables. Adminer downloads this data asynchronously. |
Status variables | one-line summary | official documentation | phpMyAdmin displays an on-line summary for some status variables, Adminer links to the official documentation. |
Variables | no description | official documentation | phpMyAdmin does not display any description for variables, Adminer links to the official documentation. |
Multiple browser tabs | blocking | non-blocking | When one browser tab is performing a long operation, it is not possible to work with phpMyAdmin in another tab. Adminer on the other hand is concurrent and non-blocking. |
SQL queries | one result | several results | Adminer is able to display the results of separate SQL queries all in one page. |
Syntax highlighting | no links | documentation links | Adminer provides links to documentation for all SQL keywords. |
Keyboard shortcucts | obstructive | handy | In phpMyAdmin, Ctrl+Left/Right does not skip by words as is the standard, instead it moves between fields. In Adminer, keyboard shortcuts work as expected: Tab inside a SQL textarea works and Ctrl+Enter sends a form. |
Skins | 6 | 8 | phpMyAdmin skin requires creating over 100 icons. |
Customization | extra tables | PHP class | phpMyAdmin offers very simple customizations through special tables. Adminer offers advanced customization through a PHP extension class. |
Overall performance | slow | fast | Adminer is 28% faster on average (according to independent test by Juraj Hajdúch). |
Security bugs fixed in 2010 | 10 | 1 | phpMyAdmin still fails to address serious security issues such as ClickJacking from the same domain or Referer Leakage. |
New version notifications | inside Adminer | You can subscribe to e-mail notifications in phpMyAdmin. Adminer is more user friendly: the availability of a new version is displayed automatically in Adminer itself. There is also an RSS channel for both tools. | |
Number of files | 879 | 1 | The Adminer source code is well structured and kept in 70 files. The final, single file version is the result of compilation and minification. |
Size | 15 126 kB | 291 kB | Number of files and size becomes apparent when installing/copying the application to a remote server. Installing Adminer is a snap. |
License | GPL | GPL or Apache | GPL license is quite restrictive - it requires derived products to be also under GPL. |
Requirements | PHP 5.2+, MySQL 5+ | PHP 4.3+, MySQL 4.1+ | Adminer works even with older versions of PHP and MySQL. phpMyAdmin requires a downgrade to work in older versions. |
Configuration | usually necessary | zero configuration | phpMyAdmin usually requires at least some configuration, Adminer just works. |
To be fair, there are also some areas where phpMyAdmin exceeds Adminer:
Feature | phpMyAdmin 3.3.9 | Adminer 3.1.0 | Comment |
---|---|---|---|
Languages | 7/57 up-to-date | 17/17 up-to-date | Nearly all translations in phpMyAdmin are incomplete. Common languages including RTL are supported in both tools and both tools have an English-only version in addition to the multi-lingual version. Create a new translation (if you are a native speaker). |
Export formats | 16 (LaTeX, Texy!, ...) | 3 (SQL, CSV, TSV) | Exporting database to LaTeX is a task that most developers solve on a daily basis. |
Downloads in 11/2010 | 280 000 | 7 000 | You can change it this month! |
Presentation from O'Reilly MySQL Conference: download.
AdminNeo is a fork of Adminer 4. However, Adminer 5 made significant internal improvements which weren't ported back to AdminNeo.
Feature | Adminer 4.8.1 | AdminNeo 5-dev | Adminer 5.1.1 | Comment |
---|---|---|---|---|
Type declarations | nowhere | somewhere | everywhere | Adminer has PHP type declarations for all functions and also for class variables. AdminNeo has them only with couple of functions. |
Global variables | 23 | 23 | 0 | Adminer doesn't use global variables, AdminNeo needs 23 global variables. |
Ignored PHP errors | notices, strict and deprecated | notices and deprecated | deprecated | Adminer code is compatible with E_NOTICE , AdminNeo ignores these errors. |
PHPStan | unchecked | unchecked | level 6 | Adminer passes PHPStan level 6 with documented exceptions. AdminNeo doesn't do static analysis. |
Coding style | unspecified | unspecified | checked | Adminer checks code style with PHPCS. AdminNeo coding style is inconsistent even e.g. in doc-comments. |
Running from sources | works | unsupported | works | Adminer can run from source codes, AdminNeo needs a compilation step. |
Loading plugins | cumbersome | cumbersome | trivial | Adminer autoloads plugins from adminer-plugins/ . AdminNeo needs a cumbersome setup. |
Available designs | 30 | 3 | 30 | AdminNeo dropped support for all existing designs. |
Required PHP version | 5.0+ | 7.1+ | 5.3+ | Adminer source codes now use PHP 7.4 but the compiled file still runs on PHP 5.3. |
Tests | 1 suite | 1 suite | 13 suites | Adminer has end-to-end tests for 13 different drivers, AdminNeo tests only MySQLi. |
JavaScript | ancient | ancient | modern+checked | Adminer uses let /const and checks the code with ESLint. AdminNeo heavily uses var and doesn't check the code. |
Developer documentation | missing | missing | 9 pages | Adminer has extensive documentation for new developers. AdminNeo has no developer documentation. |
Dark mode | unsupported | automatic | automatic and manual | AdminNeo supports dark mode based on user preferences. Adminer too and it also has a plugin for manual switching. |
Mobile version | ugly | menu hidden | menu hidden | Both AdminNeo and Adminer hide menu on mobile. |
Configuration | zero-conf | available | zero-conf | Adminer works out of the box and can be customized with plugins. AdminNeo can configure some features with a config. |
File size | 477 kB | 630 kB | 485 kB | AdminNeo compiled file is valid UTF-8, Adminer compiled file is binary. |
Columns reordering | not supported | supported | not supported | AdminNeo supports changing the order of columns in select. It also has drag-and-drop in alter table. |
Compilation | single driver | any combination | single driver | Adminer compiles into a version with all drivers or a single driver version. AdminNeo supports compilation with any combination of drivers. |