How to correct inaccurate steering vectors (SV) is an important issue for many beamformers. A SV consists of two essential components: weights and phases. In this work, we propose two novel methods to correct respectively a SV's weights and phases, under anechoic or low reverberant conditions. In an anechoic condition, the SV's weights are constant across frequency bins, and we derive an analytic solution to update weights. In a low reverberant condition, we use a constrained polynomial regression to fit SV's weights across frequency bins, which is further cast as a solvable convex optimization problem. To correct SV's phases, we exploit the linear phase relation across frequency bins in a SV of a microphone channel, and solve the optimization problem mainly by Newton's method. We have evaluated our proposed approach on simulated multi-channel noisy speech based on CHiME-3 and LibriSpeech, and obtained promising results in PESQ and STOI of MVDR enhanced speech.