最近想要用archery的慢日志查询功能,但是需要在archery的archery库里面创建一张mysql_slow_query_review表和一张mysql_slow_query_review_history,结果使用navicat的时候发现访问不了:
发现这不对啊,因为使用docker安装的mysql一般是没有host权限限制的,然后我们进入到archery这个启动的mysql里面使用命令登录下:
嘿,不对了,进入到容器里面也不让登录,这就见鬼了,那现在怎么办呢?我们需要在这里去创建表啊。最后死来想去找到一种解决办法,下面介绍下:
1、进入到archery启动的mysql实例里面去:
2、安装vim工具
在这个mysql的docker实例里面我们没有找到对应的vi命令和vim命令,因此直接安装一下vim,执行命令如下:
yum install -y vim
然后等待安装
3、编辑mysql的my.cnf文件
此时我们使用vim命令,修改下/etc/my.cnf文件,在[mysqld]节点下添加如下的参数:
skip-grant-tables
添加完毕之后,进行保存。
4、退出mysql容器
接着我们退出容器
exit
5、重启mysql
接着我们使用docker重启mysql
docker restart mysql
6、再次进去到mysql容器中去
docker exec -it mysql bash
7、使用root进入到mysql
mysql -uroot
可以看到我们已经不需要密码就可以进入到mysql中去了。
8、创建一个可用的新账号并且授权
flush privileges; CREATE USER 'archery-admin'@'%' IDENTIFIED BY '123456'; GRANT ALL PRIVILEGES ON *.* TO 'archery-admin'@'%' WITH GRANT OPTION; FLUSH PRIVILEGES;
执行完毕之后,我们退出mysql
9、修改my.cnf
这里我们再去修改下my.cnf,把刚才添加的skip-grant-tables给注释掉
10、退出mysql容器
接着我们退出mysql容器
exit
11、重启mysql
docker restart mysql
此时我们在使用archery-admin这个账号就可以连接了。
还没有评论,来说两句吧...