Родился в деревне Тоторшево, ныне Ардатовского муниципального округа Нижегородской области. С 1928 года жил в посёлке Кулебаки, после окончания Кулебакской школы фабрично-заводского обучения работал подручным сталевара и сталеваром до призыва в Красную Армию в 1931 году. После окончания Саратовской бронетанковой школы проходил службу командиром взвода роты, слушателем Академии им. М.В. Фрунзе. За несколько месяцев до начала войны капитан Маряхин получил назначение на должность начальника штаба танкового полка. В первом же бою, командуя отрядом из десяти танков Т-34, разбил большую колонну противника. В ноябре 1941 года майор Маряхин – командир моторно-стрелкового батальона, с апреля 1942 года – начальник оперативного отдела штаба танковых и механизированных войск фронта, а затем и начальник штаба. С апреля 1944 года – начальник оперативного отдела штаба танковой армии. В 1950 году окончил Военную академию Генерального штаба, продолжил военную на командных и штабных должностях, находился на преподавательской работе в Военной академии Генерального штаба. В 1958 – 1960 годах – командующий 7-й гвардейской общевойсковой армией Закавказского военного округа. С 1960 года – первый заместитель командующего Северной группой войск (СГВ). С 1963 года – командующий Северной группой войск (СГВ) на территории Польши. С 1964 года – командующий войсками Белорусского военного округа. С 1967 года – первый заместитель начальника тыла Вооружённых Сил СССР. В 1968 – 1972 годах – заместитель Министра обороны СССР – начальник тыла Вооружённых Сил. Генерал армии (22.02.1968). Депутат Верховного Совета СССР 7-8-го созывов (1966-1972 гг.). Жил в Москве, похоронен на Новодевичьем кладбище. Награды: ордена Ленина (29.05.1945, 30.12.1956, 06.10.1971), Красного Знамени (04.01.1942, 04.1944), Суворова 2-й степени (06.04.1945), Богдана Хмельницкого 2-й степени (25.08.1944), Отечественной войны 1-й степени (10.01.1944), Красной Звезды (09.02.1943, 06.05.1946), медали, в т. ч. «За боевые заслуги» (03.11.1944). Память: в городе Кулебаки его именем названа улица (бывшая Южная), и на доме № 6 установлена мемориальная доска. В рабочем посёлке Ардатове улица Заречная, где он родился и провёл детство, в 1975 году была переименована в улицу имени генерала Маряхина.