如何连接到localhost上的MariaDB(MySQL)实例?

如何连接到localhost上的MariaDB(MySQL)实例?,mysql,linux,login,connection,mariadb,Mysql,Linux,Login,Connection,Mariadb,我使用MariaDB(而不是MySQL)安装FrontAccounting只是为了我个人使用,通过http://localhost/frontaccounts。但尝试以root身份登录以设置数据库无效:无法连接到数据库。用户或密码无效。在phpMyAdmin、SQLbuddy、MySQL Workbench等中尝试以root身份登录时,也会出现类似的错误消息 (事实上,MySQL也可能出现此问题,因此您可以在下面出现“MariaDB”的地方替换“MySQL”。) 问题是我正试图从我的计算机IP地

我使用MariaDB(而不是MySQL)安装FrontAccounting只是为了我个人使用,通过
http://localhost/frontaccounts
。但尝试以
root
身份登录以设置数据库无效:无法连接到数据库。用户或密码无效。在phpMyAdmin、SQLbuddy、MySQL Workbench等中尝试以
root
身份登录时,也会出现类似的错误消息

(事实上,MySQL也可能出现此问题,因此您可以在下面出现“MariaDB”的地方替换“MySQL”。)

问题是我正试图从我的计算机IP地址(
root@MYCOMPUTER
),对于运行在需要
root@localhost
——即使是同一台计算机


如何解决这个问题

我最终找到的以下答案将允许您在一个IP地址创建一个用户,以访问另一个地址的MariaDB(MySQL)服务器,即使该地址是
127.0.0.1
localhost

在终端窗口中,键入:

$ sudo mysql -u root -p -h localhost
键入您的密码:

[sudo] password for YOURUSERNAME: 
Enter password: 
键入MariaDB
root
密码,或按Enter键(默认为空密码):

此时会出现MariaDB监视器欢迎横幅

Welcome to the MariaDB monitor.  Commands end with ; or \g.
Your MariaDB connection id is 39
Server version: 10.0.28-MariaDB-0ubuntu0.16.04.1 Ubuntu 16.04
Copyright (c) 2000, 2016, Oracle, MariaDB Corporation Ab and others.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
。。。监视器命令提示符等待您的输入(
none
表示您尚未连接到任何数据库):

localhost
创建MariaDB将接受的用户,然后退出:

MariaDB [(none)]> CREATE USER 'root'@'%';
     -> \q;
Bye
~$
这至少允许您连接,并且是允许其他用户连接的模型。这些最小的指令会留下安全漏洞,因此,在您在MariaDB上创建用户、给他们密码(不要忘记
root
)并授予特权和角色后,这些漏洞将被关闭


为增加安全性,请指定用户计算机的IP地址,例如
'root'@'localhost'
而不是
'root'@%

Stack Overflow是编程和开发问题的网站。这个问题似乎离题了,因为它与编程或开发无关。请参见帮助中心中的。也许或者会是一个更好的提问的地方。也看到
MariaDB [(none)]> CREATE USER 'root'@'%';
     -> \q;
Bye
~$