导入后,mysqldump无法使用root或任何创建的用户访问MySQL

时间:2020-02-05 03:23:45

标签: mysql ubuntu vagrant

背景:我使用流浪汉(Ubuntu 18.04)创建我的开发环境,我安装了PHP,MySQL和其他工具,但最近遇到了可以访问mysql的问题,然后我遇到经典错误:

错误1045(28000):用户'root'@'localhost'的访问被拒绝(使用 密码:否)

使用sudo mysql

错误1045(28000):用户'otheruser'@'localhost'的访问被拒绝 (使用密码:是)

尝试mysql -u otheruser -p

问题在于MySQL可以在“无用”和“无用”状态下正常工作,但是由于某种原因,当我再次启动该框时,我无法再访问MySQL。我知道我可以重置MySQL的root密码,删除MySQL或采取其他快速解决方案,但是我最想知道的是问题的原因,因为起初我在考虑一些相关的问题到我对流浪者盒子所做的更新,或在Ubuntu上的更新。

当我在装有Ubuntu的Box上安装mysql时,我使用.sh文件来自动化该过程,这是mysql的部分:

# Mysql Instalation
sudo apt install mysql-server -y
sudo mysql_secure_installation
sudo mysql < setup.sql 

和setup.sql:

ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'rootpassword';
FLUSH PRIVILEGES;
CREATE USER 'otheruser'@'localhost' IDENTIFIED BY 'otherpassword';
GRANT ALL PRIVILEGES ON * . * TO 'otheruser'@'localhost';
FLUSH PRIVILEGES;

然后我试图找出问题所在并尝试解决,首先我在setup.sql文件中注释了root语句的行,然后在.sh文件中注释了“ mysql_secure_installation”行,但问题出在坚持因此,为了快速解决,我先销毁了盒子,然后再次创建它,但此刻这很无聊,因此在这里我要描述我的问题。

所以恢复问题是:

  • 可能是问题的原因吗?所以我可以在以后的盒子中解决它。
  • 解决此类问题的最佳方法是什么。

因为每次遇到问题时都要创建并销毁该框,这是压倒性的,而且最重要的是,当我将应用程序移至生产服务器时,我不希望出现此类问题。

感谢您的阅读。祝你有美好的一天。

更新2020年2月6日

查看我的部署过程以找到有关该问题的更多信息后,我发现当我从mysqldump导入时该问题开始了 从我的生产服务器;刚导入后再次执行vagrant haltvagrant up时会出现问题,因此我无法再次登录MySQL。

这是我的mysqldump进程,而我要帮助的导入过程出了点问题。

具有Ubuntu 16.04 MySQL 5.7.29的生产服务器

mysqldump -u root -p --all-databases > alldb_04-02-2020.sql

装有Ubuntu 18.04 MySQL 5.7.29的游民箱

mysql -u otheruser -p < alldb_04-02-2020.sql

0 个答案:

没有答案
相关问题