(Just FYI - I am cofounder of a company (Digité) that builds and sells enterprise software to a variety of technology organizations, so I have some background on these topics :-) )
Agile and Scrum are related, in that they are software development methods. Agile is an umbrella term for specific methods such as Scrum, Extreme Programming (XP) and others.
CMMI, on the other hand, is a quality management framework useful for large organizations that need to measure themselves in terms of their overall capability and maturity to demonstrate repeatable quality of software work they do. Organizations can use a mix of software development methods - Agile methods (such as Scrum/ Kanban/ XP/ BDD/ TDD/ etc), 'traditional' methods (Waterfall, Iterative) or a mix (Hybrid Agile), depending on their business needs. They can still use CMMI as an overall governance framework to measure and develop their software capabilities.
Definitely, as a solo developer, you don't need to worry about CMMI!
Agile methods in general give you the ability to build your software with less risk, greater chances of success and early warnings that what you are developing may not be the right product (as I am sure you know, it is not only important to build your product right - but also to build the right product). Even if you are a solo developer, you must have other people you (need to) interact with, especially your customer(s). Agile methods such as Scrum or Kanban give you the ability to deliver to them working software more often (in sprints of every 2-3 weeks), get their feedback more often, and take corrective steps more often than otherwise. Kanban helps you do it even more continuously. I'd recommend the following books, if you have not read any others so far -
- Scrum - The Power of Scrum - by Jeff Sutherland
- Kanban - Successful Evolutionary Change for your Technology Organization - by David Anderson. (If you need a basic introduction to Kanban, you can look here - What is Kanban?)
To answer your final question, I would recommend starting with Kanban. My assumption is that you already have some process you follow to build and deliver software to your customers. Kanban will help you map your existing process, help you "visualize" it - and help in delivering more often/ more continuously. And make improvements in your process to help you become more agile overall. If you do want something more formal and structured, you should adopt Scrum. It may require greater effort up-front - but don't worry too much about it's formal structures, instead focus on its fundamental intent of delivering working software more often to your customer.
Hope this helps.