Sib*_*ing 156 mysql linux ubuntu
我是一名电气工程师,主要负责电力系统而不是编程.最近,我一直在按照手册在Ubuntu上安装软件套件.mySQL
实际上,我根本不知道.我在我的Ubuntu上完成了以下安装.
sudo apt-get update
sudo apt-get install mysql-server-5.5
sudo apt-get install mysql-client-5.5
sudo apt-get install mysql-common
sudo apt-get install glade
sudo apt-get install ntp
Run Code Online (Sandbox Code Playgroud)
然后我做
me@ubuntu:~/Desktop/iPDC-v1.3.1/DBServer-1.1$ mysql -uroot -proot <"Db.sql"
Run Code Online (Sandbox Code Playgroud)
我最终得到以下错误消息.
ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES)
Run Code Online (Sandbox Code Playgroud)
我该如何解决并继续?
Mik*_*ant 142
注意:对于MySQL 5.7+,请参阅@Lahiru对此问题的回答.这包含更多当前信息.
对于MySQL <5.7:
默认的root密码为空(即空字符串)不是root
.所以你可以登录为:
mysql -u root
Run Code Online (Sandbox Code Playgroud)
显然,您应该在安装后更改root密码
mysqladmin -u root password [newpassword]
Run Code Online (Sandbox Code Playgroud)
在大多数情况下,您还应该在广泛使用数据库之前设置单个用户帐户.
小智 112
我能够通过执行此语句来解决此问题
sudo dpkg-reconfigure mysql-server-5.5
Run Code Online (Sandbox Code Playgroud)
这将更改root密码.
tk_*_*tk_ 70
你必须重置密码!mac osx(测试和工作)和ubuntu的步骤
使用停止MySQL
sudo service mysql stop
Run Code Online (Sandbox Code Playgroud)
要么
$ sudo /usr/local/mysql/support-files/mysql.server stop
Run Code Online (Sandbox Code Playgroud)
以安全模式启动它:
$ sudo mysqld_safe --skip-grant-tables --skip-networking
Run Code Online (Sandbox Code Playgroud)
(上面的行是整个命令)
这将是一个持续的命令,直到该过程完成,因此打开另一个shell /终端窗口,无需密码登录:
$ mysql -u root
mysql> UPDATE mysql.user SET Password=PASSWORD('password') WHERE User='root';
Run Code Online (Sandbox Code Playgroud)
根据@ IberoMedia的评论,对于较新版本的MySQL,该字段称为authentication_string
:
mysql> UPDATE mysql.user SET authentication_string =PASSWORD('password') WHERE User='root';
Run Code Online (Sandbox Code Playgroud)
启动MySQL使用:
sudo service mysql start
Run Code Online (Sandbox Code Playgroud)
要么
sudo /usr/local/mysql/support-files/mysql.server start
Run Code Online (Sandbox Code Playgroud)
您的新密码是"密码".
Yas*_*ien 31
如果问题仍然存在,请尝试强制更改通行证
/etc/init.d/mysql stop
mysqld_safe --skip-grant-tables &
mysql -u root
Run Code Online (Sandbox Code Playgroud)
设置新的MySQL root用户密码
use mysql;
update user set password=PASSWORD("NEW-ROOT-PASSWORD") where User='root';
flush privileges;
quit;
Run Code Online (Sandbox Code Playgroud)
停止MySQL服务器:
/etc/init.d/mysql stop
Run Code Online (Sandbox Code Playgroud)
启动MySQL服务器并测试它:
mysql -u root -p
Run Code Online (Sandbox Code Playgroud)
Lah*_*iru 29
在服务器初始启动时,如果服务器的数据目录为空,则会发生以下情况:
要显示它,请使用以下命令:
shell> sudo grep 'temporary password' /var/log/mysqld.log
Run Code Online (Sandbox Code Playgroud)
通过使用生成的临时密码登录并尽快更改root密码,并为超级用户帐户设置自定义密码:
shell> mysql -uroot -p
mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY 'MyNewPass5!';
Run Code Online (Sandbox Code Playgroud)
小智 28
我知道这是一个古老的问题,但我觉得这可能对某人有所帮助.我最近遇到了同样的问题但在我的情况下,我记得我的密码很好,但它一直给我同样的错误.我尝试了很多解决方案,但仍然没有帮助,然后我尝试了这个
mysql -u root -p
Run Code Online (Sandbox Code Playgroud)
之后它会要求你输入这样的密码
Enter password:
Run Code Online (Sandbox Code Playgroud)
然后我输入我使用的密码.就这样
小智 24
当您的密码丢失时会发生这种情况.
忘记时更改密码的步骤:
停止MySQL服务器(在Linux上):
sudo systemctl stop mysql
Run Code Online (Sandbox Code Playgroud)在不加载授权表或启用网络的情况下启动数据库:
sudo mysqld_safe --skip-grant-tables --skip-networking &
Run Code Online (Sandbox Code Playgroud)
此命令末尾的&符将使此进程在
后台运行,因此您可以继续使用终端并运行#mysql -u root,它不会要求输入密码.
如果您收到如下错误:
2018-02-12T08:57:39.826071Z mysqld_safe UNIX
套接字文件的目录'/ var/run/mysqld' 不存在.mysql -u root ERROR 2002(HY000):无法通过套接字
'/var/run/mysqld/mysqld.sock' 连接到本地MySQL服务器(2)[1] +退出1
制作MySQL服务目录.
sudo mkdir /var/run/mysqld
Run Code Online (Sandbox Code Playgroud)
授予MySQL用户写入服务目录的权限.
sudo chown mysql: /var/run/mysqld
Run Code Online (Sandbox Code Playgroud)在步骤2中运行相同的命令以在后台运行mysql.
运行mysql -u root你将获得mysql控制台而无需输入密码.
运行这些命令
FLUSH PRIVILEGES;
Run Code Online (Sandbox Code Playgroud)
适用于MySQL 5.7.6及更高版本
ALTER USER 'root'@'localhost' IDENTIFIED BY 'new_password';
Run Code Online (Sandbox Code Playgroud)
适用于MySQL 5.7.5及更早版本
SET PASSWORD FOR 'root'@'localhost' = PASSWORD('new_password');
Run Code Online (Sandbox Code Playgroud)
如果ALTER USER命令不起作用,请使用:
UPDATE mysql.user SET authentication_string = PASSWORD('new_password') WHERE User = 'root' AND Host = 'localhost';
Run Code Online (Sandbox Code Playgroud)现在退出
要手动停止实例启动
sudo kill `cat /var/run/mysqld/mysqld.pid`
Run Code Online (Sandbox Code Playgroud)重启mysql
sudo systemctl start mysql
Run Code Online (Sandbox Code Playgroud)Meh*_*hdi 20
如果其他答案都不适合您,并且您收到此错误:
mysqld_safe Logging to '/var/log/mysql/error.log'.
mysqld_safe Directory '/var/run/mysqld' for UNIX socket file don't exists.
[1]+ Exit 1 sudo mysqld_safe --skip-grant-tables
Run Code Online (Sandbox Code Playgroud)
逐步执行以下命令,直到您重置密码:
# Stop Your Server First
sudo service mysql stop
# Make MySQL service directory.
sudo mkdir /var/run/mysqld
# Give MySQL permission to work with the created directory
sudo chown mysql: /var/run/mysqld
# Start MySQL, without permission and network checking
sudo mysqld_safe --skip-grant-tables --skip-networking &
# Log in to your server without any password.
mysql -u root mysql
# Update the password for the root user:
UPDATE mysql.user SET authentication_string=PASSWORD('YourNewPasswordBuddy'), plugin='mysql_native_password' WHERE User='root' AND Host='localhost';
#if you omit (AND Host='localhost') section, it updates the root pass regardless of its host
FLUSH PRIVILEGES;
EXIT;
#kill mysqld_safe process
sudo service mysql restart
#Now you can use your new password to login to your Server
mysql -u root -p
#take note for remote access you should create a remote user and then grant all privileges to that remote user
Run Code Online (Sandbox Code Playgroud)
小智 12
我遇到了这个非常烦人的问题,发现很多答案都没有用.我遇到的最佳解决方案是完全卸载mysql并重新安装它.在重新安装时,您设置了root密码,这解决了问题.
sudo apt-get purge mysql-server mysql-client mysql-common mysql-server-core-5.5 mysql-client-core-5.5
sudo rm -rf /etc/mysql /var/lib/mysql
sudo apt-get autoremove
sudo apt-get autoclean
Run Code Online (Sandbox Code Playgroud)
我在其他地方找到了这个代码,所以我不相信它.但它的确有效.要在卸载它之后安装mysql,我认为数字海洋有一个很好的教程.查看我的要点.
https://gist.github.com/JamesDaniel/c02ef210c17c1dec82fc973cac484096
小智 12
我使用的是Ubuntu-16.04:安装了mysql - 5.7.我有同样的问题:root用户登录被拒绝.
尝试以下步骤:
dpkg --get-selections | grep mysql
(获取mysql的版本).
dpkg-reconfigure mysql-server-5.7
mysql -u root -p
没有-p,不会提示您输入密码.进入后,您可以通过以下步骤创建具有密码的用户:
CREATE USER 'your_new_username'@'your-hostname' IDENTIFIED BY 'your-password';
GRANT ALL PRIVILEGES ON *.* to 'your_new_username'@'your-hostname' WITH GRANT OPTION;
Run Code Online (Sandbox Code Playgroud)
退出root并从上面给出的登录.
mysql -u <your_new_username> -p
Run Code Online (Sandbox Code Playgroud)
由于某种原因仍然只是键入mysql不起作用.在所有.我建议养成习惯mysql -u <name> -p
.
对于那些当前答案不起作用的人可以尝试这个(在 macOS 上测试):
mysql -h localhost -u root -p --protocol=TCP
Run Code Online (Sandbox Code Playgroud)
此后,系统将要求您输入密码,您应该使用您的操作系统用户密码。然后当你进入 MySQL 时你可以运行:
select Host, User from mysql.user;
Run Code Online (Sandbox Code Playgroud)
你应该看到:
MySQL [(none)]> select Host, User from mysql.user;
+-----------+------------------+
| Host | User |
+-----------+------------------+
| localhost | mysql.infoschema |
| localhost | mysql.session |
| localhost | mysql.sys |
| localhost | root |
+-----------+------------------+
Run Code Online (Sandbox Code Playgroud)
从这里您可以更改配置并编辑密码或修改授权。
小智 6
Ubuntu\xc2\xa020.04 (Focal Fossa)的答案(也许还有其他发行版)。
\n经过几天的徘徊......并且没有一个答案对我有用,我这样做了并且它起作用了!
\n始终在 Bash shell 中:
\nsudo systemctl disable mysql\n
Run Code Online (Sandbox Code Playgroud)\n为了阻止守护进程在启动时启动。
\nsudo apt purge mysql-server\n
Run Code Online (Sandbox Code Playgroud)\n和
\nsudo apt purge mysql-community-server*\n
Run Code Online (Sandbox Code Playgroud)\n在那里,它警告您将删除配置文件...所以它正在工作!因为那些人就是制造麻烦的人!
\nsudo apt autoremove\n
Run Code Online (Sandbox Code Playgroud)\n命令 sudo apt autoremove 删除所有留下的软件包。
\n然后(也许它是可选的,但我做到了)重新启动。\n此外,我从官方 MySQL 网页下载了 mysql-server-8.0:
\nsudo apt install mysql-server\n
Run Code Online (Sandbox Code Playgroud)\n它正在工作的一个信号是,当您输入上面的命令时,系统会要求您输入 root 密码。
\n最后:
\nmysql -u root -p\n
Run Code Online (Sandbox Code Playgroud)\n还有你之前输入的密码。
\n请阅读官方文档:Mysql:如何重置root密码
如果您有权访问终端:
MySQL 5.7.6及更高版本:
$ mysql
mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY 'MyNewPass';
Run Code Online (Sandbox Code Playgroud)
MySQL 5.7.5及更早版本:
$ mysql
mysql> SET PASSWORD FOR 'root'@'localhost' = PASSWORD('MyNewPass');
Run Code Online (Sandbox Code Playgroud)
我安装了MySQL作为根用户(
$SUDO
),并得到了同样的问题
这是我如何固定它-
$ sudo cat /etc/mysql/debian.cnf
这将显示详细信息-
# Automatically generated for Debian scripts. DO NOT TOUCH!
[client]
host = localhost
user = debian-sys-maint
password = GUx0RblkD3sPhHL5
socket = /var/run/mysqld/mysqld.sock
[mysql_upgrade]
host = localhost
user = debian-sys-maint
password = GUx0RblkD3sPhHL5
socket = /var/run/mysqld/mysqld.sock
在上方我们可以看到密码,我们将在提示中使用(GUx0RblkD3sPhHL5)
该密码-
mysql -u debian-sys-maint -p
Enter password:
现在提供密码(GUx0RblkD3sPhHL5)。
现在exit
从MySQL再次登录-
mysql -u root -p
Enter password:
现在提供新密码。就是这样,我们有了新的密码以备将来使用。
它对我有用,希望对您也有帮助!
归档时间: |
|
查看次数: |
887845 次 |
最近记录: |