你好,我在全新的 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 连接。