首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在macports中重置mysql5根密码

在macports中重置mysql5根密码
EN

Stack Overflow用户
提问于 2011-06-06 20:34:09
回答 3查看 7.3K关注 0票数 8

我刚刚在Snow Leopard上通过macports 1.9.2安装了macports。现在我不能使用mysql了,因为我好像不知道密码。

代码语言:javascript
复制
$ sudo mysql5 -u root -p 
Enter password:  
ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES)

我不确定这是安装或使用中的一些错误,或者我只是忘记了密码,但我认为我需要重置密码。该怎么做呢?

更新:我可以启动和停止我的MySql服务器,所以它不应该损坏,但是我没有像$ sudo /opt/local/lib/mysql5/bin/mysqld_safe5这样的命令。

代码语言:javascript
复制
$ ls /opt/local/lib/mysql5/bin/
innochecksum            mysql_client_test       mysql_secure_installation   mysqlbinlog         mysqlimport         ndb_drop_index          ndb_select_all          resolve_stack_dump
msql2mysql          mysql_client_test_embedded  mysql_setpermission     mysqlbug            mysqlshow           ndb_drop_table          ndb_select_count        resolveip
my_print_defaults       mysql_config            mysql_tzinfo_to_sql     mysqlcheck          mysqlslap           ndb_error_reporter      ndb_show_tables
myisam_ftdump           mysql_convert_table_format  mysql_upgrade           mysqld_multi            mysqltest           ndb_mgm             ndb_size.pl
myisamchk           mysql_find_rows         mysql_waitpid           mysqld_safe         mysqltest_embedded      ndb_print_backup_file       ndb_test_platform
myisamlog           mysql_fix_extensions        mysql_zap           mysqldump           ndb_config          ndb_print_schema_file       ndb_waiter
myisampack          mysql_fix_privilege_tables  mysqlaccess         mysqldumpslow           ndb_delete_all          ndb_print_sys_file      perror
mysql               mysql_install_db        mysqladmin          mysqlhotcopy            ndb_desc            ndb_restore         replace
EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2012-02-07 05:46:58

我也有同样的问题。当我尝试重置密码时(按照develroot的建议),我也得到了:

代码语言:javascript
复制
Rows matched: 0 Changed: 0 Warnings: 0

因此,从一开始就没有创建过root用户。除了develroot的回答之外,我还采取了以下步骤:

代码语言:javascript
复制
flush privileges;
CREATE USER 'root'@'localhost' IDENTIFIED BY 'root'
GRANT ALL ON *.* TO 'root'@'localhost'
票数 6
EN

Stack Overflow用户

发布于 2011-06-06 20:58:38

首先,您需要确保您的数据库已停止:

代码语言:javascript
复制
$ sudo /opt/local/share/mysql5/mysql/mysql.server stop 

现在,您应该通过mysqld_safe命令在后台启动数据库:

代码语言:javascript
复制
$ sudo /opt/local/lib/mysql5/bin/mysqld_safe --skip-grant-tables &

现在服务器正在使用--skip-grant-tables标志运行,您可以在没有密码的情况下连接到它并完成作业:

代码语言:javascript
复制
 $ sudo mysql5 --user=root mysql
 Enter password:

 mysql> update user set Password=PASSWORD('new-password-here') WHERE User='root';
 Query OK, 2 rows affected (0.04 sec)
 Rows matched: 2  Changed: 2  Warnings: 0

 mysql> flush privileges;
 Query OK, 0 rows affected (0.02 sec)

 mysql> exit
 Bye

现在您已经完成了这些操作,您只需要停止服务器,这样您就可以继续运行具有密码限制的安全MySQL服务器了。首先通过键入"fg“将你启动的服务器带到前台,然后通过按"Ctrl+c”杀死它。

这将允许您启动服务器:

代码语言:javascript
复制
$ sudo /opt/local/share/mysql5/mysql/mysql.server start
票数 16
EN

Stack Overflow用户

发布于 2012-12-20 23:25:16

这就是我的解决办法。

运行此命令后:sudo -u mysql mysql_install_db5

我得到了这个错误:

代码语言:javascript
复制
ERROR: 1004  Can't create file '/var/tmp/#sql180bd_1_0.frm' (errno: 9)
121221  2:06:21 [ERROR] Aborting

和以前的报告一样,我的users表是空的-所有的mysql表都是emtpy

最终,我想要这样做:

  1. 在安全模式下运行mysqld。

sudo /opt/local/bin/mysqld_safe5 --skip-grant-tables &

  • 登录并删除损坏的mysql数据库

$ mysql5 $ mysql> DROP TABLE mysql;

  • 以超级用户身份而不是mysql重新运行mysql_install_db5,这样至少可以完成作业

$ sudo var root mysql_install_db5

  • Then返回并按需要将/opt/ -u /var/db/mysql5中的所有内容-R到mysql:mysql。

$ sudo chown -R mysql:mysql /opt/local/var/db/mysql5/ $ sudo chown -R mysql:mysql /opt/local/var/run/mysql5/ $ sudo chown -R mysql:mysql -R在那之后运行得很好,谢谢。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6252071

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档