数据库16mysql之初始密码

mysql个人见过3种不同的初始密码方式

安装时提示输入密码(红色的框框)

这是最常见情况,基本上也不会遇到什么问题,毕竟自己输的密码,留意记下来即可。

安装时会print出随机密码(或写入特定文件)

曾经遇到过一两次。使用随机密码可登录进去,登录进去后修改。也不会有什么幺蛾子。

安装时没输入提示,也没随机密码

近期第一次遇到,这种情况,折腾了好一会。
场景:arm(aarch64架构)上的ubuntu(linarolinux)
直接安装mysql-server(sudo apt-get install mysql-server)
细节看安装了2个软件,一个是mysql-server(版本5.5)一个是default-mysql-server(版本1.0)。

安装后启动服务:net service start mysql(ps -fe|grep mysql,可以发现启动的是/usr/sbin/mysqld)
客户端连接:mysql -u root(mysql - u root -p)
问题:登录不进去,提示root@localhost deny(类似密码不对)

解决方法:(ubuntu,linarolinux,aarch64架构)
启动服务:cd /usr/sbin/ && sudo ./mysqld –skip-grant-tables
连接:cd /usr/bin/ && sudo ./mysql -u root
之后update mysql.user表进行密码重置(此时可发现初始密码为空,但为何空密码无法log进去呢(指正常的net service start mysql启动方式,启动后使用空密码无法登录))

退出后发现使用net service start mysql启动方式,和新录入的密码还是进去不。

解决方法:

1
2
grant all privileges on *.* to 'root'@'localhost' identified by '123456';  #123456是设定的密码  
flush privileges;

安装时没输入提示,也没随机密码,任意密码可登入

这是ubuntu18上安装默认mysql是遇到问题,mysqlserver5.7.x
1.查看mysql监听IP和端口是否正常。
netstat -anpt
监听得地址如果是:::3306或者是0.0.0.0:3306,表示监听所有IP地址,这监听状态是正常。若出现127.0.0.0:3306,说明监听的本地地址。
2.直接输mysql,从服务器进入数据库,查看mysql下的user表

1
2
3
4
5
6
7
8
9
10
11
mysql> use mysql;
mysql> select host,user,authentication_string,plugin from user;
+-----------+------------------+-------------------------------------------+-----------------------+
| host | user | authentication_string | plugin |
+-----------+------------------+-------------------------------------------+-----------------------+
| localhost | root | | auth_socket |
| localhost | mysql.session | *THISISNOTAVALIDPASSWORDTHATCANBEUSEDHERE | mysql_native_password |
| localhost | mysql.sys | *THISISNOTAVALIDPASSWORDTHATCANBEUSEDHERE | mysql_native_password |
| localhost | debian-sys-maint | *CE1DA9A6E250643912DD52CF0FFCDD58416D426C | mysql_native_password |
+-----------+------------------+-------------------------------------------+-----------------------+
4 rows in set (0.00 sec)

修改user为root的host为%,表示允许所有服务器访问。
设置authentication_string的值,就是root的密码。
将plugin改为mysql_native_password。

1
mysql> update user set host='%' , authentication_string=PASSWORD('密码') , plugin='mysql_native_password' where user='root';

3.检查一下控制台安全组规则,是否开启了3306端口,未开启添加安全组。
4.重启mysql服务

1
root@iZuf63gpxv4kgzve2n8mkqZ:# service mysql restart

参考

mysql server5.5root密码_【MySQL 忘记密码】MySQL忘记密码怎么解决 mysql5.5 windows7:https://blog.csdn.net/weixin_42299169/article/details/113131595
Navicat for MySQL破解,以及连接数据库出现错误:1045-Access denied for user ‘root’@’localhost’或者@“ip”解决方法:https://blog.csdn.net/qq_29984105/article/details/81635232
mysql5.7.27 无法在远程连接打开:https://blog.csdn.net/G925010178/article/details/99776025

Your browser is out-of-date!

Update your browser to view this website correctly. Update my browser now

×