sudo pycharm error:Can‘t connect to X11 window server using ‘localhost:12.0‘ as the value of

问题描述

系统:Red Hat
前提是只输入pycharm能正常打开PyCharm,但是用sudo pycharm会出现如下报错:

$ sudo pycharm
Apr 14, 2022 11:12:13 PM java.util.prefs.FileSystemPreferences$6 run
WARNING: Prefs file removed in background /root/.java/.userPrefs/prefs.xml
2022-04-14 23:12:13,344 [    176]   WARN - llij.ide.plugins.PluginManager - Resource bundle redefinition for plugin 'com.jetbrains.pycharm.community.customization'. Old value: messages.ActionsBundle, new value: messages.PyBundle
MoTTY X11 proxy: Unsupported authorisation protocol
2022-04-14 23:12:13,561 [    393]  ERROR - llij.ide.plugins.PluginManager - UI initialization failed
com.intellij.ide.plugins.StartupAbortedException: UI initialization failed
        at com.intellij.idea.StartupUtil.lambda$prepareApp$3(StartupUtil.java:195)
        at java.base/java.util.concurrent.CompletableFuture.uniExceptionally(CompletableFuture.java:986)
        at java.base/java.util.concurrent.CompletableFuture$UniExceptionally.tryFire(CompletableFuture.java:970)
        at java.base/java.util.concurrent.CompletableFuture.postComplete(CompletableFuture.java:506)
        at java.base/java.util.concurrent.CompletableFuture.completeExceptionally(CompletableFuture.java:2088)
        at com.intellij.idea.StartupUtil.lambda$scheduleInitUi$9(StartupUtil.java:396)
        at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
        at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
        at java.base/java.util.concurrent.Executors$PrivilegedThreadFactory$1$1.run(Executors.java:668)
        at java.base/java.util.concurrent.Executors$PrivilegedThreadFactory$1$1.run(Executors.java:665)
        at java.base/java.security.AccessController.doPrivileged(Native Method)
        at java.base/java.util.concurrent.Executors$PrivilegedThreadFactory$1.run(Executors.java:665)
        at java.base/java.lang.Thread.run(Thread.java:829)
Caused by: java.util.concurrent.CompletionException: java.awt.AWTError: Can't connect to X11 window server using 'localhost:10.0' as the value of the DISPLAY variable.
        at java.base/java.util.concurrent.CompletableFuture.encodeThrowable(CompletableFuture.java:331)
        at java.base/java.util.concurrent.CompletableFuture.completeThrowable(CompletableFuture.java:346)
        at java.base/java.util.concurrent.CompletableFuture$BiRelay.tryFire(CompletableFuture.java:1423)
        ... 10 more
Caused by: java.awt.AWTError: Can't connect to X11 window server using 'localhost:10.0' as the value of the DISPLAY variable.
        at java.desktop/sun.awt.X11GraphicsEnvironment.initDisplay(Native Method)
        at java.desktop/sun.awt.X11GraphicsEnvironment$1.run(X11GraphicsEnvironment.java:102)
        at java.base/java.security.AccessController.doPrivileged(Native Method)
        at java.desktop/sun.awt.X11GraphicsEnvironment.<clinit>(X11GraphicsEnvironment.java:61)
        at java.base/java.lang.Class.forName0(Native Method)
        at java.base/java.lang.Class.forName(Class.java:315)
        at java.desktop/java.awt.GraphicsEnvironment$LocalGE.createGE(GraphicsEnvironment.java:101)
        at java.desktop/java.awt.GraphicsEnvironment$LocalGE.<clinit>(GraphicsEnvironment.java:83)
        at java.desktop/java.awt.GraphicsEnvironment.getLocalGraphicsEnvironment(GraphicsEnvironment.java:129)
        at java.desktop/sun.awt.X11.XToolkit.<clinit>(XToolkit.java:233)
        at java.base/java.lang.Class.forName0(Native Method)
        at java.base/java.lang.Class.forName(Class.java:315)
        at java.desktop/java.awt.Toolkit$2.run(Toolkit.java:588)
        at java.desktop/java.awt.Toolkit$2.run(Toolkit.java:583)
        at java.base/java.security.AccessController.doPrivileged(Native Method)
        at java.desktop/java.awt.Toolkit.getDefaultToolkit(Toolkit.java:582)
        at java.desktop/java.awt.Toolkit.getEventQueue(Toolkit.java:1499)
        at java.desktop/java.awt.EventQueue.invokeLater(EventQueue.java:1318)
        at com.intellij.idea.StartupUtil.lambda$scheduleInitUi$9(StartupUtil.java:347)
        ... 7 more
