[英]Cannot set password for MySQL root user
我试图让 MySQL 在我的本地主机上运行。 我以前从未发生过这种情况,但是在安装时sudo apt-get install mysql-server
没有要求我提供初始密码。
在搜索“重置”我的密码并与目录权限作斗争的答案后,我目前处于这种状态:
mysql -u root -p
会询问我的密码,在我输入密码后,它会抱怨ERROR 1698 (28000): Access denied for user 'root'@'localhost'
mysql -u root
(no password),它会说ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (2)
mysqld_safe --skip-grant-tables
重置密码的建议,那么我会在此过程中遇到一些小问题:
sudo service mysql stop
sudo mysql_safe --skip-grant-tables
会说mysqld_safe Directory '/var/run/mysqld' for UNIX socket file don't exists.
sudo mkdir -p /var/run/mysqld
和sudo chown mysql /var/run/mysqld
我可以解决这个问题mysqld_safe
将运行并显示消息Starting mysqld daemon with databases from /var/lib/mysql
,然后挂起。 而Ctrl + C并没有让我摆脱那个。mysql -u root
并获得mysql>
提示。use mysql; update user set authentication_string=password('0000') where user='root';flush privileges;
设置一个新密码use mysql; update user set authentication_string=password('0000') where user='root';flush privileges;
use mysql; update user set authentication_string=password('0000') where user='root';flush privileges;
这将告诉我它成功更新了行,并显示消息Rows matched: 1 Changed: 1 Warnings: 1
'PASSWORD' is deprecated and will be removed in a future release.
killall mysqld_safe
说no process found
。 重新启动并输入我的新密码0000
,我将被拒绝访问。 系统是Linux 4.15.0-48-generic #51-Ubuntu SMP
。
如果我运行mysqladmin -u root password '0000'
(没有sudo
),我得到:
mysqladmin:连接到“本地主机”服务器失败
错误:'用户'root'@'localhost'的访问被拒绝
如果我用sudo
运行它,我会得到:
mysqladmin: [警告] 在命令行界面上使用密码可能不安全。
警告:由于密码将以明文形式发送到服务器,请使用 ssl 连接以确保密码安全。
最后一个并没有真正告诉我关于密码更改是否发生的任何信息; 它是否被拒绝(因为它是一个警告,而不是一个错误,我认为它应该通过),但在任何一种情况下,尝试与0000
连接仍然说“访问被拒绝”。
非常感谢有关如何解决此问题的任何建议。
我没有直接用mysql
解决问题; 然而,对我自己来说,可接受的解决方案是切换到不同的数据库软件,但它仍然是一个 MySQL 系统,它让我启动并运行。 因此,如果有人陷入现有解决方案无法像我一样工作的困境,也许这会派上用场,让您上路并最终再次编写代码。
我所做的是:
mysql
/etc/mysql
和/var/lib/mysql
(不知道这一步有没有必要)apt clean
, apt autoremove
, apt update
mariadb
mysqld_safe --skip-grant-tables
方法创建具有所有权限的新用户,因为与root
连接总是失败PHP + MariaDB 现在又可以工作了。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.