I open a terminal and use sudo -s -u mysql. Now when i try to open a file, whose owner is mysql using gedit xyz.err, I get the error :

No protocol specified

** (gedit:23076): WARNING **: Could not open X display
No protocol specified
error: XDG_RUNTIME_DIR not set in the environment.

(gedit:23076): Gtk-WARNING **: cannot open display: :0

Is there some way to resolve this error ?


2 Answers 2


You can get an interactive session by using su - mysql, and then run gedit. Works for me.

man sudo doesn't give any details, but it could be that the default shell launched with -s is very limited.

  • my intention is a bit different. I want to keep a terminal open that uses the mysql account previliges. That is why i use the "sudo -s -u mysql". So that any further commands don't require me to use sudo. Using gksudo to open gedit every time does not really serve my purpose.
    – faizal
    May 14, 2014 at 16:16
  • Using "su - mysql" and then gedit, as suggested in your edited answer, also gives me the same error.
    – faizal
    May 14, 2014 at 16:55

You're looking in the wrong place, running mysql as (system) user mysql won't solve anything.

mysql is a client program, the authentication to the server, run by mysqld, is made on the connection (tcpdump port 3306 to make it clear).

Therefore, you can launch mysql with any "system" user, like:

$ mysql -u root -p localhost

Give the admin ("root") password when prompted, and then you should see this:

Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 240
Server version: 5.5.38-0ubuntu0.14.04.1 (Ubuntu)

Copyright (c) 2000, 2014, Oracle and/or its affiliates. All rights reserved.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.


...and there you go!

  • Sorry for the misleading OP, but it has nothing to do with the mysql program. It is to do with opening a file in gedit with a particular account, which happens to be mysql.
    – faizal
    Aug 9, 2014 at 11:55

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.