Questão XDG_RUNTIME_DIR não definido no ambiente


Eu abro um terminal e uso sudo -s -u mysql. Agora, quando eu tento abrir um arquivo, cujo dono é mysql usando gedit xyz.err, Eu recebo o erro:

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

Existe alguma maneira de resolver esse erro?


1


origem


Eu acho que pode ter algo a ver com o fato de que o mysql é uma conta do sistema ao invés de ser uma conta de usuário. - faizal
Eu acho que está relacionado com a maneira como está montado o seu Drive. Você está tentando executá-lo a partir de outra partição? Eu tenho um erro muito semelhante e, tanto quanto eu posso dizer é sobre a outra unidade (no meu caso) não é montada com permissão executável. Ainda investigando, só queria que você soubesse. - elemer82
Duplicação possível de erro: XDG_RUNTIME_DIR não definido no ambiente. Gtk-WARNING **: não pode abrir o display: - Scott
Veja também diferença entre sudo e gksudo e Abra uma nova janela de terminal em outra sessão de usuárioe talvez também Gtk-WARNING **: não é possível abrir a tela e Gtk-WARNING com display ao usar sudo em nx. - Scott


Respostas:


Você pode obter uma sessão interativa usando su - mysqle, em seguida, execute gedit. Funciona para mim.

man sudo não dá detalhes, mas pode ser que o shell padrão seja lançado com -s é muito limitado.


0



minha intenção é um pouco diferente. Eu quero manter um terminal aberto que usa a conta do mysql previliges. É por isso que eu uso o "sudo -s -u mysql". Assim, quaisquer comandos adicionais não exigem que eu use o sudo. Usar o gksudo para abrir o gedit toda vez não serve realmente ao meu propósito. - faizal
Usando "su - mysql" e, em seguida, o gedit, como sugerido na sua resposta editada, também me dá o mesmo erro. - faizal


Você está procurando no lugar errado, rodando mysql como (sistema) o usuário mysql não resolve nada.

mysql é um programa cliente, a autenticação para o servidor, executada por mysqld, é feito na conexão (porta tcpdump 3306 para deixar claro).

Portanto, você pode iniciar o mysql com qualquer usuário "sistema", como:

$ mysql -u root -p localhost

Dê a senha admin ("root") quando solicitado, e então você deve ver isto:

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
owners.

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

mysql>

... e lá vai você!


0



Desculpe pelo OP enganador, mas não tem nada a ver com o mysql programa. Tem a ver com abrir um arquivo em gedit com uma conta específica, que acontece de ser mysql. - faizal