所以我一直在尝试设置我的新工作开发系统,除了 MySQL 之外,我已经正确安装和设置了所有东西。我已经尝试了所有我能想到的方法来访问 mysql root,但什么都没用。
眼镜
- 戴尔 Inspiron 5575
- Ubuntu 18.04 LTS 升级至今
- Mysql 5.7.27
- Mariadb 10.1.14
这是我尝试过的。
安装全新的 MySQL
~$ sudo apt install mysql-server mysql-client
- 这不会记录任何临时密码,也
/var/log/mysqld.log
不会生成。 ~$ mysql -u root
Access denied for user 'root'@'localhost'
- 删除以获得全新安装时
~$ sudo apt purge mysql-server mysql-common mysql-client
~$ sudo apt autoremove mysql-server mysql-common mysql-client
Mysql 安全安装
~$ sudo mysql_secure_installation
- 我正常进行安全安装,报告说它尝试了一个空白密码,询问所有问题并设置我的 root 密码
~$ mysql -u root -p
- 输入我的密码
Access denied for user 'root'@'localhost'
- 似乎没有正确设置密码,或错误地显示已获得访问权限
Mysqld 安全
~$ sudo service mysql stop
- 服务停止
~$ sudo mysqld_safe --skip-grant-tables --skip-networking &
- 我收到了很多不同的回复,但这是最新的一个
mysqld_safe Directory '/var/run/mysqld' for UNIX socket file don't exists.
~$ sudo mkdir -p /var/run/mysqld
~$ sudo mysqld_safe --skip-grant-tables --skip-networking &
mysqld_safe mysqld from pid file /var/run/mysqld/mysqld.pid ended
~$ sudo /usr/sbin/mysqld --skip-grant-tables --skip-networking &
- 速杀
玛利亚布
~$ sudo apt install mariadb-server mariadb-client
- “由于超出超时限制,mariadb.service 作业失败。”
~$ sudo systemctl status mariadb.service
mariadb.service: Start operation timed out. Terminating.
- 好吧,所以 mariadb 也不喜欢我……
我还能尝试什么,或者现在是否存在一些已知的错误影响到我?我觉得自己快要疯了,试图解决这个问题。
解决方案
我的系统要求 MySQL 由超级用户运行。
$ sudo mysql -u root -p
允许我进入。
是什么原因造成的 - 它给了我一个 MySQL 访问被拒绝错误,而不是权限错误,所以我无法判断这是问题所在,但是我确实觉得没有尝试以超级用户身份执行该命令有点愚蠢,简单的错误确实会发生。感谢您标记的答案来帮助我并指出这一点。
答案1
您可能想尝试sudo
在 前面加上mysql -u root -p
。我遇到了类似的问题,最后这样做了。
如果您继续遇到 root 用户问题,我建议您创建一个新用户帐户并赋予其相同的权限。我这样做了,它解决了我很多麻烦。这对我来说是一个有用的资源:https://www.digitalocean.com/community/tutorials/how-to-create-a-new-user-and-grant-permissions-in-mysql