Está asociando la variable de entorno con su programa, pero en su lugar desea asociarla con su máquina local para que esté disponible para todos los programas. Mire la sobrecarga que toma un EnvironmentVariableTarget
.
var name = "PATH";
var scope = EnvironmentVariableTarget.Machine; // or User
var oldValue = Environment.GetEnvironmentVariable(name, scope);
var newValue = oldValue + @";C:\Program Files\MySQL\MySQL Server 5.1\bin\\";
Environment.SetEnvironmentVariable(name, newValue, scope);