2022-04-14 23:12:13,565 [    397]  ERROR - llij.ide.plugins.PluginManager - PyCharm 2021.1.2  Build #PC-211.7442.45
2022-04-14 23:12:13,574 [    406]  ERROR - llij.ide.plugins.PluginManager - JDK: 11.0.11; VM: Dynamic Code Evolution 64-Bit Server VM; Vendor: JetBrains s.r.o.
2022-04-14 23:12:13,574 [    406]  ERROR - llij.ide.plugins.PluginManager - OS: Linux

Start Failed
Failed to initialize graphics environment

java.awt.AWTError: Can't connect to X11 window server using 'localhost:12.0' as the value of the DISPLAY variable.

解决方法

cd ~
vim .bashrc

xhost + local:all添加到 export的后面一行,PATH的前面一行
之后:wq保存

然后终端输入env |grep DISPLAY,将结果复制

$ env |grep DISPLAY
DISPLAY=localhost:12.0

然后寻找 pycharm.sh 文件

bgone@federo~
$ which pycharm
/usr/local/bin/pycharm
bgone@federo~
$ cd /usr/local/bin/
bgone@federo /usr/local/bin
$ ll |grep pycharm
lrwxrwxrwx 1 root root          46 Apr 14 12:19 pycharm -> /opt/pycharm-community-2021.1.2/bin/pycharm.sh
bgone@federo /usr/local/bin
$ cd /opt/pycharm-community-2021.1.2/bin
bgone@federo /opt/pycharm-community-2021.1.2/bin
$ vim pycharm.sh

export DISPLAY=localhost:12.0添加到脚本开头,没有权限要先授权;保存关闭后,
打开一个终端输入pycharm,出现pycharm窗口后,再开一个终端,输入sudo pycharm,会再出现一个窗口,把两个都关掉,重启之后用sudo pycharm就能打开pycharm了

如果还有问题,可以留言或私信,并把问题描述清楚。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
根据你提供的引用内容,出现"ERROR 2003 (HY000): Can't connect to MySQL server on 'localhost' (10061)"错误通常是由于以下几个原因导致的: 1. MySQL服务器未启动:请确保MySQL服务器已经成功启动。你可以在终端中输入以下命令来检查MySQL服务器的状态: ```shell sudo service mysql status ``` 如果MySQL服务器未启动,你可以使用以下命令来启动它: ```shell sudo service mysql start ``` 2. MySQL服务器监听的IP地址不正确:请确保MySQL服务器配置文件中的bind-address参数设置为正确的IP地址。你可以编辑MySQL配置文件(通常是/etc/mysql/mysql.conf.d/mysqld.cnf)并将bind-address参数设置为正确的IP地址,例如: ```shell bind-address = 0.0.0.0 ``` 然后重新启动MySQL服务器。 3. 防火墙阻止了连接:请确保防火墙允许从本地主机连接到MySQL服务器的端口(默认为3306)。你可以使用以下命令来打开防火墙的3306端口: ```shell sudo ufw allow 3306 ``` 如果你使用的是其他防火墙软件,请根据其文档或配置文件进行相应的设置。 4. MySQL用户权限问题:请确保你使用的MySQL用户具有从远程主机连接到MySQL服务器的权限。你可以使用以下命令来为用户授予远程访问权限: ```shell GRANT ALL PRIVILEGES ON *.* TO 'username'@'%' IDENTIFIED BY 'password' WITH GRANT OPTION; ``` 其中,'username'是你要授予权限的用户名,'password'是该用户的密码。请注意,这样做会允许任何远程主机连接到MySQL服务器,请谨慎使用。 如果你仍然无法解决问题,请提供更多关于你的环境和配置的详细信息,以便我们能够更好地帮助你解决问题。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值