-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathpostgresql-password-windows.html
More file actions
135 lines (134 loc) · 17.1 KB
/
postgresql-password-windows.html
File metadata and controls
135 lines (134 loc) · 17.1 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8"><meta name="viewport" content="width=device-width,initial-scale=1">
<title>Reset PostgreSQL Password on Windows — Forgot postgres Password Fix</title>
<meta name="description" content="How to reset a forgotten PostgreSQL postgres superuser password on Windows. Edit pg_hba.conf to trust, connect without password, set new password, restore security.">
<link rel="canonical" href="https://postgre-sql.github.io/postgresql-password-windows.html">
<meta name="last-modified" content="2026-06-08">
<meta property="og:title" content="Reset PostgreSQL Password on Windows — Forgot postgres Password Fix">
<meta property="og:description" content="How to reset a forgotten PostgreSQL postgres superuser password on Windows. Edit pg_hba.conf to trust, connect without password, set new password, restore security.">
<meta property="og:type" content="article">
<meta property="og:url" content="https://postgre-sql.github.io/postgresql-password-windows.html">
<meta property="og:image" content="https://postgre-sql.github.io/og-image.svg">
<meta name="twitter:card" content="summary_large_image">
<link rel="icon" href="/favicon.svg">
<link rel="stylesheet" href="/style.css">
</head>
<body>
<nav class="site-nav"><div class="wrap"><div class="nav-inner">
<a href="/index.html" class="nav-logo"><div class="nav-logo-mark">Pg</div><span class="nav-logo-name">PostgreSQL</span><span class="nav-logo-sub">for Windows</span></a>
<div class="nav-links">
<a href="/index.html" id="nl-home">Home</a>
<a href="/download-windows.html" id="nl-dl">Download</a>
<a href="/offline-installer.html" id="nl-off">Offline</a>
<a href="/configure-windows-service.html" id="nl-svc">Service</a>
<a href="/fix-path-issues.html" id="nl-path">PATH fix</a>
<a href="/pgadmin-windows.html" id="nl-pgadmin">pgAdmin</a>
<a href="/postgresql-windows-faq.html" id="nl-faq">FAQ</a>
</div>
<a href="/download-windows.html" class="nav-cta"><svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><path d="M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4"/><polyline points="7 10 12 15 17 10"/><line x1="12" y1="15" x2="12" y2="3"/></svg> Download</a>
</div></div></nav>
<div class="page-hero"><div class="wrap">
<nav class="breadcrumb"><a href="/index.html">home</a> <span>/</span> <span>postgresql-password-windows</span></nav>
<span class="page-tag">Password guide</span>
<h1>Reset PostgreSQL password on Windows — <span>forgot postgres password fix</span></h1>
<p class="page-lead">Forgot the PostgreSQL postgres superuser password on Windows? This guide walks through resetting it via pg_hba.conf trust authentication without reinstalling.</p>
</div></div>
<div class="wrap"><div class="content-layout">
<main><div class="callout callout-warn"><svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round"><path d="M10.29 3.86L1.82 18a2 2 0 0 0 1.71 3h16.94a2 2 0 0 0 1.71-3L13.71 3.86a2 2 0 0 0-3.42 0z"/><line x1="12" y1="9" x2="12" y2="13"/><line x1="12" y1="17" x2="12.01" y2="17"/></svg><span>Be careful when changing authentication settings. A wrong pg_hba.conf can lock you out of the database entirely. Keep a backup of the file before editing.</span></div>
<div class="section" aria-labelledby="reset-h2"><span class="section-label">Reset postgres password</span><h2 id="reset-h2">How to reset a forgotten postgres superuser password</h2>
<ul class="steps">
<li class="step"><div class="step-n">1</div><div><h3>Stop the PostgreSQL service</h3>
<div class="term"><div class="term-bar"><div class="term-dot" style="background:#ff5f56"></div><div class="term-dot" style="background:#ffbd2e"></div><div class="term-dot" style="background:#27c93f"></div><span class="term-label">cmd.exe — Administrator</span></div><div class="term-body"><div><span class="t-p">C:\></span> <span class="t-c">net stop postgresql-x64-18</span></div><div><span class="t-ok">The postgresql-x64-18 service was stopped successfully.</span></div></div></div>
</div></li>
<li class="step"><div class="step-n">2</div><div><h3>Edit pg_hba.conf to allow trust login</h3><p>Open <code>C:\Program Files\PostgreSQL\18\data\pg_hba.conf</code> in Notepad as Administrator. Find the IPv4 local connections line and temporarily change <code>scram-sha-256</code> to <code>trust</code>:</p>
<div class="term"><div class="term-bar"><div class="term-dot" style="background:#ff5f56"></div><div class="term-dot" style="background:#ffbd2e"></div><div class="term-dot" style="background:#27c93f"></div><span class="term-label">pg_hba.conf — temporary change</span></div><div class="term-body"><div><span class="t-cm"># Before (original):</span></div><div><span class="t-o">host all all 127.0.0.1/32 scram-sha-256</span></div><div></div><div><span class="t-cm"># After (temporary):</span></div><div><span class="t-v">host all all 127.0.0.1/32 trust</span></div></div></div>
</div></li>
<li class="step"><div class="step-n">3</div><div><h3>Start the service and connect without password</h3>
<div class="term"><div class="term-bar"><div class="term-dot" style="background:#ff5f56"></div><div class="term-dot" style="background:#ffbd2e"></div><div class="term-dot" style="background:#27c93f"></div><span class="term-label">cmd.exe — Administrator</span></div><div class="term-body"><div><span class="t-p">C:\></span> <span class="t-c">net start postgresql-x64-18</span></div><div></div><div><span class="t-cm"># Connect without password (trust allows this):</span></div><div><span class="t-p">C:\></span> <span class="t-c">psql -U postgres</span></div><div><span class="t-ok">postgres=#</span></div></div></div>
</div></li>
<li class="step"><div class="step-n">4</div><div><h3>Set a new password</h3>
<div class="term"><div class="term-bar"><div class="term-dot" style="background:#ff5f56"></div><div class="term-dot" style="background:#ffbd2e"></div><div class="term-dot" style="background:#27c93f"></div><span class="term-label">psql</span></div><div class="term-body"><div><span class="t-p">postgres=#</span> <span class="t-c">ALTER USER postgres WITH PASSWORD 'NewSecurePassword123!';</span></div><div><span class="t-ok">ALTER ROLE</span></div><div><span class="t-p">postgres=#</span> <span class="t-c">\q</span></div></div></div>
</div></li>
<li class="step"><div class="step-n">5</div><div><h3>Restore pg_hba.conf and restart</h3><p>Edit pg_hba.conf again and change <code>trust</code> back to <code>scram-sha-256</code>. Then restart the service:</p>
<div class="term"><div class="term-bar"><div class="term-dot" style="background:#ff5f56"></div><div class="term-dot" style="background:#ffbd2e"></div><div class="term-dot" style="background:#27c93f"></div><span class="term-label">cmd.exe — Administrator</span></div><div class="term-body"><div><span class="t-p">C:\></span> <span class="t-c">net stop postgresql-x64-18 && net start postgresql-x64-18</span></div><div></div><div><span class="t-cm"># Verify new password works:</span></div><div><span class="t-p">C:\></span> <span class="t-c">psql -U postgres -c "SELECT current_user;"</span></div><div><span class="t-o">Password for user postgres:</span></div><div><span class="t-ok"> postgres</span></div></div></div>
</div></li>
</ul>
<div class="callout callout-warn"><svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round"><path d="M10.29 3.86L1.82 18a2 2 0 0 0 1.71 3h16.94a2 2 0 0 0 1.71-3L13.71 3.86a2 2 0 0 0-3.42 0z"/><line x1="12" y1="9" x2="12" y2="13"/><line x1="12" y1="17" x2="12.01" y2="17"/></svg><span>Do not leave <code>trust</code> authentication in pg_hba.conf in production. It allows anyone on localhost to connect as any user without a password. Always restore <code>scram-sha-256</code> after resetting the password.</span></div>
</div>
<div class="section" aria-labelledby="change-h2"><span class="section-label">Change password normally</span><h2 id="change-h2">Change the postgres password when you know the current one</h2>
<div class="term"><div class="term-bar"><div class="term-dot" style="background:#ff5f56"></div><div class="term-dot" style="background:#ffbd2e"></div><div class="term-dot" style="background:#27c93f"></div><span class="term-label">psql</span></div><div class="term-body"><div><span class="t-cm">-- Change your own password interactively (prompts for new password):</span></div><div><span class="t-p">postgres=#</span> <span class="t-c">\password</span></div><div></div><div><span class="t-cm">-- Change password via SQL:</span></div><div><span class="t-p">postgres=#</span> <span class="t-c">ALTER USER postgres WITH PASSWORD 'NewPassword';</span></div><div></div><div><span class="t-cm">-- Change another user password:</span></div><div><span class="t-p">postgres=#</span> <span class="t-c">ALTER USER myuser WITH PASSWORD 'UserPassword';</span></div></div></div>
</div>
<div class="section" aria-labelledby="faq-h2"><span class="section-label">FAQ</span><h2 id="faq-h2">Password questions</h2><div class="faq">
<div class="faq-item"><details><summary>What is the default postgres password after installation?</summary><div class="faq-ans">There is no default password. The EDB installer requires you to set a password during setup. If you do not remember what you set, follow the password reset procedure above.</div></details></div>
<div class="faq-item"><details><summary>scram-sha-256 vs md5 — which authentication to use?</summary><div class="faq-ans">Always use <code>scram-sha-256</code>. It is more secure than <code>md5</code> and is the default since PostgreSQL 14. Only use <code>md5</code> if you have a very old client that does not support SCRAM authentication.</div></details></div>
<div class="faq-item"><details><summary>Can I create a PostgreSQL user without a password?</summary><div class="faq-ans">Yes: <code>CREATE USER myuser;</code> creates a user with no password. They can only log in if pg_hba.conf has a <code>trust</code> or <code>peer</code> entry for them. For security, always set passwords for users that connect over TCP.</div></details></div>
</div></div>
<div class="cta-banner"><div><h2>Need to configure who can connect?</h2><p>Set up pg_hba.conf rules and firewall for controlled access.</p></div><a href="/postgresql-allow-remote-connections.html" class="btn-white"><svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><path d="M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4"/><polyline points="7 10 12 15 17 10"/><line x1="12" y1="15" x2="12" y2="3"/></svg>Remote connections</a></div>
<div style="margin-bottom:32px"><span class="section-label">Related guides</span><div class="rel-grid"><a href="/postgresql-allow-remote-connections.html" class="rel-card"><div class="rel-title">Remote connections →</div><div class="rel-sub">pg_hba.conf rules</div></a><a href="/postgresql-config-windows.html" class="rel-card"><div class="rel-title">postgresql.conf →</div><div class="rel-sub">full config guide</div></a><a href="/pgadmin-windows.html" class="rel-card"><div class="rel-title">pgAdmin 4 →</div><div class="rel-sub">change password in GUI</div></a></div></div></main>
<aside class="content-sidebar"><div class="sb-card"><div class="version-badge-label">Latest stable</div><div class="version-badge-val">18.3</div><div class="version-badge-sub">Released May 2026</div></div><div class="sb-card"><div class="sb-card-title">Install & setup</div><ul class="sb-links"><li><a href="/download-windows.html">Download PostgreSQL</a></li><li><a href="/offline-installer.html">Offline installer</a></li><li><a href="/configure-windows-service.html">Windows service</a></li><li><a href="/fix-path-issues.html">Fix PATH / psql</a></li><li><a href="/pgadmin-windows.html">pgAdmin 4</a></li><li><a href="/install-postgresql-windows-server.html">Windows Server</a></li></ul></div><div class="sb-card"><div class="sb-card-title">Configuration</div><ul class="sb-links"><li><a href="/postgresql-config-windows.html">postgresql.conf</a></li><li><a href="/postgresql-port-5432.html">Port 5432</a></li><li><a href="/postgresql-allow-remote-connections.html">Remote connections</a></li><li><a href="/postgresql-password-windows.html" class="cur">Reset password</a></li></ul></div><div class="sb-card"><div class="sb-card-title">Tools & help</div><ul class="sb-links"><li><a href="/psql-commands-windows.html">psql commands</a></li><li><a href="/pg-dump-restore-windows.html">Backup & restore</a></li><li><a href="/postgresql-python-windows.html">Python / psycopg2</a></li><li><a href="/odbc-driver-x64-x86.html">ODBC driver</a></li><li><a href="/postgresql-not-starting-windows.html">Service not starting</a></li><li><a href="/postgresql-uninstall-windows.html">Uninstall</a></li><li><a href="/postgresql-windows-faq.html">FAQ</a></li></ul></div></aside>
</div></div>
<footer class="site-footer"><div class="wrap">
<div class="footer-inner">
<div>
<div class="footer-logo"><div class="footer-logo-mark">Pg</div><span class="footer-logo-name">PostgreSQL for Windows</span></div>
<p class="footer-tagline">Unofficial Windows guide for PostgreSQL — download, install, configure, troubleshoot.</p>
</div>
<div>
<div class="footer-col-title">Install & setup</div>
<ul class="footer-links">
<li><a href="/download-windows.html">Download PostgreSQL</a></li>
<li><a href="/offline-installer.html">Offline installer</a></li>
<li><a href="/configure-windows-service.html">Windows service</a></li>
<li><a href="/fix-path-issues.html">Fix PATH / psql</a></li>
<li><a href="/pgadmin-windows.html">pgAdmin 4</a></li>
</ul>
</div>
<div>
<div class="footer-col-title">Configuration</div>
<ul class="footer-links">
<li><a href="/postgresql-config-windows.html">postgresql.conf</a></li>
<li><a href="/postgresql-port-5432.html">Port 5432</a></li>
<li><a href="/postgresql-allow-remote-connections.html">Remote connections</a></li>
<li><a href="/postgresql-password-windows.html">Reset password</a></li>
<li><a href="/install-postgresql-windows-server.html">Windows Server</a></li>
</ul>
</div>
<div>
<div class="footer-col-title">Tools & help</div>
<ul class="footer-links">
<li><a href="/psql-commands-windows.html">psql commands</a></li>
<li><a href="/pg-dump-restore-windows.html">Backup & restore</a></li>
<li><a href="/postgresql-not-starting-windows.html">Service not starting</a></li>
<li><a href="/postgresql-uninstall-windows.html">Uninstall</a></li>
<li><a href="/postgresql-windows-faq.html">FAQ</a></li>
</ul>
</div>
</div>
<div class="footer-bottom">
<p>Not affiliated with the PostgreSQL Global Development Group. Unofficial community guide.</p>
<p><strong>Affiliate disclosure:</strong> Download links may be partner links.</p>
</div>
</div></footer>
<div class="cookie-bar" id="cookieBar" style="display:none">
<p>We use Google Analytics for anonymous traffic data. <a href="/privacy.html">Privacy policy</a></p>
<div class="cookie-btns"><button class="cookie-accept" id="cookieAccept">Accept</button><button class="cookie-decline" id="cookieDecline">Decline</button></div>
</div>
<script async src="https://www.googletagmanager.com/gtag/js?id=G-MHLW57MR8Q"></script>
<script>
window.dataLayer=window.dataLayer||[];function gtag(){dataLayer.push(arguments)}
gtag('consent','default',{analytics_storage:'denied',ad_storage:'denied'});
gtag('js',new Date());gtag('config','G-MHLW57MR8Q',{anonymize_ip:true,send_page_view:false});
function grantGA(){gtag('consent','update',{analytics_storage:'granted'});gtag('event','page_view',{page_location:location.href,page_title:document.title})}
document.addEventListener('DOMContentLoaded',function(){
var bar=document.getElementById('cookieBar');
var c=localStorage.getItem('pg_consent');
if(!c){bar.style.display='flex'}else if(c==='1'){grantGA()}
document.getElementById('cookieAccept').addEventListener('click',function(){localStorage.setItem('pg_consent','1');grantGA();bar.style.display='none'});
document.getElementById('cookieDecline').addEventListener('click',function(){localStorage.setItem('pg_consent','0');bar.style.display='none'});
});
</script>
<script type="application/ld+json">{"@context":"https://schema.org","@type":"HowTo","name":"Reset PostgreSQL Password on Windows","description":"How to reset a forgotten postgres superuser password on Windows.","step":[{"@type":"HowToStep","position":1,"name":"Stop service","text":"net stop postgresql-x64-18"},{"@type":"HowToStep","position":2,"name":"Edit pg_hba.conf","text":"Change scram-sha-256 to trust for localhost"},{"@type":"HowToStep","position":3,"name":"Start and connect","text":"net start postgresql-x64-18 && psql -U postgres"},{"@type":"HowToStep","position":4,"name":"Set new password","text":"ALTER USER postgres WITH PASSWORD NewPassword;"},{"@type":"HowToStep","position":5,"name":"Restore security","text":"Change trust back to scram-sha-256 in pg_hba.conf and restart"}]}</script>
<script>var el=document.getElementById("nl-home");if(el)el.classList.add("active");</script>
</body></html>