Here are the most likely causes:
* Low battery voltage: This is the most common cause. A weak battery can't supply enough power to the starter motor, resulting in a whine and a no-start condition. Test your battery voltage with a multimeter. It should be around 12.6 volts when fully charged.
* Bad starter motor: The starter itself might be failing. The internal components could be worn out, causing it to whine but not turn over the engine.
* Bad starter solenoid: The solenoid is an electromagnet that engages the starter motor. If it's faulty, it won't properly engage the starter, resulting in the whine.
* Faulty ignition switch: While less likely, a failing ignition switch could prevent the starter from receiving enough power.
* Loose or corroded connections: Check the battery terminals, starter motor connections, and any other related wiring for corrosion or looseness. Clean them with a wire brush and reconnect them securely.
* Broken or stripped flywheel teeth: This is less common, but a damaged flywheel prevents the starter from gripping properly.
What to do:
1. Check the battery: Test its voltage and consider having it load tested at an auto parts store. If the battery is low or failing, replace it.
2. Check connections: Inspect all cables and connections related to the battery and starter motor for corrosion or looseness.
3. Have the starter motor tested: This is best done by a mechanic or at an auto parts store. They can diagnose if the starter itself is faulty.
4. Consider the solenoid: If the starter motor tests okay, the solenoid is the next suspect. It's often relatively inexpensive to replace.
Ignoring this problem can leave you stranded. It's advisable to get it diagnosed and fixed promptly.