mysql的相关问题

mysql有时候登录会被拒绝,可能是密码不对或密码已过期,怎么判断密码过期了呢?

使用命令行登录:

mysql -hlocalhost -uroot -p

成功之后,查询数据库的用户信息:

select host, user, plugin, authentication_string from mysql.user;

结果显示,如果plugin这列的值是caching_sha2_password则表示该用户的密码已过期,不能通过客户端访问,Navicat会1251错误。

修改要使用账号的信息:

alter user 'root'@'%' identified with mysql_native_password by 'admin';

root@%是host是%,用户是root,修改的密码是admin,成功之后,在查询

select host, user, plugin, authentication_string from mysql.user;

plugin这列显示mysql_native_password,则表示修改成功,就可以通过第三方客户端访问了。

(密码过期,第三方客户端不能访问,但通过程序能不能访问,没有测过)

 

使用docker创建的mysql实例:

[root@bogon docker]# docker run --name mysql01 -e MYSQL_ROOT_PASSWORD=admin -d -p 3306:3306 mysql

创建一个名为mysql01,root用户密码是admin,端口映射3306:3306的mysql镜像

但有个问题,通过最新版本的mysql镜像创建的mysql实例,不能通过第三方客户端连接

所以需要按上面的步骤修改数据库

问题是怎么通过命令行连接到mysql

1. 保证mysql01的容器启动;

2. 执行

[root@bogon docker]# docker exec -it mysql02 bash

通过docker命令创建一个可以连接到mysql02这个容器的命令行

然后就可以使用

root@0ee68bef2bfc:/# mysql -hlocalhost -uroot -p

 

连接到mysql实例,之后就按上面的办法,使第三方客户端可访问这个docker实例的mysql库。

(执行docker exec -it mysql02 bash)之后,bash的命令提示符变了,仔细去体会这个变化的地方,能助于我理解docker exec这个命令,在执行docker exec命令之后进入的bash,可以使用exit命令退出docker的bash,回到服务器)

转载于:https://my.oschina.net/u/1389868/blog/3001485

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值