docker_lamp环境下mysql启动问题

tutum/lamp

tutum/lamp 用来搭建ctf的web环境可以说是非常方便,但是最近给校赛出sql题目的时候发现一些lamp环境的问题,目前只尝试了linode和tutum的镜像。在tutum/lamp下,直接运行mysql是会报错

ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock'

一开始尝试遍了网上的各种方法,因为我用的全是原生态的tutum/lamp,没有改动,按理说别人能运行我也能,这里只说我碰到情况的解决方法。

其实mysql一开始并没有打开,我们执行service mysql start 会发现执行fail,我们cd到根目录下,可以看到run.shcreate_mysql_admin_user.shstart-mysqld.sh,我cat了一下run.sh可以看到是对mysql的环境进行配置,所以只需要./run.sh去配置一下就可以了,输出日志会有admin账户的密码,要注意一下,使用root账户也行,密码是空,但是仅限local connection,对于出题来说也足够了。

linode/lamp

linode/lamp就没有那么多写好的sh脚本了,这个问题参考了一篇博客的方案5

摘要:解决不能通过mysql.sock连接MySQL问题
这个问题主要提示是,不能通过 ‘/tmp/mysql.sock’,但是一些mysql安装方法mysql.sock放在/var/lib/mysql.sock或者其他的什么地方,你可以通过修改/etc/my.cnf文件来修正它,打开文件,可以看到如下:

[mysqld]
socket=/var/lib/mysql.sock
改一下就好了,但也会引起其他的问题,如mysql程序连不上了,再加一点:
[mysql]
socket=/tmp/mysql.sock
或者还可以通过修改php.ini中的配置来使php用其他的mysql.sock来连,这个大家自己去找找
  
或者用这样的方法:
ln -s /var/lib/mysql/mysql.sock /tmp/mysql.sock

然后进行 service mysql start 就启动了,注意这里的mysql的root初始密码是Admin2015


docker_lamp环境下mysql启动问题
https://52hertz.tech/2020/02/18/issue_with_docker_lampmysql/
作者
Ustin1an
发布于
2020年2月18日
许可协议