Mariadb 在 Ubuntu 16.04 上安装后无法正常工作

Mariadb 在 Ubuntu 16.04 上安装后无法正常工作

你好,我在全新的 Ubuntu 16.04 VPS 上安装了 MariaDB 服务器和 mariaDB 客户端、php7.0-mysql,但安装后我无法使用 PhpMyAdmin 登录,当我尝试使用 PHPMyAdmin 登录时,它总是给出“拒绝用户‘root’@‘localhost’访问”的错误。

这是一些信息。如果尝试获取状态

root@ubuntu-2gb-ams2-01:/var/lib# 服务 mariadb 状态
● mariadb.service
   已加载:未找到(原因:没有此文件或目录)
   活跃:不活跃(死亡)

当我尝试开始得到这个

# 启动 MariaDB 服务
无法启动 mariadb.service:未找到单元 mariadb.service。

我可以使用 SSH 登录并创建新数据库

root@ubuntu-2gb-ams2-01:/var/lib# mysql -u root -p
输入密码:
欢迎使用 MariaDB 监视器。命令以 ; 或 \g 结尾。
您的 MariaDB 连接 ID 是 61
服务器版本:10.0.27-MariaDB-0ubuntu0.16.04.1 Ubuntu 16.04

版权所有 (c) 2000、2016,Oracle、MariaDB Corporation Ab 及其他。

输入“help;”或“\h”获取帮助。输入“\c”清除当前输入语句。

MariaDB [(无)]> 创建数据库抗议;
查询成功,1 行受影响 (0.00 秒)

如果我想查看数据库,那么我可以看到所有数据库

root@ubuntu-2gb-ams2-01:/var/lib# mysql -u root -p -e'显示数据库'
输入密码:
+--------------------+
| 数据库 |
+--------------------+
| 信息模式 |
|mysql|
| 性能模式 |
| 抗议 |
+--------------------+

因此看起来 Mariadb 已经安装了,但不明白为什么状态显示死亡、启动/重启不起作用、前端登录不起作用(使用 phpmyadmin,有人能给个提示吗?

更新:我刚刚创建了另一个数据库和用户,我可以登录该用户并使用 phpmyadmin 访问数据库。

答案1

如果你检查的话mysql --version它应该会显示类似这样的内容:

mysql  Ver 15.1 Distrib 10.1.16-MariaDB, for debian-linux-gnu (x86_64) using readline 5.2

然后你就知道你确实在运行 mariaDB,然后你可以简单地

sudo service mysql restart

一切都会好起来!

值得查找该文件来/lib/systemd/system/mariadb.service查看它是否使用mysqld

答案2

玛拉雅数据库运行,只是它伪装成 MySQL(鬼鬼祟祟)。MariaDB 是 MySQL 的替代品,因此您可以使用 CLI 命令$ mysql等启动 MariaDB 监视器。以某种方式直接指定 MySQL 的所有交互实际上都会影响 MariaDB。(我不知道如果您也在运行 MySQL 会发生什么!)因此要运行 MariaDB,命令是

$ service mysql start

再次尝试

$ service mysql status

生成大量信息,包括如下内容:

...
16 08:19:55 <YR-CMPTR> mysqld[1769]: Version: '10.0.28-MariaDB-0ubuntu0.16.04.1'  socket: '/var/run/mysqld/mysqld.sock'  port: 3306
...

所有通常使用 MySQL 的应用程序甚至都不会注意到它们正在与 MariaDB 交互。

答案3

我相信状态仍然使用 MySQL 的名称作为 MariaDB 包。尝试

service mysql status

这应该会给你一个“活动(正在运行)”状态。

从 MySQL 迁移到 MariaDB 后,我无法以 root 身份从我的(开发)Chamilo 门户(一个电子学习平台)以 PHP 形式登录(因此通过 TCP/IP 连接)。但是,我可以从命令行完美连接。

检查mysql.user,我发现“插件”列显示“unix_socket”。这都是因为自MySQL 5.5和MariaDB 5.2以来通过插件对身份验证进行了新的管理。

我通过重新授予 root 所有权限(不提及任何插件)来修复此问题:

grant all privileges on *.* to root@'127.0.0.1' identified by 'mypass';
flush privileges;

这只是清空了“插件”列,我可以再次通过 TCP/IP 连接。

相关内容