It is not up to an employee to choose a boss. So really, the only solution to this issue is your number 2 statement -> change jobs often. This will get you away from a shitty boss, (and a good one). You have to get out from under a shitty boss. That is the only solution.
So really, your number 1 should be: Never work for a shitty boss. Transfer laterally or find a new job if you thing your shitty boss is going to be your shitty boss for more than 1 to 1.5 years.
If you can't get out from under a shitty boss because you must stay in a same location and there are no other job opportunities, or you have a job so well-paying that you will never get a high-income job like this and you have high-income requirements like private schools for your kids, then you just have to eat the shit and pretend you like it. Get your enjoyment outside of work.