我有一台旧的 lamp 服务器,我想将其移动到新机器上,所以我做了一个 mysqldump,在新机器上安装了 Ubuntu Server 13.10,在安装过程中安装了 lamp,然后从旧的 lamp 服务器导入了我的旧 mysql 数据库。令我惊讶的是,导入 mysql 后一切似乎都运行得很完美。
然后我尝试设置一个 cron 作业,每小时将所有数据库 mysqldump 到备份服务器。为了确保它有效,我尝试在新服务器上手动运行 mysqldump 以确保它有效(而不是等待 cron 作业运行)。无论如何,mysqldump功能不起作用,并且出于某种原因现在我根本无法访问mysql。我试过:
mysql -u root -p
并得到“错误 1045 (28000): 用户‘root’@‘localhost’访问被拒绝(使用密码:YES)”
另外,我的 PHP 脚本也无法访问 mysql 数据库。所以我被锁在门外了。
我不知道为什么运行 mysqldump (或 crontab)会把我锁在外面,所以我认为这与从我的旧 lamp 服务器(运行旧版本的 mysql)导入所有数据库有关。
我在很大程度上仍然是一个 Linux 新手,所以任何帮助将不胜感激!
我还是不知道why我被锁定了,但为了解决这个问题,我必须重置 mysql root 密码,我按照本网站上的说明进行了操作(但我针对 Ubuntu 13.10 修改了它们):https://help.ubuntu.com/community/MysqlPasswordReset https://help.ubuntu.com/community/MysqlPasswordReset
使用以下命令停止 mysql 守护进程:
sudo pkill mysqld
使用此命令的 --skip-grant-tables 选项启动 mysqld 守护进程进程
sudo /usr/sbin/mysqld --skip-grant-tables &
使用此命令启动 mysql 客户端进程
mysql -u root
从 mysql 提示符执行此命令可以更改任何密码
FLUSH PRIVILEGES;
然后重置/更新您的密码
SET PASSWORD FOR root@'localhost' = PASSWORD('password');
如果你有一个可以从任何地方连接的 mysql root 帐户,你还应该这样做:
UPDATE mysql.user SET Password=PASSWORD('newpwd') WHERE User='root';
一旦您收到一条指示查询成功的消息(受影响的一行或多行),请刷新权限:
FLUSH PRIVILEGES;
然后停止 mysqld 进程并以经典方式重新启动它:
sudo pkill mysqld
sudo service mysql restart
其中一些步骤可能是不必要的,但这就是我从旧 Lamp 服务器导入 mysqldump 文件后在 Ubuntu Server 13.10 上成功重置 mysql root 用户密码的方法
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)