There are tricks for looking people in the eyes. You don't have to look directly in the eyes - you can look at their forehead, or behind their head, or even in their general direction. It will look the same. In fact, you can only look at them when they're speaking, and glance away if you need a break or if it's something uninteresting. Eye contact does not have to be maintained 100% of the time, only when something is being said that requires focus, because eye contact shows that you are paying attention. If someone's talking about another object or person, for example, you can look at that object or person and not worry about eye contact. Once you get used to looking in their general direction or at their forehead instead of the eyes, and practice this a lot, you will get more comfortable looking people in the eyes. (Note this might take a long time and it might still feel uncomfortable, but you'll have practice and know that even if you don't want to look directly in the eyes you can do those other tricks so it isn't as stressful.)
As for looking in the mirror... I have that same problem and I put it down to self-hatred. Until I look in the mirror I can pretend I look however I want, and I don't have to confront reality. When I do have to look in the mirror I sort of phase out the areas I don't need to focus on and just pretend it's someone else.