ClearAll[solve, jump];
$Jumps = {{-2, 1}, {-1, 2}, {1, 2}, {2, 1}, {2, -1}, {1, -2}, {-1, -2}, {-2, -1}};
solve[n_] := (ClearAll[board]; Catch[jump[1, 1, 1, n]]; Array[board, {n, n}]);
jump[x_, y_, z_, n_] /; 1 <= x <= n && 1 <= y <= n && ! ValueQ[board[x, y]] := (
board[x, y] = z;
If[z == n^2, Throw[1]];
jump[x + #1, y + #2, z + 1, n] & @@@ $Jumps;
board[x, y] =.;
);
Block[{$RecursionLimit = Infinity}, solve[5] // MatrixForm]