我将其添加export PATH=$PATH:/opt/lampp/bin/
到我的~/.zshrc
文件中。我可以访问 php,但每当我输入时,sudo mysql -uroot
都会看到以下消息:
错误 2002 (HY000):无法通过套接字“/var/run/mysqld/mysqld.sock”连接到本地 MySQL 服务器 (2)
但是,我可以通过像这样定义完整路径来访问 mysql:。sudo /opt/lampp/bin/mysql -uroot
但我不想这样...我的意思是我每次都必须输入完整路径或创建别名或符号链接。
我在 Ubuntu 16.04 上使用 zshell。
答案1
您安装了两个版本的 mysql - 一个来自 Ubuntu 存储库,另一个来自第三方位置。当您使用位于 的 Ubuntu 版本时,/usr/bin/mysql
尝试通过默认位置的套接字进行连接,/var/run/mysqld/mysqld.sock
但这不起作用,因为运行的服务器不是 Ubuntu 库存 mysql-server。
当您运行时它就可以工作/opt/lampp/bin/mysql -uroot
(顺便说一下,没有理由以 root 身份运行它),因为这个 mysql 二进制文件将默认路径设置为实际套接字所在的位置。
您有三种选择:
- 修改您的路径,使
/opt/lampp/bin/ is before
/usr/bin/` 在路径中。这将在 Ubuntu 版本之前执行 mysql 的 lampp 版本。 - 使用 卸载 Ubuntu mysql 客户端
sudo apt-get remove mysql-client
。这可能会破坏其他软件包。 - 卸载 lampp 并从 Ubuntu 安装所需的软件包。
第三个是我首选的解决方案。从存储库获取所有软件可确保软件保持最新、(大部分)兼容,并且具有清晰、定义良好的升级路径,可升级到下一个 Ubuntu 版本。
Ubuntu 存储库中提供 Apache、PHP、Mysql/MariaDB 和许多 apache 模块。