ubuntu下安装mysql遇到的问题

使用ubuntu自带工具装的: sudo apt-get install mysql-server

安装后发现无论如何都等不进去,总是报错如下:

ERROR 1045 (28000): Access denied for user 'hehe'@'localhost' (using password: YES)


找了好多博文,都不如下面引荐的这篇最好,很快解决了我的问题:

如何重设 MySQL 的 root 密码

MySQL下创建新用户、新数据库、设定访问权限控制都需要用到root密码。万一把root密码忘了,该怎么办?

幸运地是,重设密码很容易。

注意:MySQL的root用户和服务器操作系统的root用户是两个不同的用户,不要搞混了。

安全模式重置法

基本的思路是,以安全模式启动mysql,这样不需要密码可以直接以root身份登录,然后重设密码。

首先,我们停掉MySQL服务:

sudo service mysql stop  

以上命令适用于Ubuntu和Debian。CentOS、Fedora和RHEL下使用mysqld替换mysql。

以安全模式启动MySQL:

sudo mysqld_safe --skip-grant-tables --skip-networking &  

注意我们加了--skip-networking,避免远程无密码登录 MySQL。

这样我们就可以直接用root登录,无需密码:

mysql -u root  

接着重设密码:

mysql> use mysql;  
mysql> update user set password=PASSWORD("mynewpassword") where User='root';  
mysql> flush privileges;  

注意,命令后需要加分号。

重设完毕后,我们退出,然后启动 MySQL 服务:

mysql > quit  

quit不需要分号。

重启服务:

sudo service mysql restart  

同样,以上命令适用于Ubuntu和Debian,Centos、Fedora和RHEL需要用mysqld替换mysql

现在可以尝试用新密码登录了:

mysql -u root -pmynewpassword  

注意,-p 和密码间不能有空格。

其他方案

以上是通用方案,在Ubuntu和Debian系统上,有一个debian-sys-maint用户,Debian类系统下一些系统脚本对mysql的操作是通过这个用户完成的。所以我们可以通过这个用户来修改 root 密码。该用户的密码可以在/etc/mysql/debian.cnf下找到:

# Automatically generated for Debian scripts. DO NOT TOUCH!
[client]
host     = localhost  
user     = debian-sys-maint  
password = PASSWORD  
socket   = /var/run/mysqld/mysqld.sock  
[mysql_upgrade]
host     = localhost  
user     = debian-sys-maint  
password = PASSWORD  
socket   = /var/run/mysqld/mysqld.sock  
basedir  = /usr  

用该用户登录 MySQL 后,也可以修改密码(具体修改过程见上):

sudo mysql -u debian-sys-maint -p  

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值