我没有使用php mysql很长一段时间,现在我需要再次使用它。但问题是我忘记了mysql console的密码。当尝试登录phpmyadmin时收到错误#1045。 在mysql站点中,我看到一篇文章如何重置root密码(http://dev.mysql.com/doc/refman/5.0/en/resetting-permissions.html#resetting-permissions-windows)
步骤是
创建一个包含UPDATE的mysql-init.txt文件mysql.user SET Password = PASSWORD('newpass')WHERE User ='root';
FLUSH PRIVILEGES;
我把它保存为C:\ me \ mysql-init
在命令提示符下我写了 - C:\ wamp \ bin \ mysql \ mysql5.5.8 \ bin \ mysqld --init-file = C:\ me \ mysql-init.txt
我尝试使用双反斜杠..但是它没有工作.mysql控制台要求输入密码而不接受新密码。我做错了什么?我有几张表。怎么办? 提前谢谢。
答案 0 :(得分:11)
尝试使用--skip-grant-tables
启动mysqlmysqld --skip-grant-tables
然后使用mysql命令行连接到没有用户名/密码的mysqld
shell> mysql
然后发出命令
> mysql> UPDATE mysql.user SET Password=PASSWORD('MyNewPass')
> WHERE User='root'; mysql> FLUSH PRIVILEGES;
答案 1 :(得分:7)
在阿德莱夫的工作回答中,我无法得到mysqld
。但这对我有用
使用--skip-grant-tables停止并启动mysql
service mysql.server stop
service mysql.server start --skip-grant-tables
然后连接到没有用户名/密码的mysqld
mysql
然后在mysql命令行上更新密码
mysql> UPDATE mysql.user SET Password=PASSWORD('MyNewPass') WHERE User='root';
mysql> FLUSH PRIVILEGES;
mysql> \q
然后正常重启mysql
service mysql.server restart
答案 2 :(得分:1)
如果其他答案无能为力,您可以尝试卸载/重新安装mysql。它适用于我的ubuntu服务器:
$sudo apt-get purge mysql*
$sudo apt-get autoremove
$sudo apt-get autoclean
更新分发
$sudo apt-get dist-upgrade
重新安装
$sudo apt-get install mysql-server
答案 3 :(得分:1)
这是要遵循的步骤:
$ mysql --help | grep -A 1 "Default options"
在Ubuntu 16上,文件位置通常为/etc/mysql/mysql.conf.d/mysqld.cnf
使用以下命令编辑配置文件:$ sudo nano /etc/mysql/mysql.conf.d/mysqld.cnf
在skip-grant-tables
块下添加[mysqld]
并保存更改。
使用sudo service mysql restart
检查MySQL服务状态:sudo service mysql status
使用$ mysql -u root
并更改root
密码:
mysql>冲洗特权;
mysql> ALTER USER'root'@'localhost'与IDENTIFIED WITH mysql_native_password BY'MyNewPass';
通过删除skip-grant-tables
行或使用#
(哈希)对其进行注释来恢复MySQL配置文件的更改。
最后重新启动MySQL服务,您一切顺利。
答案 4 :(得分:0)
CREATE USER 'tester'@'localhost' IDENTIFIED BY 'Pass123#d'
GRANT ALL PRIVILEGES ON sakila.* TO 'tester'@'localhost'
ALTER USER 'tester'@'localhost' IDENTIFIED BY 'Pass123#d'
(或者如果您知道authentication_string直接将其设置为更新)
UPDATE mysql.user
SET authentication_string='*F9B62579F38BE95639ACB009D79427F2D617158F'
WHERE USER='root'***
在较低版本的mysql中更改密码
GRANT USAGE ON *.\* TO 'tester'@'localhost' IDENTIFIED BY 'Pass123#d'
SET PASSWORD FOR 'tester'@'localhost' = PASSWORD('Pass123#d');**
答案 5 :(得分:0)
Mac OS Mojave
$ brew services stop mysql
$ pkill mysqld
// warning: deletes all tables
$ rm -rf /usr/local/var/mysql/
$ brew postinstall mysql
$ brew services restart mysql
$ mysql -u root
Welcome to the MySQL monitor. Commands end with ; or \g.
mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY 'p4ssword';
Query OK, 0 rows affected (0.04 sec)
mysql> exit
Bye
那么您的开发人员又恢复正常了。
$ sudo mysql -u root -p
Enter password:
Welcome to the MySQL monitor. Commands end with ; or \g.
我不希望在root
文件中看到.env
一词,因此,如果要建立www.hockeysticks.net
之类的网站,通常我会在以后这样做:
#
CREATE DATABASE hockeysticks;
CREATE USER 'hockeysticks'@'localhost' IDENTIFIED BY 'hockeysticks';
GRANT ALL PRIVILEGES ON hockeysticks.* TO 'hockeysticks'@'localhost';
然后,您的localdev .env
文件很简单:
DB_DATABASE=hockeysticks
DB_USERNAME=hockeysticks
DB_PASSWORD=hockeysticks
注意:如果需要保留数据库,请使用skip-grant-tables
方法。有3个难点:
确保MySQL已停止,因此您可以使用skip-grant-tables
确保您的密码更新SQL语法对于您的MySQL版本正确
确保在查询末尾附加FLUSH PRIVELEGES;