This thread (including comments from both Jeremy and Alex) was very useful to me in PhD Quals preparation.
I would like to give a detailed proof using Jeremy's and Alex's outline, but without mention of Spec(R), in case the reader is less algebraic-geometry-inclined.
Corrections welcome. Thanks.
Proposition. Let R be a UFD in which every nonzero prime ideal is maximal. Then R is a PID.
Lemma 1. If p is a nonzero irreducible element of R, then (p) is a prime ideal of R.
Proof. Let a and b be nonzero elements of R such that ab ∈ (p), i.e. ab = pf for some nonzero element f ∈ R. If a and b are both non-units, then we can write their unique factorisations a = up1...pr and b = vq1...qs for unique irreducible elements pi and qj, and units u and v ∈ R. By unique factorisation, p = one of the pi's, or p = one of the qj's, or both. Hence either a ∈ (p) or b ∈ (p) or both. [Similar reasoning works if either a or b is a unit of R.] Thus, (p) is a prime ideal.
Lemma 2. If I is a nonzero prime ideal of R, then I is principal.
Proof. Given a nonzero, proper prime ideal, $I$, with some element $r\in I$, write $r= p_1\cdots p_n$ as a product of primes. By the primality of $I$ we know some $p_i\in I$. Since $p_i$ is prime, by assumption $(p_i)$ is maximal, so $(p_i)\subseteq I$ implies that $I=(p_i)$.
Proof of Proposition.
Following Alex's thread, let N be the set of non-principal ideals in R. Suppose that N is non-empty. N is a partially ordered set (with inclusion of ideals being the ordering relation). Any totally ordered subset of ideals J1 ⊆ J2 ⊆ ... in N has an upper bound, namely J = ∪ Ji. J is an ideal of R because the subset was totally ordered. If J = (x) for some x ∈ R, then x ∈ Ji for some i, and hence (x) = Ji. Contradiction. Thus, J ∈ N and by Zorn's Lemma, N has a maximal element. Call it n.
By Lemma 2, we see that n is not a prime ideal of R. Thus, there exist a, b ∈ R, such that a, b ∉ n, but ab ∈ n. But then n + (a) and n + (b) are ideals in R which are strictly bigger than n, and so must be principal ideals, i.e. n + (a) = (u) and n + (b) = (v) for u, v ∈ R. Then we have
n = n + (ab) = (n + (a)) (n + (b)) = (u)(v) = (uv). Contradiction.
Thus, N must be the empty set, i.e. all ideals in R are principal.
With $d<0$, the ring of integers of $\mathbb Q(\sqrt d)$ is a PID exactly when
$$d= −1, −2, −3, −7, −11, −19, −43, −67, −163$$
Checking that these rings are PIDs is not too hard, but checking that no other values give an integer ring that is a PID requires some heavy machinery - see the class number 1 problem.
Best Answer
A PID is always of dim $1$. So you can find a lot of UFD's that are not PID; for example:
Every polynomial ring in more than one variable with coeffcients in a field.
Every regular local ring of dim greater than $1$ (i.e the maximal ideal can not generated with one element).