我正在使用MariaDB(而不是MySQL)安装FrontAccounting,仅供我个人使用,通过http://localhost/frontaccounts
上的浏览器访问它。但尝试以root
身份登录以设置数据库无法正常工作:无法连接到数据库。用户或密码无效...... 。尝试在phpMyAdmin,SQLbuddy,MySQL Workbench等中以root
身份登录时会出现类似的错误消息。
(事实上,MySQL也会出现这个问题,所以你可以用以下的方式替换“MySQL' MariaDB'”。
我的问题是,我尝试以root
从我的计算机的IP地址(root@MYCOMPUTER
)(在互联网外部可见)登录到运行在&#上的服务器34;不同"需要root@localhost
的IP地址(127.0.0.1,localhost) - 即使它是同一台计算机!
如何解决这个问题?
答案 0 :(得分:1)
我最终找到的以下答案将允许您在一个IP地址创建用户以访问另一个地址的MariaDB(MySQL)服务器,即使该地址为127.0.0.1
或localhost
。
在终端窗口中,键入:
$ sudo mysql -u root -p -h localhost
输入您的密码:
[sudo] password for YOURUSERNAME:
键入MariaDB root
密码,或按Enter键(默认空密码):
Enter password:
MariaDB Monitor欢迎横幅出现......
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.
...并且monitor命令提示符等待您的输入(none
表示您尚未连接到任何数据库):
MariaDB [(none)]>
在localhost
创建MariaDB 将接受的用户,然后退出:
MariaDB [(none)]> CREATE USER 'root'@'%';
-> \q;
Bye
~$
这使您至少可以连接,并且是允许其他用户连接的模型。这些最小的指令会留下安全漏洞,因此,在MariaDB上创建用户后,给他们密码(不要忘记root
),并授予权限和角色,这些漏洞将被关闭。
为了提高安全性,请指定用户计算机的IP地址,例如'root'@'localhost'
代替'root'@'%'
。