123

I'm using sudo su to start mysql and do some homework with it.

When I finish with mysql (or any other command), then I'm still in sudo.

How do I "log out", so my prompt changes back from # to $?

3
  • 7
    Use exit command ..
    – Vutukuri
    Apr 5, 2012 at 17:50
  • 15
    exit or a simple Ctrl+D. I remember when I first discovered the latter and my life got ten times simpler :-D . Apr 6, 2012 at 9:42
  • 1
    Apart from the good answers below there remains one point: if you need a shell with root permissions on Ubuntu you type sudo -i (and leave it with CTRL+D)
    – guntbert
    Jul 13, 2013 at 21:12

6 Answers 6

147

You don't need to use sudo and su together--su switches your user account (without arguments it switches you to root). sudo just elevates your privileges to root for the current command.

It's reccomended to use sudo instead of su if possible, but to return to your normal account after calling su, simply use the exit command

6
  • 10
    sudo su will switch to the root account even if you don't know the root password.
    – Rob
    Apr 5, 2012 at 18:19
  • 3
    There are differences between sudo su, sudo and su, and it's worth knowing those differences for safety reasons but also for your convenience. johnkpaul.tumblr.com/post/19841381351/su-vs-sudo-su-vs-sudo-u-i Apr 5, 2012 at 18:22
  • @Rob but still it may not set the environment in a desired way - use sudo -i instead (in Ubuntu the root account is disabled by default = there exists no valid password)
    – guntbert
    Jul 13, 2013 at 21:15
  • 2
    @Rob or sudo -s for shell. Sep 3, 2015 at 20:11
  • Nothing suggested here works
    – Totty.js
    Jan 20, 2016 at 23:52
34

Use

su username

to get back to your user level (or a different user)

Or just press Ctrl+D to exit out of root

5
  • 8
    you don't want to su deeper... Ctrl-D or exist or logout are all good choices
    – Ram
    Apr 5, 2012 at 20:08
  • 1
    @Ram - you made an important point. But there's a typo in your comment. It should be exit (not exist).
    – MountainX
    Jul 13, 2013 at 18:08
  • typo indeed @MountainX ... CTRL-D, exit, logout etc.
    – Ram
    Jul 13, 2013 at 20:39
  • This is the only answer that actually works.
    – Totty.js
    Jan 20, 2016 at 23:52
  • 2
    @Totty.js Then you're using su wrong.
    – Nic
    Sep 26, 2018 at 17:28
9
  • logout if used sudo su -
  • exit if used sudo -s
2

if your stuck after using sudo su as root: to exit use this command

su -l <user_name>
0

There isn't any reason to use sudo or su to run the MySQL command-line client. It defaults to using your current Unix user as your MySQL user, but instead you should pass it the user you want to connect to as arguments:

$ mysql -u root # connect as MySQL's root user (without password)
$ mysql -u root -p # -p means prompt for a password

Hopefully, your MySQL root account has a password, and you'll need to use the second form.

Other than that, if you need to run MySQL under sudo (e.g., for file permissions) then do it like this:

$ sudo -u unix-user mysql -u mysql-user -p

You can leave out the arguments (sudo will default to user root, MySQL will default to using the same user as sudo).

0

if you get access denied message -for example - while login to mysql with root password like:

mysql -u root -p

try:

sudo mysql -u root -p

for one time elevation of privileges, for multiple commands use:

sudo su

you will notice that your terminal changed to [root@yourpc]# then whatever commands you like to run when you want to return back to your own user hit ctrl + d , type exit or

su username

your terminal will be back to [username@yourpc]# and you are now using you own user permissions

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.