我已经按照 mariadb.com 中的官方说明安装了 MariaDB 10.0.14。一行一行。
我正在运行 Ubuntu 14.04(从 12.04 升级)并且已经安装了 MySQL 服务器。当我尝试运行 mariadb 时,我首先停止 MySQL 服务:
$ sudo /etc/init.d/mysql stop
$ sudo /etc/init.d/mariadb start
但是没有任何反应。显然 mariadb.sock 无法创建:
$ mysql -e "SELECT VERSION();" --socket=/opt/mariadb-data/mariadb.sock
ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/opt/mariadb-data/mariadb.sock' (111)
我的错误日志是:
141112 13:50:37 mysqld_safe Starting mysqld daemon with databases from /opt/mariadb-data
141112 13:50:37 [Note] Server socket created on IP: '::'.
141112 13:50:37 [ERROR] mysqld: Can't create/write to file '/var/run/mysqld/mysqld.pid' (Errcode: 13 "Permission denied")
141112 13:50:37 [ERROR] Can't start server: can't create PID file: Permission denied
141112 13:50:37 mysqld_safe mysqld from pid file /var/run/mysqld/mysqld.pid ended
我不明白为什么在启动服务时我的权限被拒绝。我已经创建了新的系统组和用户,都称为 mariadb,它们应该按照说明中的说明处理此问题。
也许我应该为我的/opt/mariadb-data 目录授予完整的读/写权限,但我不确定这是一个好方法。我该怎么办?
最佳答案
尽管@hartmut-holzgraefe 在他的回答中提供了一个很好的解决方案,但我还是决定尝试一种不同的方法。由于它工作得非常好并且独立于我的 MySQL 服务器,我想我也可以与大家分享它。
与尝试将其与 MySQL 一起安装相比,为 MariaDB ( tutum/mariadb ) 使用 Docker 容器被证明是一种更快、也许更清洁的解决方案。
步骤
通过docker运行mariadb的步骤是:
- Install Docker
- Pull whichever version of MariaDB you want from tutum-docker-mariadb (in my case 10.1)
- Build an image and run it to set up a container
命令
第 3 步的命令列在存储库的自述文件中。 我只会提到您可能想要显式预设主机名和机器端口,如下所示:
# build the image
docker build -t tutum/mariadb .
# run it
docker run -d -p 127.0.0.1:3307:3306 -e MARIADB_PASS="mypass" tutum/mariadb
# connect to mariadb
mysql -uadmin -pmypass -h127.0.0.1 -P3307
- admin 是在初始运行时创建的默认用户 容器
- mypass 是覆盖随机的自定义通行证 最初生成的密码(否则你必须使用 docker logs 来获取它)
- 127.0.0.1:3307:3306 意味着您将容器内的 3306 端口与 本地主机上的 3307 端口。
关于mysql - 在 Ubuntu 14.04 上与 MySQL 一起安装后无法启动 MariaDB,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26886639/