每次找数据库管理软件,就还是觉得 Adminer 顺手,除用 #Adminer 打开 #SQLite3 数据库外,因为它不允许无密码登录,每次都要折腾一下……😡😡😡

  1. Accessing a database without a password 推荐页面使用 login-password-less 这个插件方式;

  2. 这里生成你自己的密码,并替换上述插件的源代码如下:

    1
    2
    3
    4
    5
    6
    
    16,17c16,17
    < 	function __construct($password_hash) {
    < 		$this->password_hash = $password_hash;
    ---
    > 	function __construct() {
    > 		$this->password_hash = '$2y$10$0X0Fb9jejoSGWYjUzZzEh.Ck6riuMLm8z./tClCcQe.jEN68/DZ72';
    
  3. 覆盖掉原始插件代码:docker run -it --rm -v ./your.db:/your.db -v ./login-password-less.php:/var/www/html/plugins/login-password-less.php -p 8080:8080 -e ADMINER_PLUGINS='login-password-less' adminer

就行了,密码输入刚才上面第二步的密码,用户名留空,数据库输入映射的路径即可(绝对路径最好)。

感觉还是做个成品的镜像吧,感觉网上也挺多人搜索这个的,但是网上的方法明显偏复杂,不 Ad-Hoc 🙄:

  • 做个临时用的 Adminer for SQLite3 镜像
2025-4-20 12:27:16

写好了,极其优雅!一个命令就打开!

https://github.com/movsb/adminer-sqlite3-no-password

得有🔟年没写过 PHP 了?

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
<?php
function adminer_object() {
	class AdminerSoftware extends Adminer\Adminer {
		function login($login, $password) {
			return true;
		}
		function loginForm() {
			?>
				<input type=hidden name="auth[driver]" value="sqlite">
				<input type=hidden name="auth[db]" value="<?php echo getenv('FILE'); ?>">
				<script <?php echo \Adminer\nonce() ?>>
					window.addEventListener('DOMContentLoaded', () => {
						document.forms[0].submit();
					});
				</script>
			<?php
		}
	}
	return new AdminerSoftware;
}
include './adminer.php';
碎碎念 桃子