Pregunta XDG_RUNTIME_DIR no establecido en el entorno


Abro un terminal y uso sudo -s -u mysql. Ahora cuando intento abrir un archivo, cuyo propietario es mysql utilizando gedit xyz.err, Obtengo el 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

¿Hay alguna forma de resolver este error?


1


origen


Creo que podría tener algo que ver con el hecho de que mysql es una cuenta del sistema en lugar de una cuenta de usuario. - faizal
Creo que está relacionado con la forma en que está montada su unidad de disco ¿Está tratando de ejecutarlo desde otra partición? Obtuve un error muy similar y, por lo que puedo decir, la otra unidad (en mi caso) no está montada con permiso ejecutable. Todavía investigando, solo quería que supieras. - elemer82
Posible duplicado de error: XDG_RUNTIME_DIR no establecido en el entorno. Gtk-WARNING **: no se puede abrir la pantalla: - Scott
Ver también diferencia entre sudo y gksudo y Abra una nueva ventana de terminal en otra sesión de usuarioy tal vez también Gtk-WARNING **: no se puede abrir la pantalla y Gtk-ADVERTENCIA con pantalla cuando se usa sudo en nx. - Scott


Respuestas:


Puedes obtener una sesión interactiva usando su - mysql, y luego corre gedit. Funciona para mi.

man sudo no da ningún detalle, pero podría ser que el shell predeterminado se lanzó con -s es muy limitado


0



mi intención es un poco diferente. Quiero mantener un terminal abierto que use los previliges de cuenta mysql. Es por eso que uso el "sudo -s -u mysql". Para que cualquier comando adicional no requiera que use sudo. Usar gksudo para abrir gedit cada vez no sirve realmente para mi propósito. - faizal
Usar "su-mysql" y luego gedit, como se sugiere en la respuesta editada, también me da el mismo error. - faizal


Estás buscando en el lugar equivocado, ejecutando mysql como usuario (del sistema) mysql no resolverá nada.

mysql es un programa cliente, la autenticación al servidor, dirigida por mysqld, se realiza en la conexión (tcpdump port 3306 para que quede claro).

Por lo tanto, puede iniciar mysql con cualquier usuario del "sistema", como:

$ mysql -u root -p localhost

Proporcione la contraseña de administrador ("raíz") cuando se le solicite, y luego debería ver esto:

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>

... y ahí tienes!


0



Perdón por el engañoso OP, pero no tiene nada que ver con el mysql programa. Tiene que ver con abrir un archivo en gedit con una cuenta particular, que resulta ser mysql. - faizal