Parece um problema de PATH. Quando você digita um nome de comando no terminal como você faz ao digitar mysql, na verdade o terminal está tentando encontrá-lo na pasta especificada na variável PATH, e eu acho que essa variável não contém a mesma pasta quando você está rodando X e quando você não é.
Quando você está rodando com o X, e você pode usar o mysql, digite whereis -b mysql
, você deve obter algo como /path/to/mysql
ou similar.
Em seguida, vá para sua sessão no-X e digite o caminho completo /path/to/mysql -u dsl
e ele deve funcionar.
Para torná-lo permanente, você deve modificar seu .bash_profile se estiver usando o bash. Escreva uma linha como esta: export PATH='/path/to:$PATH
e depois da linha de comando . .bash_profile
ou reconecte-se.